Description
Sessions are born orphans: no record of which goal a launch serves.
Post-hoc attribution from JSONL is expensive and lossy. Stamp intent
at launch time.
Type
Details
deva.sh claude --goal customer-auth-fix:
- validates slug ([a-z0-9-]), rejects garbage at parse time
- exports DEVA_GOAL into the container (create-time env + attach exec)
- appends one JSONL receipt host-side to
$XDG_DATA_HOME/ccx/launches/YYYY-MM-DD.jsonl:
{"ts","goal","agent","cwd","container","source":"deva"}
ccx joins receipt->session by cwd+time at read time (ccx side ships
separately in thevibeworks/ccx). Receipts are evidence, so they live
in the ccx data dir, not the ops ledger; the ledger cites session IDs.
No --goal = no receipt, no env, zero behavior change.
Related Files
Test Plan
Description
Sessions are born orphans: no record of which goal a launch serves.
Post-hoc attribution from JSONL is expensive and lossy. Stamp intent
at launch time.
Type
Details
deva.sh claude --goal customer-auth-fix:$XDG_DATA_HOME/ccx/launches/YYYY-MM-DD.jsonl:
{"ts","goal","agent","cwd","container","source":"deva"}
ccx joins receipt->session by cwd+time at read time (ccx side ships
separately in thevibeworks/ccx). Receipts are evidence, so they live
in the ccx data dir, not the ops ledger; the ledger cites session IDs.
No --goal = no receipt, no env, zero behavior change.
Related Files
Test Plan