maaz519
9c6e2c76e8
fix(support): agent-demo self-seeds (join default queue + go online); tickets always get a queue
...
Root cause of 'waiting for escalations': no queue/membership meant tickets were
never assigned. Now: createTicket find-or-creates a default queue; new joinDefault
endpoint + useGoOnline hook; agent-demo joins+goes-AVAILABLE on load (assignPending
picks up any waiting ticket). smoke-support self-seeds (no seed script needed).
Also: vitest singleFork to end cross-file DB races (45 tests deterministic).
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-07-01 12:39:14 +05:30
maaz519
072c541e09
feat(service): outbox relay + thread read endpoint + replay (P1.5, P1 complete)
...
OutboxRelay: FOR UPDATE SKIP LOCKED claim, in-process bus publish, PENDING->
PUBLISHED with 30s backoff + idempotent-consumer ledger. GET /v1/threads/:id/
messages (policy-scoped). Replay + read specs green; vitest fileParallelism off
(shared DB). End-to-end HTTP smoke verified: idempotent ingest, read-back, 400
on missing key. 19 tests pass.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-30 21:29:00 +05:30
maaz519
c73acce0e8
ci: import-boundary law + CI workflow (P0 complete)
...
Boundary script enforces contracts<testkit<service (catches from/side-effect/
dynamic/require imports); wired into pnpm test + CI. CI: install --frozen-lockfile
-> boundary -> typecheck -> build -> test.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-30 21:09:37 +05:30
maaz519
169c1a375c
feat(testkit): deterministic fake platform ports + fixtures + replay oracle
...
Fakes for all 7 IiosPlatformPorts (deny/timeout/ambiguous controls), portal +
unknown-email fixtures, replayTwice idempotency oracle. Adds ingest request
contract. Vitest alias resolves workspace packages to source.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-30 21:05:41 +05:30