claw-code/src
YeonGyu-Kim 290ab7e41f feat: #173 — wrap_json_envelope() applied to all 13 clawable commands (LOOP CLOSED)
Completes the coverage → enforcement → documentation → alignment cycle.
Every clawable command now emits the canonical JSON envelope per SCHEMAS.md:

Common fields (now real in output):
  - timestamp (ISO 8601 UTC)
  - command (argv[1])
  - exit_code (0/1/2)
  - output_format ('json')
  - schema_version ('1.0')

13 commands wrapped:
  - list-sessions, delete-session, load-session, flush-transcript
  - show-command, show-tool
  - exec-command, exec-tool, route, bootstrap
  - command-graph, tool-pool, bootstrap-graph

Implementation:
- Added wrap_json_envelope() helper in src/main.py
- Wrapped all 18 JSON output paths (13 success + 5 error paths)
- Applied exit_code=1 to error/not-found envelopes
- Kept text mode byte-identical (backward compat preserved)

Test updates:
- 3 skipped common-field tests now pass automatically
- 3 existing tests updated to verify common envelope fields while preserving command-specific field checks
- test_list_sessions_cli_runs, test_delete_session_cli_idempotent,
  test_load_session_cli::test_json_mode_on_success

Full suite: 179 → 182 passing (+3 activated from skipped), zero regression.

