Skip to content

Commit f266505

Browse files
committed
ROADMAP ultraworkers#134: no run/correlation ID at session boundary — session.id missing from startup event and status JSON; observer must infer session identity from timing
1 parent 50e3fa3 commit f266505

1 file changed

Lines changed: 32 additions & 0 deletions

File tree

ROADMAP.md

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5014,3 +5014,35 @@ ear], /color [scheme], /effort [low|medium|high], /fast, /summary, /tag [label],
50145014
**Blocker.** None. Reuses existing `stale_base` module; no new logic needed, just a missing call site.
50155015

50165016
**Source.** Jobdori dogfood 2026-04-20 against `/tmp/jobdori-129-mcp-cred-order` + `/tmp/stale-branch` in response to 10-min cron cycle. Confirmed: `claw doctor` on branch 5 commits behind main says "Status: ok" but `prompt` dispatch would warn "worktree HEAD does not match expected base commit." Gap is a missing invocation of the already-correct `run_stale_base_preflight()` in the `doctor` action handler. Joins **Boot preflight / doctor contract (#80–#83, #114)** family — doctor is the single machine-readable preflight surface; missing checks degrade operator trust. Also relates to **Silent-state inventory** cluster (#102/#127/#129/#245) because stale-base is a runtime truth ("my branch is behind main") that the preflight surface (doctor) does not expose.
5017+
5018+
## Pinpoint #134. No run/correlation ID at session boundary — every observer must infer session identity from timing or prompt content
5019+
5020+
**Gap.** When a `claw` session starts, no stable correlation ID is emitted in the first structured event (or any event). Every observer — lane event consumer, log aggregator, Clawhip router, test harness — has to infer session identity from timing proximity or prompt content. If two sessions start in close succession there is no unambiguous way to attribute subsequent events to the correct session. `claw status --json` returns session metadata but does not expose an opaque stable ID that could be used as a correlation key across the event stream.
5021+
5022+
**Fix shape.**
5023+
- Emit `session.id` (opaque, stable, scoped to this boot) in the first structured event at startup
5024+
- Include same ID in all subsequent lane events as `session_id` field
5025+
- Expose via `claw status --json` so callers can retrieve the active session's ID from outside
5026+
- Add regression: golden-fixture asserting `session.id` is present in startup event and value matches across a multi-event trace
5027+
5028+
**Acceptance.** Any observer can correlate all events from a session using `session_id` without parsing prompt content or relying on timestamp proximity. `claw status --json` exposes the current session's ID.
5029+
5030+
**Blocker.** None. Requires a UUID/nanoid generated at session init and threaded through the event emitter.
5031+
5032+
**Source.** Jobdori dogfood 2026-04-21 01:54 KST on main HEAD `50e3fa3` during recurring cron cycle. Joins **Session identity completeness at creation time** (ROADMAP §4.7) — §4.7 covers identity fields at creation time; #134 covers the stable correlation handle that ties those fields to downstream events. Joins **Event provenance / environment labeling** (§4.6) — provenance requires a stable anchor; without `session.id` the provenance chain is broken at the root. Natural bundle with **#241** (no startup run/correlation id, filed by gaebal-gajae 2026-04-20) — #241 approached from the startup cluster; #134 approaches from the event-stream observer side. Same root fix closes both. Session tally: ROADMAP #134.
5033+
5034+
## Pinpoint #134. No run/correlation ID at session boundary — every observer must infer session identity from timing or prompt content
5035+
5036+
**Gap.** When a `claw` session starts, no stable correlation ID is emitted in the first structured event (or any event). Every observer — lane event consumer, log aggregator, Clawhip router, test harness — has to infer session identity from timing proximity or prompt content. If two sessions start in close succession there is no unambiguous way to attribute subsequent events to the correct session. `claw status --json` returns session metadata but does not expose an opaque stable ID that could be used as a correlation key across the event stream.
5037+
5038+
**Fix shape.**
5039+
- Emit `session.id` (opaque, stable, scoped to this boot) in the first structured event at startup
5040+
- Include same ID in all subsequent lane events as `session_id` field
5041+
- Expose via `claw status --json` so callers can retrieve the active session's ID from outside
5042+
- Add regression: golden-fixture asserting `session.id` is present in startup event and value matches across a multi-event trace
5043+
5044+
**Acceptance.** Any observer can correlate all events from a session using `session_id` without parsing prompt content or relying on timestamp proximity. `claw status --json` exposes the current session's ID.
5045+
5046+
**Blocker.** None. Requires a UUID/nanoid generated at session init and threaded through the event emitter.
5047+
5048+
**Source.** Jobdori dogfood 2026-04-21 01:54 KST on main HEAD `50e3fa3` during recurring cron cycle. Joins **Session identity completeness at creation time** (ROADMAP §4.7) and **Event provenance / environment labeling** (§4.6). Natural bundle with gaebal-gajae **#241** (no startup run/correlation id) — same root fix closes both. Session tally: ROADMAP #134.

0 commit comments

Comments
 (0)