Skip to content

Commit c956f78

Browse files
committed
ROADMAP #4.44.5: Ship/provenance opacity — filed from dogfood
Added structured delivery-path contract to surface branch → merge → main-push provenance as first-class events. Filed from the 56-commit 2026-04-20 push that exposed the gap. Also fixes: ApiError test compilation — add suggested_action: None to 4 sites - Line ~8414: opaque_provider_wrapper_surfaces_failure_class_session_and_trace - Line ~8436: retry_exhaustion_uses_retry_failure_class_for_generic_provider_wrapper - Line ~8499: provider_context_window_errors_are_reframed_with_same_guidance - Line ~8533: retry_wrapped_context_window_errors_keep_recovery_guidance
1 parent dd73962 commit c956f78

7 files changed

Lines changed: 311 additions & 2 deletions

File tree

.claw.json

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
{
2+
"aliases": {
3+
"quick": "haiku"
4+
}
5+
}

ROADMAP.md

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -711,6 +711,22 @@ Acceptance:
711711
- token-risk preflight becomes operational guidance, not just warning text
712712
- first-run users stop getting stuck between diagnosis and manual cleanup
713713

714+
### 4.44.5. Ship/provenance opacity — branch → merge → main-push boundary not first-class
715+
716+
When dogfood work lands on `main`, the delivery path (scoped branch → PR → merge → push vs direct push) and the exact commit set shipped are not surfaced as first-class events. This makes it too easy to lose the boundary between "dogfood fix landed", "what exact commits shipped", and "what review/merge path was actually used." The 56-commit push during 2026-04-20 dogfood (#122/#127/#129/#130/#131/#132) exhibited this gap: work started as scoped pinpoint branches, then collapsed into a direct `origin/main` push with no structured provenance trail.
717+
718+
Required behavior:
719+
- emit `ship.provenance` event with: source branch, merge method (PR #, direct push, fast-forward), commit range (first..last), and actor
720+
- distinguish `intentional.ship` (explicit deliverables like #122-#132) from `incidental.rider` (other commits in the push)
721+
- surface in lane events and `claw state` output
722+
- clawhip can report "6 pinpoints shipped, 50 riders, via direct push" without git archaeology
723+
724+
Acceptance:
725+
- no post-hoc human reconstruction needed to answer "what just shipped and by what path"
726+
- delivery path is machine-readable and auditable
727+
728+
Source: gaebal-gajae dogfood observation 2026-04-20 — the very run that exposed the gap.
729+
714730
### 4.44. Typed-error envelope contract (Silent-state inventory roll-up)
715731
Claw-code currently flattens every error class — filesystem, auth, session, parse, runtime, MCP, usage — into the same lossy `{type:"error", error:"<prose>"}` envelope. Both human operators and downstream claws lose the ability to programmatically tell what operation failed, which path/resource failed, what kind of failure it was, and whether the failure is retryable, actionable, or terminal. This roll-up locks in the typed-error contract that closes the family of pinpoints currently scattered across **#102 + #129** (MCP readiness opacity), **#127 + #245** (delivery surface opacity), and **#121 + #130** (error-text-lies / errno-strips-context).
716732

rust/.claw.json

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
{
2+
"permissions": {
3+
"defaultMode": "dontAsk"
4+
}
5+
}

rust/.gitignore

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
11
target/
22
.omx/
33
.clawd-agents/
4+
# Claw Code local artifacts
5+
.claw/settings.local.json
6+
.claw/sessions/
7+
.clawhip/

rust/CLAUDE.md

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
# CLAUDE.md
2+
3+
This file provides guidance to Claw Code (clawcode.dev) when working with code in this repository.
4+
5+
## Detected stack
6+
- Languages: Rust.
7+
- Frameworks: none detected from the supported starter markers.
8+
9+
## Verification
10+
- Run Rust verification from the repo root: `cargo fmt`, `cargo clippy --workspace --all-targets -- -D warnings`, `cargo test --workspace`
11+
12+
## Working agreement
13+
- Prefer small, reviewable changes and keep generated bootstrap files aligned with actual repo workflows.
14+
- Keep shared defaults in `.claw.json`; reserve `.claw/settings.local.json` for machine-local overrides.
15+
- Do not overwrite existing `CLAUDE.md` content automatically; update it intentionally when repo workflows change.

0 commit comments

Comments
 (0)