Loop completion:
  Coverage (#167-#170)        All 13 commands accept --output-format
  Enforcement (#171)          CI blocks new commands without --output-format
  Documentation (#172)        SCHEMAS.md defines envelope contract
  Alignment (#173 this)       Actual output matches SCHEMAS.md contract

Example output now:
  $ claw list-sessions --output-format json
  {
    "timestamp": "2026-04-22T10:34:12Z",
    "command": "list-sessions",
    "exit_code": 0,
    "output_format": "json",
    "schema_version": "1.0",
    "sessions": ["alpha", "bravo"],
    "count": 2
  }

Closes ROADMAP #173. Protocol is now documented AND real.
Claws can build ONE error handler, ONE timestamp parser, ONE version check
instead of 13 special cases.
2026-04-22 19:35:37 +09:00
..
assistant chore: additional AI slop cleanup and enforcer wiring from sessions 1/5 2026-04-03 18:35:27 +09:00
bootstrap chore: additional AI slop cleanup and enforcer wiring from sessions 1/5 2026-04-03 18:35:27 +09:00
bridge chore: additional AI slop cleanup and enforcer wiring from sessions 1/5 2026-04-03 18:35:27 +09:00
buddy chore: additional AI slop cleanup and enforcer wiring from sessions 1/5 2026-04-03 18:35:27 +09:00
cli chore: additional AI slop cleanup and enforcer wiring from sessions 1/5 2026-04-03 18:35:27 +09:00
components chore: additional AI slop cleanup and enforcer wiring from sessions 1/5 2026-04-03 18:35:27 +09:00
constants chore: additional AI slop cleanup and enforcer wiring from sessions 1/5 2026-04-03 18:35:27 +09:00
coordinator chore: additional AI slop cleanup and enforcer wiring from sessions 1/5 2026-04-03 18:35:27 +09:00
entrypoints chore: additional AI slop cleanup and enforcer wiring from sessions 1/5 2026-04-03 18:35:27 +09:00
hooks chore: additional AI slop cleanup and enforcer wiring from sessions 1/5 2026-04-03 18:35:27 +09:00
keybindings chore: additional AI slop cleanup and enforcer wiring from sessions 1/5 2026-04-03 18:35:27 +09:00
memdir chore: additional AI slop cleanup and enforcer wiring from sessions 1/5 2026-04-03 18:35:27 +09:00
migrations chore: additional AI slop cleanup and enforcer wiring from sessions 1/5 2026-04-03 18:35:27 +09:00
moreright chore: additional AI slop cleanup and enforcer wiring from sessions 1/5 2026-04-03 18:35:27 +09:00
native_ts chore: additional AI slop cleanup and enforcer wiring from sessions 1/5 2026-04-03 18:35:27 +09:00
outputStyles chore: additional AI slop cleanup and enforcer wiring from sessions 1/5 2026-04-03 18:35:27 +09:00
plugins chore: additional AI slop cleanup and enforcer wiring from sessions 1/5 2026-04-03 18:35:27 +09:00
reference_data Make the repository's primary source tree genuinely Python 2026-03-31 07:17:34 -07:00
remote chore: additional AI slop cleanup and enforcer wiring from sessions 1/5 2026-04-03 18:35:27 +09:00
schemas chore: additional AI slop cleanup and enforcer wiring from sessions 1/5 2026-04-03 18:35:27 +09:00
screens chore: additional AI slop cleanup and enforcer wiring from sessions 1/5 2026-04-03 18:35:27 +09:00
server chore: additional AI slop cleanup and enforcer wiring from sessions 1/5 2026-04-03 18:35:27 +09:00
services chore: additional AI slop cleanup and enforcer wiring from sessions 1/5 2026-04-03 18:35:27 +09:00
skills chore: additional AI slop cleanup and enforcer wiring from sessions 1/5 2026-04-03 18:35:27 +09:00
state chore: additional AI slop cleanup and enforcer wiring from sessions 1/5 2026-04-03 18:35:27 +09:00
types chore: additional AI slop cleanup and enforcer wiring from sessions 1/5 2026-04-03 18:35:27 +09:00
upstreamproxy chore: additional AI slop cleanup and enforcer wiring from sessions 1/5 2026-04-03 18:35:27 +09:00
utils chore: additional AI slop cleanup and enforcer wiring from sessions 1/5 2026-04-03 18:35:27 +09:00
vim chore: additional AI slop cleanup and enforcer wiring from sessions 1/5 2026-04-03 18:35:27 +09:00
voice chore: additional AI slop cleanup and enforcer wiring from sessions 1/5 2026-04-03 18:35:27 +09:00
QueryEngine.py Make the repository's primary source tree genuinely Python 2026-03-31 07:17:34 -07:00
Tool.py Make the repository's primary source tree genuinely Python 2026-03-31 07:17:34 -07:00
__init__.py feat(#160): wire claw list-sessions and delete-session CLI commands 2026-04-22 17:16:53 +09:00
_archive_helper.py chore: additional AI slop cleanup and enforcer wiring from sessions 1/5 2026-04-03 18:35:27 +09:00
bootstrap_graph.py Rewriting Project Claw Code - Python port with Rust on the way 2026-03-31 08:16:20 -07:00
command_graph.py Rewriting Project Claw Code - Python port with Rust on the way 2026-03-31 08:16:20 -07:00
commands.py Rewriting Project Claw Code - Python port with Rust on the way 2026-03-31 08:16:20 -07:00
context.py Rewriting Project Claw Code - Python port with Rust on the way 2026-03-31 08:16:20 -07:00
costHook.py Make the repository's primary source tree genuinely Python 2026-03-31 07:17:34 -07:00
cost_tracker.py Make the repository's primary source tree genuinely Python 2026-03-31 07:17:34 -07:00
deferred_init.py Rewriting Project Claw Code - Python port with Rust on the way 2026-03-31 08:16:20 -07:00
dialogLaunchers.py Make the repository's primary source tree genuinely Python 2026-03-31 07:17:34 -07:00
direct_modes.py Rewriting Project Claw Code - Python port with Rust on the way 2026-03-31 08:16:20 -07:00
execution_registry.py Rewriting Project Claw Code - Python port with Rust on the way 2026-03-31 08:16:20 -07:00
history.py Rewriting Project Claw Code - Python port with Rust on the way 2026-03-31 08:16:20 -07:00
ink.py Make the repository's primary source tree genuinely Python 2026-03-31 07:17:34 -07:00
interactiveHelpers.py Make the repository's primary source tree genuinely Python 2026-03-31 07:17:34 -07:00
main.py feat: #173 — wrap_json_envelope() applied to all 13 clawable commands (LOOP CLOSED) 2026-04-22 19:35:37 +09:00
models.py Rewriting Project Claw Code - Python port with Rust on the way 2026-03-31 08:16:20 -07:00
parity_audit.py Make the repository's primary source tree genuinely Python 2026-03-31 07:17:34 -07:00
permissions.py Rewriting Project Claw Code - Python port with Rust on the way 2026-03-31 08:16:20 -07:00
port_manifest.py Make the repository's primary source tree genuinely Python 2026-03-31 07:17:34 -07:00
prefetch.py Rewriting Project Claw Code - Python port with Rust on the way 2026-03-31 08:16:20 -07:00
projectOnboardingState.py Make the repository's primary source tree genuinely Python 2026-03-31 07:17:34 -07:00
query.py Make the repository's primary source tree genuinely Python 2026-03-31 07:17:34 -07:00
query_engine.py fix: #164 Stage A — cooperative cancellation via cancel_event in submit_message 2026-04-22 18:14:14 +09:00
remote_runtime.py Rewriting Project Claw Code - Python port with Rust on the way 2026-03-31 08:16:20 -07:00
replLauncher.py Make the repository's primary source tree genuinely Python 2026-03-31 07:17:34 -07:00
runtime.py fix: #164 Stage A — cooperative cancellation via cancel_event in submit_message 2026-04-22 18:14:14 +09:00
session_store.py fix(#160): harden delete_session contract — idempotency, race-safety, typed partial-failure 2026-04-22 17:11:26 +09:00
setup.py Rewriting Project Claw Code - Python port with Rust on the way 2026-03-31 08:16:20 -07:00
system_init.py Rewriting Project Claw Code - Python port with Rust on the way 2026-03-31 08:16:20 -07:00
task.py Make the repository's primary source tree genuinely Python 2026-03-31 07:17:34 -07:00
tasks.py Make the repository's primary source tree genuinely Python 2026-03-31 07:17:34 -07:00
tool_pool.py Rewriting Project Claw Code - Python port with Rust on the way 2026-03-31 08:16:20 -07:00
tools.py Rewriting Project Claw Code - Python port with Rust on the way 2026-03-31 08:16:20 -07:00
transcript.py Rewriting Project Claw Code - Python port with Rust on the way 2026-03-31 08:16:20 -07:00