learning_ai_common_plat/services/platform-service
saravanakumardb1 b2ce22d81c feat(platform-service): direct tracker -> fleet module wiring (§10 round-trip)
In-process tracker<->fleet bridge — no shell hop. Closes the §10 "direct
tracker->module calls" box.

- tracker-bridge.ts (new):
  * ingestItemAsJob(productId, itemId, opts?) — reads the Item via the items
    repository (foreign/unknown → NotFoundError), maps title/description → bodyMd
    (verbatim) + labels (engine-class:/profile:/priority:/cap:) → manifest hints,
    sets trackerItemId + a stable idempotency-key `tracker-<itemId>`, and submits
    through coordinator.submitJob — so re-ingest dedupes and the job is scheduled by
    the §7 router via the unchanged claim path.
  * echoJobToItem(productId, jobId, log?) — mirrors stage → Item status
    (queued/assigned/building/review/testing → in_progress; shipped → done;
    failed/dead_letter → wont_fix) + a metrics-ONLY comment (attempts/duration/
    tokens/cost — never the prompt body/secrets). Idempotent via the job's
    `trackerEchoedStatus`; best-effort + non-fatal (items-write failure →
    { echoed: null, error }, never thrown into the job lifecycle). productId-scoped.
- Auto-echo wired into the PATCH + lease/release transitions, GATED by
  FLEET_TRACKER_ECHO (default OFF → behavior byte-for-byte unchanged); never blocks
  or fails the transition.
- Routes (additive): POST /fleet/tracker/ingest, POST /fleet/tracker/echo
  (auth + getRequestProductId, productId-scoped).
- types.ts: optional FleetJobDoc.trackerEchoedStatus (reuses the existing
  trackerItemId field; no parallel schema) + Ingest/Echo request schemas.
- repository.ts: setTrackerEchoedStatus (no rev bump — never interferes with the
  fenced claim CAS).

Reuses the items + comments contracts directly (no HTTP). Does not touch
claimNextJob or the scheduler. productId on every doc; no any/console.log.
2026-05-30 01:32:12 -07:00
..
scripts chore(platform): document script CLI output 2026-05-04 16:45:42 -07:00
src feat(platform-service): direct tracker -> fleet module wiring (§10 round-trip) 2026-05-30 01:32:12 -07:00
.gitignore feat(services): add platform-service (auth, audit, flags, notifications, blob) 2026-02-12 11:39:00 -08:00
Dockerfile fix(docker): INFRA-gap-02 unblock full-stack docker compose up 2026-04-16 15:48:32 -07:00
package.json feat(platform): add /devops page with platform common devops package 2026-05-11 03:38:06 +00:00
POSTAL_SMTP_SETUP.md feat(platform-service): add smtp email delivery and postal setup 2026-03-14 05:52:28 +00:00
tsconfig.json feat(services): add platform-service (auth, audit, flags, notifications, blob) 2026-02-12 11:39:00 -08:00
vitest.config.ts fix(ci): add --pool forks to all vitest test scripts to fix kill EPERM on Node v25 2026-03-27 23:23:38 -07:00