You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit 64aa257
Browse filesBrowse the repository at this point in the historyBrowse files
Copy file name to clipboardExpand all lines: docs/adr/0018-unified-event-journal.md
+6-6Lines changed: 6 additions & 6 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -31,7 +31,7 @@ This ADR proposes these rules; full contracts and rationale follow:
31
31
Each invocation suppresses its own errors without effects on other sinks or requests.
32
32
Concurrent work uses forked scopes that clone mutable envelope, log-path, and routing bindings.
33
33
Only concurrency-safe aggregation state is shared as mutable state.
34
-
-**Progress remains transport-owned.**`src/request/progress.ts` and its typed `RequestProgressEvent` union do not change.
34
+
-**Progress remains transport-owned.**`packages/host-kit/src/internal/request-progress.ts` and its typed `RequestProgressEvent` union do not change.
35
35
-**Existing formats remain byte-compatible, with one exception.** Golden fixtures preserve `events.ndjson` v1, `cost.runnerRoundTrips`, per-request diagnostics ndjson, and replay-timing shapes.
36
36
The currently unredacted replay-timing helper's events become redacted.
37
37
This intentional security fix is a declared behavior change.
@@ -61,20 +61,20 @@ Each has separate emit calls, shapes, redaction rules, and sinks:
61
61
Some appends occur outside requests.
62
62
`finalizeRepairTeardown` in `packages/daemon/src/core/session-store.ts` records synthetic `close` during idle reap or shutdown.
63
63
Its comment states "no live request here."
64
-
3.**Progress streaming**, `src/request/progress.ts` and `src/daemon/request-progress-protocol.ts`, uses a closed typed `RequestProgressEvent` union.
64
+
3.**Progress streaming**, `packages/host-kit/src/internal/request-progress.ts` and `packages/daemon-contracts/src/request-progress-protocol.ts`, uses a closed typed `RequestProgressEvent` union.
65
65
Socket/HTTP transport installs single-sink `AsyncLocalStorage`.
66
66
Ndjson envelopes share the final-response stream.
67
67
Client disconnect feeds cancellation.
68
68
`meta.requestProgress` explicitly enables the channel per request.
69
69
`--json` disables it.
70
70
Current wire events are **unredacted**.
71
-
4.**Replay timing trace**, `src/daemon/handlers/session-replay-trace.ts` and `session-test-runtime.ts`, uses per-attempt `replay-timing.ndjson` files.
71
+
4.**Replay timing trace**, `packages/replay-port/src/daemon-port/session-replay-trace.ts` and `session-test-runtime.ts`, uses per-attempt `replay-timing.ndjson` files.
72
72
Each attempt creates its path dynamically.
73
73
`src/cli/replay-test/trace.ts` reads them.
74
74
Two helpers write them: `appendReplayTraceEvent` and `appendReplayTestTimingEvent`.
75
75
Only one redacts.
76
76
77
-
`src/upload-progress.ts` is a fifth local callback sink for artifact uploads.
77
+
`packages/remote/src/upload-progress.ts` is a fifth local callback sink for artifact uploads.
78
78
It never crosses request scope and remains out of scope.
79
79
Production has no `EventEmitter` usage.
80
80
The proposal preserves that avoidance of implicit pub/sub.
@@ -186,7 +186,7 @@ The proposed normative semantics are:
186
186
Only the sink list and concurrency-safe aggregation state remain shared.
187
187
Request-global `phaseCounts` uses single-threaded atomic increments because agent-cost must include every shard.
188
188
189
-
Concurrent `test` attempts use `Promise.allSettled` in `runReplayTestShards` (`src/daemon/handlers/session-test.ts`).
189
+
Concurrent `test` attempts use `Promise.allSettled` in `runReplayTestShards` (`packages/replay-test/src/internal/session-test.ts`).
190
190
Nested dispatch invokes `createRequestExecutionScope` in `request-router.ts` child scopes.
191
191
It rebinds `session` and `logPath` during execution.
192
192
A shared mutable envelope could route debug and session-log events to another shard, even with frozen trace bindings.
@@ -244,7 +244,7 @@ A journal route would weaken payloads to `Record<string, unknown>` or place the
244
244
Neither improves current behavior.
245
245
Current progress is unredacted, so boundary redaction would also silently change wire bytes.
246
246
247
-
`src/request/progress.ts`, `request-progress-protocol.ts`, and both transports therefore remain unchanged.
247
+
`packages/host-kit/src/internal/request-progress.ts`, `request-progress-protocol.ts`, and both transports therefore remain unchanged.
248
248
If a future feature needs journal progress visibility, the progress emitter can additionally emit a cataloged journal kind.
249
249
It must not route the wire path through the journal.
250
250
Such **mirror emits** require a separate explicit decision.
0 commit comments