claw-code/src
YeonGyu-Kim 97c4b130dc feat: #164 Stage B prep — add cancel_observed field to TurnResult
#164 Stage B requires exposing whether cancellation was observed at the
turn-result level. This commit adds the infrastructure field:

Changes:
- TurnResult.cancel_observed: bool = False (query_engine.py)
- _build_timeout_result() accepts cancel_observed parameter (runtime.py)
- Two timeout paths now pass cancel_event.is_set() to signal observation (runtime.py)
- bootstrap command includes cancel_observed in turn JSON (main.py)
- SCHEMAS.md documents Turn Result Fields with cancel_observed contract

Usage:
  When a turn timeout occurs, cancel_observed=true indicates that the
  engine observed the cancellation event being set. This allows callers
  to distinguish:
    - timeout with no cancel → infrastructure/network stall
    - timeout with cancel observed → cooperative cancellation was triggered

Backward compat:
  - Existing TurnResult construction without cancel_observed defaults to False
  - bootstrap JSON output still validates per SCHEMAS.md (new field is always present)

Test results: 182 passing, 3 skipped, zero regression.

Related: #161 (wall-clock timeout), #164 (cancellation observability protocol)
ROADMAP continues #164 with Stage C (test coverage for cancellation + turn envelope).
2026-04-22 19:44:47 +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: #164 Stage B prep — add cancel_observed field to TurnResult 2026-04-22 19:44:47 +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 feat: #164 Stage B prep — add cancel_observed field to TurnResult 2026-04-22 19:44:47 +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 feat: #164 Stage B prep — add cancel_observed field to TurnResult 2026-04-22 19:44:47 +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