maaz519
eff3c615d5
feat(sdk): P2.6 @insignia/iios-message-web (React hooks) + allowlist boundary
...
MessageProvider/useThread/useMessages over the kernel-client socket (live append,
typing, dedupe). Reconnect test (re-opens active thread). Rewrote import-boundary
as an allowlist so SDK<->service sibling imports are forbidden both ways. 28 tests.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-07-01 01:29:25 +05:30
maaz519
5a590c7fda
feat(sdk): P2.5 @insignia/iios-kernel-client — REST + socket facade
...
MessageSocket (open/send/read/typing via emitWithAck, reconnect re-opens thread,
no socket.io types leak) + RestClient (ingest/getThreadMessages/sendMessage).
tsup ESM+dts. Facade unit test with injectable fake socket (3 tests).
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-07-01 01:21:59 +05:30
maaz519
3165a5bb59
feat(service): P2.4 REST fallback POST /v1/threads/:id/messages (session-auth)
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-07-01 01:18:59 +05:30
maaz519
50ef34dd90
feat(service): P2.3 Socket.io /message gateway + real SessionVerifier
...
open_thread (create-or-join) / send_message / read / delivered / typing; HS256
token verified on connect (SessionVerifier reuses AppTokenVerifier pattern);
OutboxBus bridge propagates REST/ingest messages to rooms (dedup vs inline emit).
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-07-01 01:12:49 +05:30
maaz519
827fb52f5f
feat(service): P2.2 MessageService — native send + receipts/unread + traceId
...
openThread (create-or-join), send (idempotent, bumps other participants' unread,
message.sent outbox event, traceId DB->event), markRead (READ receipt + unread
reset), contentRef attachment placeholder. Adds messageSent to contracts events.
5 DB-backed tests green; 24 total.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-07-01 01:09:19 +05:30
maaz519
7197157058
feat(service): P2.1 messaging tables — IiosMessageReceipt + IiosUnreadCounter
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-07-01 01:04:26 +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
4b7dc98c6b
feat(service): ingest endpoint with kernel gates (P1.4)
...
POST /v1/interactions/ingest: fail-closed OPA gate -> resolve scope/handle(MDM,
no silent merge)/actor/channel/thread -> idempotent write of interaction+parts+
outbox CloudEvent in one tx. 4 DB-backed gate tests green (idempotent /
fail-closed / unresolved-handle / outbox event). 16 tests total.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-30 21:24:09 +05:30
maaz519
8cd5d9b248
feat(service): PlatformGates seam + fail-closed decideOrThrow (P1.3)
...
LocalDevPorts = permissive in-service default (no testkit at runtime);
decideOrThrow turns OPA deny/throw/timeout into PolicyDeniedError. Tests drive
deny/timeout via testkit fakes. 12 tests green.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-30 21:18:23 +05:30
maaz519
9cfd1ab1ab
feat(service): NestJS kernel skeleton + 10-table kernel schema (P1.1+1.2)
...
Reuses support-service bootstrap/health/prisma patterns. Kernel-only Prisma
schema (scope/source_handle/actor/channel/thread/participant/interaction/
message_part/outbox/processed_event) with orgId/appId NOT NULL and
@@unique([scopeId, idempotencyKey]). Health verified: {status:ok,db:true}.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-30 21:16:31 +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
maaz519
fbea291609
feat(contracts): @insignia/iios-contracts — scope, enums, platform ports, CloudEvents, errors
...
Verbatim IiosPlatformPorts from the bottom-up atlas; orgId/appId required scope
(KG-02); PolicyDeniedError for fail-closed. Vitest as workspace test runner.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-30 20:59:34 +05:30
maaz519
c00d038df2
chore: iios workspace skeleton (pnpm workspace, configs, postgres:5434)
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-30 20:56:36 +05:30