Disassembled string-surface review
This review audits strings and text in the retained Claude Code 2.1.215 artifacts for product-owned runtime mechanisms that the existing wiki did not adequately own. It follows the repository-wide coverage and structure reviews, but uses an intentionally different discovery surface: executable JavaScript strings, actual Commander registrations, file/env/endpoint-shaped literals, generated prompt candidates, and native-binary strings.
The result corrects the earlier claim that no source-answerable lifecycle remained. Two substantial mechanisms warranted new canonical pages, and several smaller mechanisms belonged in existing owners. Most unmatched strings were still telemetry vocabulary, vendored dependency material, generated documentation/examples, regex fragments, internal host protocol, or aliases for already documented systems.
Artifact identity and scope
| Property | Value |
|---|---|
| Package | @anthropic-ai/claude-code@2.1.215 |
| Build time | 2026-07-19T00:01:04Z |
| Git SHA | 316ce99628e89900bf0b1328fed3b8fec0c0c92d |
| Primary behavioral surface | cli.renamed.js — 31,833,579 bytes |
| Artifact-identity surface | cli.js — 20,160,986 bytes |
| Formatted derivative | cli.formatted.js — 30,677,806 bytes |
| Native artifacts checked | audio-capture.node (492,184 bytes), image-processor.node (1,464,760 bytes) |
Standalone disassembly / source-atlas/ | Not present in this checkout; intentionally not fabricated or regenerated |
“Disassembled” in the filename reflects the question that triggered the audit. The strongest readable source here is the retained Bun bundle, not an objdump/decompiler output. The raw, formatted, and semantically renamed JavaScript files are three views of one artifact, not independent implementations.
Evidence model
flowchart TD Strings[Raw strings / literals / binary strings] --> Candidate[Candidate mechanism] Registrations[Commander registrations] --> Candidate Prompt[Generated prompt shards] --> Candidate Candidate --> Flow{Executable enclosing flow?} Flow -->|setup + state + failure + cleanup| Promote[Patch/create canonical owner] Flow -->|alias of existing owner| Link[Record alias / precision patch] Flow -->|dependency, example, telemetry, schema only| Reject[Keep as discovery noise] Flow -->|native body needed| Limit[Retain evidence limit]Evidence was ranked as follows:
- Enclosing executable control flow in
cli.renamed.jsestablishes JavaScript behavior. - Actual Commander
.command(),.option(), and.alias()registrations establish parsed CLI surfaces; hidden/gated state remains part of the claim. - Raw/formatted source helps verify that formatting or renaming did not create a literal.
- Generated prompt shards and embedded protocol/help text are discovery aids; they do not override executable handlers.
- Native exports/dependencies/strings establish shipped capability or error vocabulary, not call order, limits, thread behavior, or active consumers without JS/N-API corroboration.
- Vendored AWS/Google/Azure SDK, crypto, locale, syntax, HTML, and package documentation strings are rejected unless a Claude Code caller reaches them.
Scan inventory
A temporary local extractor collected exact value, source line(s), category, and whether the value already occurred in authored documentation. Generated prompt shards were excluded from the “documented” corpus so generated source text could not satisfy its own lifecycle coverage.
| Category | Unique candidates | Absent from authored docs before review | Interpretation |
|---|---|---|---|
| Environment-like | 875 | 693 | Mix of public controls, test switches, feature experiments, credentials, and parent/worker handoffs. |
tengu_* / gate-like | 1,695 | 1,600 | Mostly telemetry event/outcome labels; the prefix does not mean “feature gate.” |
| Endpoint-like | 215 | 125 | Mix of Claude Code routes, generated SDK resources, external providers, and examples. |
| File-like | 628 | 531 | Mix of real state paths, generated prompt examples, dependency files, and regex fragments. |
| Actual Commander registrations | 88 | 8 | Highest-signal inventory because these came from registration calls rather than slash-like strings. |
The eight initially absent registrations were:
| Kind | Registration | Resolution |
|---|---|---|
| Alias | autoremove | Documented as the alias of plugin prune. |
| Hidden command | import-conversations <exportPath> | Added to command and transcript owners with gate/dry-run/import semantics. |
| MCP option | --client-id <clientId> | Added to custom HTTP/SSE OAuth documentation. |
| Root option | --disable-slash-commands | Added to the root flag inventory and runtime command-registry behavior. |
| Plugin-eval option | --keep-temp | Added to plugin-eval cleanup semantics. |
| Plugin-eval option | --no-scaffold | Added with the source-confirmed default-off scaffold boundary. |
| XAA option | --client-id <id> | Added to shared IdP setup. |
| XAA option | --issuer <url> | Added with HTTPS/loopback validation. |
The scan report was retained only as temporary analysis at /tmp/claude-code-string-surface-audit.json; canonical findings and decision reasons live in this page and the linked implementation docs.
Promoted lifecycle owners
Enterprise gateway server
The root command was mentioned in the startup map, and embedded gateway protocol prose existed in generated prompt shards, but no page owned the executable server lifecycle.
Direct source confirmed:
- top-level
gateway --config <path>registration ~978,332; - YAML recursion and strict schema ~970,710–971,572;
- SSRF/DNS/metadata guards ~970,259;
- OIDC, provider adapters, inference, managed settings, spend APIs, and OTLP relay ~970,485–973,485;
- Postgres migrations/retention ~973,486–973,796; and
Bun.serve()routes, health/readiness, response hardening, and stop handle ~973,797–974,621.
Action: created Enterprise gateway server. Client-side gateway credential/provider routing remains separate in Models, providers, and auth.
Remote-environment egress and file staging
The prompt catalog contained a long agent-proxy README and sandbox docs mentioned an egress callback, but no owner joined the active relay, working sync, filestore staging, and staged MCP file protocol.
Direct source confirmed:
- a local HTTPS CONNECT proxy tunneled over
/v1/code/agent-proxy/ws, including framed protocol v2, bounded buffering, retry, pooling, FIN, and cleanup ~929,300–930,087; - remote/session/token gates, CA download, trust setup, governed Git/
gh, env injection, and process cleanup ~930,088–931,324; /mnt/user-data/working↔/workingoptimistic sync with containment, scan/size/concurrency caps, and backoff ~948,806–949,575;/uploadsstaging plus filestore credential mint/remint, 60-second no-byte stall, and truncation checks ~949,576–949,901; and- staged MCP input/output tokens, temp mediation, output containment/hard-link/size/stability checks, lane writes, and
finallycleanup ~950,070–950,384.
Action: created Remote-environment egress and file staging. Hosted-session replay/control remains in Remote control and teleport, and ordinary command sandboxing remains in Sandbox and isolation.
Findings absorbed by existing owners
| Finding | Executable evidence | Canonical action |
|---|---|---|
| Plugin evaluation | Case/grader schemas, sandbox, arm runner, cost/interruption/report paths, and registrations ~657,872–660,964 | Added the early-access lifecycle to Plugin lifecycle and configuration. |
| Persistent scoped Agent memory | `memory:user | project |
| Grove consumer terms/privacy | Account/cache/API helpers ~505,640–505,837, dialogs ~810,979–811,439, startup callers | Added Consumer terms and privacy policy plus command/startup cross-links. |
| Prompt/paste history | history.jsonl, locking/retry, 1,024-unit inline split, SHA-256-derived paste cache, skip env ~504,851–505,200 | Added to Terminal UI renderer and input. |
| Background adoption carrier | Exact schema, bounded old-payload merge admission, claim-by-rename, 120-second non-exit freshness, final unlink ~628,072–628,307 | Added to Daemon and background service. |
| Conversation archive import | Hidden registration and feature gate, ZIP/JSON admission, deterministic transcript conversion, exclusive writes, dry-run/manifest comparison ~976,900–978,670 | Added to Session resume and transcripts. |
| Auto-mode decision trace | Exact AUTOMODE_DECISION_LOG === "1" and best-effort append ~446,940 | Added to Diagnostics and debug logs. |
| MCP OAuth/XAA flags | mcp add HTTP/SSE options and `xaa setup | login |
| CLI registration drift | --cloud current hosted spelling, deprecated --remote, gateway, plugin eval/prune, disable slash commands, hidden import | Corrected Command-line reference and active session/architecture pages. |
| Product-owned env controls | Gateway controls, history/debug gates, MCP secrets, Agent-memory remap, hosted proxy/sync/staging handoffs | Added to Environment variables reference with operator/secret/internal classification. |
These additions do not each become a new mechanism page. Existing owners already had the correct reader contract; splitting them would recreate the duplication that the structure review removed.
Rejected aliases and false gaps
| Candidate | Decision |
|---|---|
/api/frame/* and Frame-shaped strings | Existing Artifact publication/version/live-page machinery owns this route family. “Frame” is an internal/older alias, not a new lifecycle page. |
/api/features, /api/eval, /api/eval-authed | GrowthBook feature evaluation already belongs to Feature gates reference. These are unrelated to plugin eval. |
Thousands of tengu_* strings | Most are telemetry event names, result labels, experiment keys, or metrics. A tengu_ prefix alone does not prove a user-settable gate or independent lifecycle. |
| AWS/Azure/Google/Anthropic SDK endpoint inventories | Generated dependency contracts are not proof that Claude Code invokes each resource. Only routes reached by a product caller were promoted. |
.claude/agent-registry.json, .claude/assistant-daemon-state.json | In this artifact they appear in ignore-pattern data, not an active storage writer/reader path. |
File-like regex fragments such as -W.pid | Extractor-shape false positives, not runtime filenames. |
| Generated prompt examples and embedded docs | Useful for finding source regions, but not executable activation/state/cleanup evidence. |
| Unified “all remote” page | Hosted sessions, Remote Control, enterprise gateway, agent egress proxy, working sync, and filestore have different identities/transports/authority and retain separate owners. |
Native-binary review
Independent string/export/dependency review of audio-capture.node and image-processor.node found no additional source-provable documentation gap. Existing pages already cover:
- exact N-API export surfaces;
- Rust crate and dynamic-library evidence;
- readable JavaScript shims/consumers;
- observed error strings and safe runtime probes; and
- the distinction between shipped exports and active CLI consumers.
The remaining questions—audio playback consumers, exact capture/playback thread and cleanup order, image concurrency/limits below the JS facade, clipboard implementation, and platform parity—require native disassembly/tracing or additional artifacts. Binary strings do not justify asserting those behaviors.
Corrections made during the audit
Independent candidate reviews were treated as hypotheses and corrected against direct source:
--disable-slash-commandssets shared command availability and is propagated to relaunch/remote setup; it is not merely a parser that silently drops submitted slash text.plugin evalandplugin eval initare registered in this build; the Walnut Spire guard runs at action time and refuses execution when early access is off.- Plugin case
scaffold_scriptis off by default and runs only with--scaffold; it is not default setup behavior. adopt.jsonis claimed asadopt.json.<pid>and always unlinked after read. This claim path does not rename corruption to.expired.- The adopt merge guard checks the old candidate’s size/count before merging; it does not visibly re-check the final merged count in
Upr(). - Agent memory is neither AutoMem nor team memory, and team-memory service/mirror validators must not be attributed to it.
- Grove’s missing cache causes a background refresh and skips the check for that session; stale cache returns its value while refreshing.
--cloudis the current hosted-session spelling;--remoteis registered as its deprecated hidden alias in this build.- Agent proxy, enterprise gateway, and ordinary user proxy configuration are three different systems.
GIT_CONFIG_GLOBALmust be set before governed Git writes, but the writer trusts that caller-provided path rather than proving it is session-specific.- Ordinary
/uploadsreads stream with one 401 remint, a 60-second no-byte watchdog, and truncation checking; synchronized-file reconciliation uses a separate 30-second arraybuffer fetch without those stream controls. - Gateway telemetry relay can synthesize a catch-all managed payload without an explicit
managed:block, and its discoveryscopes_supportedlist omits theoffline_accessscope requested by the default outbound IdP authorization flow.
Residual interpretation rules
After the documentation updates, an unmatched literal remains a review lead—not proof of a missing page. Promote only when all of these can be answered from the retained artifact:
- What executable entrypoint or caller activates it?
- What state or authority does it own?
- What are the success, failure, and cleanup paths?
- Is it materially independent from an existing canonical owner?
- Is the behavior client-proven rather than generated SDK/server/native speculation?
This standard intentionally leaves many environment/test/rollout strings out of the public reference. Documenting every internal switch would reduce accuracy by presenting unstable parent/worker protocol as operator configuration.
Documentation result
The follow-up adds two canonical mechanism pages:
| Domain | Previous count | Added owner | New count |
|---|---|---|---|
| Sessions, persistence, and remote | 9 | Remote-environment egress and file staging | 10 |
| Operations and native support | 9 | Enterprise gateway server | 10 |
Other domain counts remain 10 runtime, 8 context/model, 15 tools/security, and 10 agents/automation. Canonical arithmetic is therefore 10 + 8 + 15 + 10 + 10 + 10 = 63.
Validation
- Independent source-versus-doc reviews covered the enterprise gateway, remote-runner egress/staging, all absorbed findings, and the resulting information architecture. Material corrections were applied; each was rechecked against executable branches rather than accepted from review prose alone.
- The residual scan found every promoted priority string in authored docs and resolved all eight registrations that were absent before the audit. Broad residual absence remains expected: 676 environment-like, 1,598
tengu_*/gate-like, 113 endpoint-like, and 512 file-like strings are still absent because the corpus intentionally rejects internal/test/vendor/generated/telemetry noise. Remaining exact Commander-signature mismatches were already-documented commands/options whose prose omits the full argument signature. - The final source inventory contains 100 Markdown sources and 100 unique H1 titles.
docs/SUMMARY.mdhas 99 unique Markdown targets; all resolve. - The Starlight sidebar has 91 unique routes with no duplicates or missing source pages.
- A repository-wide authored-doc scan checked 2,381 relative links, including 144 heading fragments, against the generated HTML. All file and fragment targets resolve.
- Production
npm run buildloaded 100 docs and generated 101 pages. Pagefind indexed all 101 HTML files and sitemap generation completed. The only warning was Vite’s existing advisory for chunks larger than 500 kB after minification. - Assertions checked all three new routes plus 21 critical new heading IDs across the new and extended owner pages; all passed.
- Editor diagnostics and
git diff --checkpassed. Every checked Markdown/config file ends with a newline after the final normalization pass. - No path under
claude-code-pkg/orsource-atlas/changed; the absentsource-atlas/was intentionally not regenerated.
Related reviews
Created and maintained by Yingting Huang.