Skip to content

cc: .claude.json loses the userID field; 'install not-a-version' exits 0 where node exits 1 #9487

Description

@proggeramlug

Two small confirmed divergences from the 196-case stress re-run (main+#9479), grouped because both are likely quick:

1. userID never written (B33/B34 plugin validate, also E21's config diff):

   "migrationVersion": 11,
-  "userID": "<HEX64>"     ← node writes a 64-hex id; perry omits the key

A sha-256-sized value that ends up undefined under perry, so JSON serialization drops the key. Suspects: a crypto call returning undefined on this path (createHash(...).digest("hex") or randomBytes(...).toString("hex")), or the machine-id source it hashes being unavailable. Cheap to localize: grep the bundle for userID and instrument the producer.

2. install not-a-version exit code (B60): node rc=1, perry rc=0, stdout differing by one byte (175 vs 174). An error path that prints (almost) the right message but does not propagate failure into the exit code — likely a rejected promise whose rejection sets the message but not process.exitCode, or an early process.exit(0) racing the error path. Note #9442 (exit does not abandon async work) is in flight and touches exit semantics — coordinate.

Also recorded from the same run, not filed separately:

  • E41_marketplace_add_then_install: 1-byte stdout diff (243 vs 242) — characterize before fixing.
  • B61_update: npm _cacache content diffs — almost certainly environmental (registry nondeterminism); propose excluding those paths in the harness rather than chasing.
  • E07: random shell-snapshot filename suffix on both sides — harness normalizer gap (path lists are not run through the stream normalizers), not an engine bug.

Repro: /root/claude-ccstress/, per-case diffs in report_detail.txt.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

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