Skip to content

launch receipts: --goal stamps intent for ccx attribution #499

Description

@lroolle

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

  • New feature

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

  • deva.sh

Test Plan

  • --goal with bad slug rejected at parse
  • --dry-run writes no receipt
  • launch appends one valid JSON line with correct fields
  • DEVA_GOAL visible in container env on create and attach
  • no --goal: nothing written, nothing exported

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions