@oneciel-ai/ciel-runtime 0.2.37 → 0.2.38

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (140) hide show
  1. package/CHANGELOG.md +78 -0
  2. package/README.md +5 -2
  3. package/ciel_runtime.py +94 -96
  4. package/ciel_runtime_support/anthropic_model_policy.py +20 -3
  5. package/ciel_runtime_support/architecture.py +5 -0
  6. package/ciel_runtime_support/channel_inflight.py +4 -4
  7. package/ciel_runtime_support/channel_injection.py +56 -1
  8. package/ciel_runtime_support/channel_mcp_tools.py +34 -0
  9. package/ciel_runtime_support/channel_message_policy.py +9 -1
  10. package/ciel_runtime_support/channel_message_prompt.py +23 -0
  11. package/ciel_runtime_support/channel_pending_injection.py +86 -32
  12. package/ciel_runtime_support/channel_pending_poll.py +6 -2
  13. package/ciel_runtime_support/channel_runtime_environment.py +0 -11
  14. package/ciel_runtime_support/channel_terminal_context.py +0 -6
  15. package/ciel_runtime_support/channel_terminal_proxy.py +3 -42
  16. package/ciel_runtime_support/channel_transcript_repository.py +16 -1
  17. package/ciel_runtime_support/channel_wake_claim_repository.py +0 -19
  18. package/ciel_runtime_support/channel_wake_context.py +6 -13
  19. package/ciel_runtime_support/channel_wake_delivery_repository.py +50 -0
  20. package/ciel_runtime_support/chat_http_controller.py +88 -5
  21. package/ciel_runtime_support/claude_environment.py +100 -3
  22. package/ciel_runtime_support/claude_launch_assembly.py +4 -0
  23. package/ciel_runtime_support/claude_session_socket.py +181 -0
  24. package/ciel_runtime_support/cli_application_context.py +18 -10
  25. package/ciel_runtime_support/cli_dispatch.py +19 -3
  26. package/ciel_runtime_support/cli_parser.py +2 -0
  27. package/ciel_runtime_support/cli_usage.py +3 -2
  28. package/ciel_runtime_support/codex_backend_context.py +8 -3
  29. package/ciel_runtime_support/codex_completion_gate.py +198 -0
  30. package/ciel_runtime_support/codex_turn_recovery.py +240 -83
  31. package/ciel_runtime_support/compatibility_protocol.py +5 -2
  32. package/ciel_runtime_support/config_migrations.py +79 -0
  33. package/ciel_runtime_support/config_repository.py +7 -0
  34. package/ciel_runtime_support/context_summary_policy.py +24 -4
  35. package/ciel_runtime_support/external_event_menu.py +107 -0
  36. package/ciel_runtime_support/external_event_receiver.py +19 -1
  37. package/ciel_runtime_support/launch_state.py +2 -0
  38. package/ciel_runtime_support/managed_tool_injection.py +33 -0
  39. package/ciel_runtime_support/muse_runtime_context.py +291 -0
  40. package/ciel_runtime_support/ollama_thinking.py +12 -26
  41. package/ciel_runtime_support/prelaunch.py +13 -0
  42. package/ciel_runtime_support/prelaunch_launch_panel.py +2 -1
  43. package/ciel_runtime_support/prompt_compaction.py +39 -0
  44. package/ciel_runtime_support/provider_files_proxy.py +248 -0
  45. package/ciel_runtime_support/provider_model_identity.py +10 -2
  46. package/ciel_runtime_support/provider_option_cli.py +1 -1
  47. package/ciel_runtime_support/provider_request_access.py +54 -1
  48. package/ciel_runtime_support/provider_responses_passthrough.py +152 -15
  49. package/ciel_runtime_support/providers/alibaba.py +34 -1
  50. package/ciel_runtime_support/providers/anthropic.py +18 -1
  51. package/ciel_runtime_support/providers/meta.py +252 -21
  52. package/ciel_runtime_support/pseudo_tool_parser.py +17 -1
  53. package/ciel_runtime_support/remote_bridge.py +4 -0
  54. package/ciel_runtime_support/remote_instructions.py +5 -0
  55. package/ciel_runtime_support/remote_memory.py +1 -1
  56. package/ciel_runtime_support/responses_cache_diagnostics.py +82 -0
  57. package/ciel_runtime_support/responses_custom_tool_bridge.py +282 -0
  58. package/ciel_runtime_support/responses_input_compatibility.py +19 -3
  59. package/ciel_runtime_support/router_http.py +301 -4
  60. package/ciel_runtime_support/router_observability_context.py +26 -0
  61. package/ciel_runtime_support/router_server_context.py +1 -0
  62. package/ciel_runtime_support/runtime_adapters.py +31 -0
  63. package/ciel_runtime_support/runtime_constants.py +23 -1
  64. package/ciel_runtime_support/runtime_input_gateway.py +85 -5
  65. package/ciel_runtime_support/runtime_input_status.py +150 -0
  66. package/ciel_runtime_support/runtime_launch.py +27 -4
  67. package/ciel_runtime_support/runtime_paths.py +1 -0
  68. package/ciel_runtime_support/speech_http_controller.py +3 -2
  69. package/ciel_runtime_support/streaming_anthropic.py +3 -0
  70. package/ciel_runtime_support/tool_call_events.py +98 -0
  71. package/ciel_runtime_support/transcript_delta_delivery.py +140 -1
  72. package/ciel_runtime_support/ui_text.py +1 -0
  73. package/ciel_runtime_support/web_search_result_events.py +130 -0
  74. package/ciel_runtime_support/web_ui.py +1 -0
  75. package/ciel_runtime_support/windows_conpty.py +92 -8
  76. package/ciel_runtime_support/workspace_mcp.py +4 -1
  77. package/ciel_runtime_support/workspace_state.py +1 -0
  78. package/docs/Configuration.md +20 -4
  79. package/docs/MCP-Channels.md +79 -6
  80. package/docs/Managed-Tool-Injection.md +25 -0
  81. package/docs/Module-Map.md +4 -0
  82. package/docs/Muse-Code.md +73 -0
  83. package/docs/Observability.md +39 -0
  84. package/docs/Providers.md +29 -2
  85. package/docs/Remote-Bridge.md +12 -0
  86. package/docs/Router.md +1 -0
  87. package/docs/journal/2026/09/01/diagnostics/anthropic/router/fable51-usage-credits.okf +70 -0
  88. package/docs/journal/2026/09/01/implementation/claude/session-socket/all-input-paths/default-delivery.okf +133 -0
  89. package/docs/journal/2026/09/01/implementation/claude/session-socket/windows-direct-input.okf +112 -0
  90. package/docs/journal/2026/09/02/diagnostics/cache/alibaba/qwen38-post-restart-hit-rate.okf +107 -0
  91. package/docs/journal/2026/09/02/diagnostics/cache/ollama-cloud/kimi-k3-codex-hit-rate.okf +91 -0
  92. package/docs/journal/2026/09/02/diagnostics/codex/tui/statusline-cache-metrics.okf +44 -0
  93. package/docs/journal/2026/09/02/diagnostics/input/transport/fallback-behavior.okf +31 -0
  94. package/docs/journal/2026/09/02/diagnostics/providers/ollama-cloud/kimi-k3-agent-turn-recovery.okf +125 -0
  95. package/docs/journal/2026/09/02/diagnostics/providers/ollama-cloud/kimi-k3-parameters.okf +128 -0
  96. package/docs/journal/2026/09/02/diagnostics/remote/mia/socket-tui-visibility.okf +47 -0
  97. package/docs/journal/2026/09/02/diagnostics/runtime/alibaba/token-plan/qwen38-latency.okf +108 -0
  98. package/docs/journal/2026/09/02/diagnostics/runtime/alibaba/token-plan/qwen38-vs-gpt56-latency.okf +92 -0
  99. package/docs/journal/2026/09/02/implementation/anthropic/context/one-million-defaults.okf +85 -0
  100. package/docs/journal/2026/09/02/implementation/cache/alibaba/qwen38-cache-hit-improvement.okf +104 -0
  101. package/docs/journal/2026/09/02/implementation/cache/alibaba/qwen38-cache-hit-improvement.png +0 -0
  102. package/docs/journal/2026/09/02/implementation/cache/alibaba/responses-session-cache.okf +97 -0
  103. package/docs/journal/2026/09/02/implementation/providers/alibaba/qwen38/0902-parameter-alignment.okf +97 -0
  104. package/docs/journal/2026/09/02/implementation/providers/meta/multimodal-tools/contributor-protocol-adoption.okf +140 -0
  105. package/docs/journal/2026/09/02/implementation/providers/meta/muse-spark-1.3-support.okf +53 -0
  106. package/docs/journal/2026/09/02/monitoring/cache/alibaba/cielarvis-qwen38-live-hit-rate.okf +858 -0
  107. package/docs/journal/2026/09/02/operations/release/main-merge-local-deploy.okf +36 -0
  108. package/docs/journal/2026/09/02/operations/release/nightly/local-cache-deployment.okf +54 -0
  109. package/docs/journal/2026/09/02/operations/release/nightly/ollama-kimi-recovery-model-audit-deployment.okf +58 -0
  110. package/docs/journal/2026/09/02/operations/release/nightly/qwen38-cache-improvement-deployment.okf +72 -0
  111. package/docs/journal/2026/09/02/research/cache/alibaba/qwen38-hit-rate-improvement.okf +233 -0
  112. package/docs/journal/2026/09/02/research/cache/codex/provider-scope.okf +77 -0
  113. package/docs/journal/2026/09/02/research/providers/ollama-cloud/desktop-model-exhaustive-audit.okf +159 -0
  114. package/docs/journal/2026/09/03/diagnostics/providers/meta/muse-spark-contributor-cache-hit.okf +148 -0
  115. package/docs/journal/2026/09/03/diagnostics/providers/meta/muse-spark-contributor-required-schema.okf +127 -0
  116. package/docs/journal/2026/09/03/diagnostics/providers/ollama-cloud/kimi-k3-resumed-session-stall.okf +160 -0
  117. package/docs/journal/2026/09/03/diagnostics/providers/ollama-cloud/kimi-k3-substantive-dangling-action.okf +94 -0
  118. package/docs/journal/2026/09/03/diagnostics/remote/kevin/codex-gpt-early-turn-completion.okf +162 -0
  119. package/docs/journal/2026/09/03/implementation/runtimes/meta/muse-code/default-yolo.okf +40 -0
  120. package/docs/journal/2026/09/03/implementation/runtimes/meta/muse-code/native-subscription-router.okf +86 -0
  121. package/docs/journal/2026/09/03/operations/deployment/local/session-socket-default-fallback.okf +41 -0
  122. package/docs/journal/2026/09/03/research/deployment/colab/tailscale/credential-storage.okf +41 -0
  123. package/docs/journal/2026/09/03/research/providers/meta/muse-code/subscription-billing-boundary.okf +64 -0
  124. package/docs/journal/2026/09/03/research/web-chat/voice/instruction-format.okf +135 -0
  125. package/docs/journal/2026/09/04/diagnostics/claude/context/early-auto-compaction.okf +75 -0
  126. package/docs/journal/2026/09/04/diagnostics/claude/context/fable-51-status-200k.okf +54 -0
  127. package/docs/journal/2026/09/04/diagnostics/runtime/codex/responses/replayed-item-id-validation.okf +74 -0
  128. package/docs/journal/2026/09/04/diagnostics/workspaces/onecieldmsui/codex/replay-stall.okf +100 -0
  129. package/docs/journal/2026/09/04/implementation/observability/tool-calls/websocket-stream.okf +49 -0
  130. package/docs/journal/2026/09/04/implementation/web-chat/input/raw-injection.okf +42 -0
  131. package/docs/journal/2026/09/05/diagnostics/tty/claude-raw-idle-render.okf +25 -0
  132. package/docs/journal/2026/09/05/implementation/events/search-response-urls.okf +23 -0
  133. package/docs/journal/2026/09/05/implementation/tools/native-injection.okf +19 -0
  134. package/docs/journal/2026/09/05/implementation/windows/conpty/prompt-delivery-lifecycle.okf +43 -0
  135. package/docs/journal/2026/09/05/release/nightly/conpty-native-tools.okf +13 -0
  136. package/docs/journal/2026/09/05/release/nightly/search-result-urls.okf +14 -0
  137. package/docs/journal/2026/09/06/implementation/codex/inherited-web-mcp.okf +22 -0
  138. package/docs/journal/2026/09/07/integration/main/nightly-merge.okf +13 -0
  139. package/docs/journal/2026/09/07/release/stable/0.2.38.okf +10 -0
  140. package/package.json +1 -1
@@ -0,0 +1,54 @@
1
+ schema: okf/1
2
+ kind: task-journal
3
+ title: Fable 5.1 status line remained at 200K after the context-window fix
4
+ date: 2026-09-04
5
+ workspace: G:\ciel-bridge-service
6
+
7
+ observation:
8
+ screenshot:
9
+ model: Fable 5.1
10
+ context: 351812/200000 tokens (175.9 percent)
11
+ process:
12
+ ciel_pid: 59272
13
+ claude_pid: 30032
14
+ claude_model_argument: ciel-runtime-anthropic-claude-fable-5-1
15
+ config:
16
+ current_model: claude-fable-5-1
17
+ route_through_router: true
18
+ context_override: absent
19
+ launch_log:
20
+ time: 2026-09-04T15:23:54
21
+ context: 1048576
22
+ auto_compact_window: 1000000
23
+
24
+ root_cause:
25
+ confirmed:
26
+ - Ciel projected the corrected 1M environment values for Fable 5.1.
27
+ - The Claude-facing custom gateway alias omitted `[1m]`.
28
+ - Claude Code 2.1.260 consequently supplied a 200000 context-window size to
29
+ the status line despite Ciel's 1M launch snapshot.
30
+
31
+ change:
32
+ - Append `[1m]` to Claude-facing routed Anthropic aliases for every model in
33
+ the documented 1M-default set, even when the configured upstream ID has no
34
+ marker.
35
+ - Continue stripping the local marker at the Anthropic upstream boundary.
36
+ - Preserve 200K aliases for models outside the documented 1M set.
37
+
38
+ verification:
39
+ focused:
40
+ result: 115 passed; lint passed
41
+ local_install:
42
+ path: C:\Users\djlov\.local\share\ciel-runtime
43
+ launch:
44
+ claude_code_version: 2.1.261
45
+ model_alias: ciel-runtime-anthropic-claude-fable-5-1[1m]
46
+ context: 1048576
47
+ auto_compact_window: 1000000
48
+ exit_code: 0
49
+ interactive_tui:
50
+ observed_status: ctx est 89/1,048,576 tok (0.0 percent)
51
+ test_session_exit_code: 0
52
+ full_suite:
53
+ result: 3156 passed; 137 skipped; 0 failed
54
+ status: behavior_verified
@@ -0,0 +1,74 @@
1
+ task:
2
+ title: Repair invalid replayed Responses item IDs in a resumed Codex session
3
+ date: 2026-09-04
4
+ workspace: C:\Users\djlov\cielarvis
5
+
6
+ observed:
7
+ runtime_endpoint: http://127.0.0.1:9610/backend-api/codex/responses
8
+ session_id: 01a01dff-f0f0-7ef3-8cde-1d9916510f35
9
+ http_status: 400
10
+ rejected_index: 160
11
+ rejected_item_type: reasoning
12
+ rejected_id_shape: 'rs_<token>:rs_<token>'
13
+ upstream_rule: IDs may contain only letters, numbers, underscores, or dashes
14
+ persisted_at: C:\Users\djlov\.codex\sessions\2026\08\20\rollout-2026-08-20T02-08-27-01a01dff-f0f0-7ef3-8cde-1d9916510f35.jsonl:13943
15
+
16
+ cause:
17
+ boundary: ciel_runtime_support.responses_input_compatibility.repair_replayed_response_items
18
+ confirmed_behavior: Existing validation checked the type prefix but not the complete character set.
19
+ reproduction_before_fix: The observed colon-delimited ID was returned unchanged.
20
+ provenance:
21
+ ciel_colon_composition_found: false
22
+ ciel_backend_response_rewrite: false
23
+ codex_version: 0.153.0
24
+ codex_release_tag: rust-v0.153.0
25
+ codex_response_item_behavior: ResponseItemId.from_server preserves the server value without validation.
26
+ session_behavior: The composite ID was already persisted as a response_item.reasoning before the failing replay.
27
+ conclusion: The upstream response supplied the composite ID; Ciel's missing character validation allowed it back into a later request.
28
+ repeat_failure: Every retry replayed the same invalid history item at input index 160.
29
+
30
+ repair:
31
+ policy: Validate every non-empty Responses item ID against the upstream character contract.
32
+ allowed_characters: ASCII letters, digits, underscore, dash
33
+ invalid_reasoning_with_encrypted_content: Initially removed only the ID; superseded by the cross-workspace finding below.
34
+ invalid_reasoning_without_encrypted_content: Retain the existing policy of dropping the foreign summary-only item.
35
+ specificity: No session ID, provider name, or trigger-word special case in production code.
36
+
37
+ verification:
38
+ status: passed
39
+ focused:
40
+ responses_input_compatibility: 19 passed
41
+ codex_backend_item_repair: 21 passed
42
+ observed_record_replay:
43
+ forwarded_id_present: false
44
+ encrypted_content_preserved: true
45
+ source_record_unchanged: true
46
+ documentation_metadata: 26 Markdown files passed
47
+ ruff: passed
48
+ diff_check: passed
49
+ full_suite:
50
+ unit: 1378 passed, 45 skipped
51
+ router: 1094 passed
52
+ channel: 406 passed, 80 skipped
53
+ runtime: 276 passed, 12 skipped
54
+ total: 3154 passed, 137 skipped
55
+ local_deployment:
56
+ install_path: C:\Users\djlov\.local\share\ciel-runtime
57
+ source_installed_sha256: B1AD0EB9798B2DFFF768C29AA8BD8AEB069A1958F10126E35BDC1FBF64A50103
58
+ installed_module_loaded_in_fresh_process: true
59
+ observed_record_forwarded_id_present: false
60
+ observed_record_encrypted_content_preserved: true
61
+ active_predeployment_processes_restarted: false
62
+
63
+ follow_up_2026_09_04:
64
+ evidence_source: G:\OneCielDMSUI session 019fcac4-4538-7a53-91d1-565cd21a8c5e
65
+ finding: The same colon-ID reasoning records were rejected next for unverifiable encrypted content after their IDs were removed.
66
+ correlated_rejections:
67
+ logged_distinct_verdicts: 110
68
+ matched_session_records_before_repair: 118
69
+ matched_session_records_after_repair: 0
70
+ revised_policy:
71
+ forbidden_character_reasoning: Drop the whole hidden reasoning item.
72
+ router_synthesized_reasoning: Drop the whole hidden reasoning item.
73
+ legal_but_type_mismatched_reasoning: Preserve encrypted content and omit only its ID.
74
+ visible_messages_and_tool_history: Preserve and balance independently.
@@ -0,0 +1,100 @@
1
+ task:
2
+ title: Diagnose Codex replay stalls in OneCielDMSUI
3
+ date: 2026-09-04
4
+ workspace: G:\OneCielDMSUI
5
+
6
+ runtime:
7
+ ciel_cli_pid: 45892
8
+ ciel_server_pid: 67612
9
+ codex_pid: 71872
10
+ router_port: 9605
11
+ model: gpt-5.6-sol
12
+ session_id: 019fcac4-4538-7a53-91d1-565cd21a8c5e
13
+ codex_version: 0.153.0
14
+ process_started_local: 2026-09-04T01:43:12-05:00
15
+
16
+ observed:
17
+ invalid_id_http_error_in_session: false
18
+ successful_latest_task_completions: 3
19
+ replayed_reasoning_items: 1700
20
+ forbidden_character_reasoning_ids: 257
21
+ router_synthesized_reasoning_ids: 14
22
+ router_log:
23
+ symptom: The upstream rejected encrypted reasoning one record at a time and the router retried after each verdict.
24
+ prefiltered_known_rejections_at_02_15: 105
25
+ concurrent_transport_failures:
26
+ - WinError 10054 connection reset
27
+ - WinError 10053 local connection abort
28
+ - SSLV3_ALERT_BAD_RECORD_MAC
29
+ confirmed_http_500_examples:
30
+ - 2026-09-04T02:05:59-05:00
31
+ - 2026-09-04T02:07:14-05:00
32
+
33
+ correlation:
34
+ logged_verdicts_sampled_initially: 115
35
+ verdicts_matching_forbidden_character_ids: 101
36
+ verdicts_matching_router_synthesized_ids: 14
37
+ conclusion: The current stall is an encrypted-reasoning replay loop, not a recorded invalid-ID 400.
38
+
39
+ repair:
40
+ boundary: ciel_runtime_support.responses_input_compatibility.repair_replayed_response_items
41
+ behavior: Drop hidden reasoning at replay when its ID is illegal or router-synthesized; retain visible messages and paired tool history.
42
+ hardcoded_session_or_model: false
43
+ source_session_mutated: false
44
+
45
+ verification:
46
+ focused_tests:
47
+ responses_input_compatibility: 20 passed
48
+ codex_reasoning_rejects: 12 passed
49
+ codex_backend_item_repair: 21 passed
50
+ ruff: passed
51
+ actual_session_projection:
52
+ reasoning_before: 1700
53
+ forbidden_id_before: 257
54
+ router_synthesized_before: 14
55
+ forbidden_id_after: 0
56
+ router_synthesized_after: 0
57
+ actual_router_verdict_projection:
58
+ distinct_logged_verdicts_initial: 110
59
+ matched_records_before_initial: 118
60
+ matched_records_after: 0
61
+ full_suite:
62
+ unit: 1379 passed, 45 skipped
63
+ router: 1094 passed
64
+ channel: 406 passed, 80 skipped
65
+ runtime: 276 passed, 12 skipped
66
+ total: 3155 passed, 137 skipped
67
+ documentation_metadata: 26 Markdown files passed
68
+ local_deployment:
69
+ install_path: C:\Users\djlov\.local\share\ciel-runtime
70
+ source_installed_sha256: C2A3C308B8D518999A8C5BAA0FC1B8CC6F013DA58C5640D15D3A670A3B85DF03
71
+ installed_module_loaded_in_fresh_process: true
72
+ matched_rejected_before_at_final_check: 127
73
+ matched_rejected_after: 0
74
+ active_process_restarted: false
75
+ live_process_restarted_during_initial_verification: false
76
+
77
+ recovery:
78
+ provider_transition_confirmed:
79
+ prior_turn_model: ciel-runtime-meta-muse-spark-1.3-contributor
80
+ resumed_model: gpt-5.6-sol
81
+ forbidden_id_records_attributed_to_prior_model: 257
82
+ evidence: Session turn_context records changed from Muse Spark Contributor to a Codex-routed GPT launch, and Codex displayed the same transition warning.
83
+ old_loop_exit_local: 2026-09-04T02:30:52-05:00
84
+ verified_resume:
85
+ selected_session_id: 019fcac4-4538-7a53-91d1-565cd21a8c5e
86
+ cwd: G:\OneCielDMSUI
87
+ model: gpt-5.6-sol high
88
+ prompt: State-free recovery marker request
89
+ router_http_status: 200
90
+ response: SESSION_RECOVERY_OK
91
+ unverifiable_reasoning_retries_after_restart: 0
92
+ invalid_id_errors_after_restart: 0
93
+ user_visible_runtime:
94
+ started_local: 2026-09-04T02:37:58-05:00
95
+ cmd_pid: 53748
96
+ ciel_cli_pid: 72436
97
+ ciel_server_pid: 80056
98
+ codex_pid: 41604
99
+ session_id: 019fcac4-4538-7a53-91d1-565cd21a8c5e
100
+ status: running
@@ -0,0 +1,49 @@
1
+ schema: okf/1
2
+ kind: task-journal
3
+ title: CLI tool-call event WebSocket stream
4
+ date: 2026-09-04
5
+
6
+ request:
7
+ requirement: push each CLI runtime tool call to an externally consumable realtime stream
8
+
9
+ change:
10
+ normalized_event_category: tool.call
11
+ sources:
12
+ - routed Anthropic-compatible stream tool calls
13
+ - routed Ollama stream tool calls
14
+ - routed OpenAI-compatible stream tool calls
15
+ - Claude CLI structured transcript tool_use records
16
+ - Codex CLI function_call, custom_tool_call, and local_shell_call records
17
+ - Muse Code runtime.session tool_calls records, including Windows WSL sessions
18
+ endpoint: GET /ca/events/ws?category=tool.call
19
+ protocol: RFC 6455 JSON text frames
20
+ access_control: existing router external-access authentication
21
+ cursor: after query parameter
22
+ duplicate_policy: suppress the transcript copy when the routed event has the same call_id
23
+
24
+ verification:
25
+ focused_tests: 37 passed
26
+ live_websocket:
27
+ handshake: HTTP/1.1 101 Switching Protocols
28
+ frame_opcode: 1
29
+ published_count: 1
30
+ category: tool.call
31
+ source: cli-transcript
32
+ provider: codex
33
+ session_id: proof-session
34
+ call_id: call-live-proof
35
+ name: exec_command
36
+ arguments: '{"cmd":"rg TODO"}'
37
+ live_muse_transcript:
38
+ muse_version: 1.0.2
39
+ transcript_found: true
40
+ schema: runtime.session tool_calls
41
+ projected_call_type: muse_tool_call
42
+ projected_tool_name: bash
43
+ full_suite: 3167 passed; 137 skipped; 0 failed
44
+ lint: passed
45
+ local_install:
46
+ path: C:\Users\djlov\.local\share\ciel-runtime
47
+ verified_source_hashes: 18
48
+ hash_mismatches: 0
49
+ status: behavior_verified
@@ -0,0 +1,42 @@
1
+ schema: okf/1
2
+ kind: task-journal
3
+ title: Exact-message Web Chat injection
4
+ date: 2026-09-04
5
+
6
+ request:
7
+ endpoint:
8
+ - POST /ca/chat/messages
9
+ - POST /ca/channel/messages
10
+ requirement: inject only the supplied message without descriptive or response instructions
11
+
12
+ change:
13
+ option: raw_injection=true
14
+ guarantees:
15
+ - model input equals the admitted message string
16
+ - no web envelope or correlation marker
17
+ - no attachment projection
18
+ - no web ACK/reply contract
19
+ - no MCP response hint
20
+ - raw messages are isolated from batching
21
+ independent_axes:
22
+ - input_transport
23
+ - response_mode
24
+
25
+ verification:
26
+ focused_tests: 31 passed
27
+ live_http:
28
+ endpoint: POST /ca/channel/messages
29
+ status: 200
30
+ runtime_queue_recorded: true
31
+ expected_characters: 38
32
+ web_chat_prompt_exact: true
33
+ router_body_exact: true
34
+ expected_sha256: 2630b5fd9533735276f479f424f07db99aabb7d755b856d9c5e16f1de8b9f7da
35
+ actual_sha256: 2630b5fd9533735276f479f424f07db99aabb7d755b856d9c5e16f1de8b9f7da
36
+ full_suite: 3167 passed; 137 skipped; 0 failed
37
+ lint: passed
38
+ local_install:
39
+ path: C:\Users\djlov\.local\share\ciel-runtime
40
+ verified_source_hashes: 18
41
+ hash_mismatches: 0
42
+ status: behavior_verified
@@ -0,0 +1,25 @@
1
+ title: Claude idle raw TTY prompt render timeout
2
+ date: 2026-09-05
3
+ evidence:
4
+ instance:
5
+ router: 9471-81e6fa259d15
6
+ request: 278
7
+ accepted: 2026-09-05T13:18:48
8
+ timeout: 2026-09-05T13:19:18
9
+ error: prompt_render_timeout -> prompt_not_submitted
10
+ later: 2026-09-05T13:19:47 submit_confirmed attempt=1
11
+ installed:
12
+ path: C:/Users/djlov/.local/share/ciel-runtime/ciel_runtime_support/windows_conpty.py
13
+ algorithm: prompt[:48] UTF-8 bytes searched directly in VT output
14
+ reproduction:
15
+ command: python scripts/probe_claude_raw_prompt_render.py
16
+ isolated_cli: Installed Claude; draft-only input; no Enter or API request
17
+ bytes: 187
18
+ observed: Claude draws spaces using ESC[1C cursor movement
19
+ installed_detected: false
20
+ working_tree_detected: true
21
+ conclusion:
22
+ confirmed_defect: VT output cannot be compared directly with plain prompt bytes. The readiness gate returns before sending Enter.
23
+ existing_fix: Working tree normalizes VT text; it is absent from the inspected installation.
24
+ scope: Demonstrates this failure path, not every reported wakeup failure.
25
+ deployment: Not performed; active user sessions unchanged.
@@ -0,0 +1,23 @@
1
+ title: Web search response URLs over the existing tool.call event stream
2
+ evidence:
3
+ claude:
4
+ source: Local Claude transcript 81b0504c-4826-42ef-91f5-397369ca6aef
5
+ call: toolu_018Firb4ystzFgqgJ73msgF8
6
+ format: tool_use WebSearch -> tool_result content string with JSON Links list
7
+ codex:
8
+ source: https://raw.githubusercontent.com/openai/codex/main/codex-rs/protocol/src/models.rs
9
+ finding: WebSearchCall can contain only id/status/action; Search action has query/queries, not result URLs.
10
+ api_source: https://developers.openai.com/api/docs/guides/tools-web-search
11
+ supported: Structured sources/results/citations when retained; correlated search function outputs.
12
+ limitation: No fabricated result URLs for metadata-only native rollouts.
13
+ implementation:
14
+ transport: Existing event bus and /ca/events/ws?category=tool.call, SSE and recent
15
+ data: phase=result, call_id, name, runtime, urls; no query/title/body
16
+ persistence: Per-transcript cursor with bounded 512-call and result-hash state
17
+ verification:
18
+ live_loopback:
19
+ command: python scripts/probe_web_search_result_stream.py <transcript> <call_id>
20
+ observed: HTTP/1.1 101 Switching Protocols; nine real Claude result URLs received in a WS text frame.
21
+ safety: Isolated EventBus and loopback port; no writes to live user transcripts or external destinations.
22
+ tests: Parser, restart/partial-line integration, transcript delivery, existing WS adapter and tool-call projection.
23
+ deployment: Not requested in this turn; no deployment or push performed.
@@ -0,0 +1,19 @@
1
+ title: Native versus non-native Ciel tool injection
2
+ date: 2026-09-05
3
+ scope:
4
+ ownership: Ciel-generated definitions only; user MCP configuration unchanged.
5
+ policy:
6
+ injection_mode: always | native | non_native
7
+ default: always (channel/runtime integration remains available)
8
+ launches:
9
+ claude: Anthropic direct and routed launches exclude generated DDG/fetch even with a search override.
10
+ codex: Native provider classification passed to workspace MCP projection, including app-server.
11
+ existing_codex_search: No automatic DDG generator call exists in the inspected Codex launch path.
12
+ verification:
13
+ method: Execute tests and read actual temporary MCP JSON/argument projections across non-native/native/non-native launches.
14
+ boundary: No live authenticated model query or deployment requested/performed.
15
+ results:
16
+ workspace_mcp: 18 tests passed; actual generated JSON/argument projections verified.
17
+ policy: 2 tests passed.
18
+ claude_launch: 1 test passed, including native/non-native explicit-search command assembly.
19
+ codex_full_suite: Interrupted; opened an interactive resume picker. Only the identified test process tree was terminated. Not claimed as passing.
@@ -0,0 +1,43 @@
1
+ knowledge:
2
+ task:
3
+ title: Windows ConPTY prompt delivery lifecycle hardening
4
+ date: 2026-09-05
5
+ scope:
6
+ - ANSI and Korean prompt-render observation
7
+ - no-repeat submission failure behavior
8
+ - runtime input lifecycle API and events
9
+ - strict delivery ordering
10
+ - private queue cursor accounting
11
+ - resize failure and redraw observation
12
+ evidence:
13
+ source:
14
+ prompt_detection: ciel_runtime_support/windows_conpty.py
15
+ injection_policy: ciel_runtime_support/channel_injection.py
16
+ ordering: ciel_runtime_support/channel_pending_injection.py
17
+ lifecycle: ciel_runtime_support/runtime_input_status.py
18
+ api: ciel_runtime_support/chat_http_controller.py
19
+ confirmed_behavior:
20
+ - ANSI CSI, OSC, SGR, and cursor-right output is projected only for detection; input text is not decorated or rewritten.
21
+ - prompt-render timeout requests one draft clear, records whether redraw confirmed it, then disables automatic retyping.
22
+ - an unconfirmed submission is sticky failed state and blocks later private inputs at the same cursor.
23
+ - TTY and session-socket drafts are limited to one request; router-body batching remains independent of TUI drafts.
24
+ - backlog scan_tail is composed with _runtime_input_scan_max_id, not the public chat repository.
25
+ - ConPTY resize logs HRESULT or exception on failure and redraw observed or timeout after success.
26
+ - no ASCII sentinel or automatic router-body fallback remains in the Windows terminal proxy.
27
+ verification:
28
+ focused:
29
+ windows_conpty: 33 passed
30
+ channel_injection: 13 passed
31
+ runtime_input_status: 2 passed
32
+ channel_bridge: 216 passed, 80 skipped
33
+ native_windows:
34
+ transport: real CreatePseudoConsole child process
35
+ utf8: ANSI-fragmented Korean prompt observed and submitted; child returned TURN_STARTED
36
+ resize_redraw: Claude 2783 bytes and Codex 2233 bytes after 120x30 to 123x32 resize; both logged redraw=observed
37
+ http_probe: POST returned queued for request 73; GET returned replied; events were queued, submitted, replied
38
+ full_suite: 3174 passed, 137 skipped, 0 failed
39
+ lint: passed
40
+ docs: passed
41
+ diff_check: passed
42
+ local_deployment: not requested in this task
43
+ nightly_push: not requested in this task
@@ -0,0 +1,13 @@
1
+ title: Local and nightly release of ConPTY delivery and managed tool policies
2
+ date: 2026-09-05
3
+ authorization: User requested local and nightly deployment.
4
+ scope:
5
+ changes: Previously implemented ConPTY input lifecycle and native tool injection changes, with regression tests and diagnostic probes.
6
+ verification:
7
+ static: Ruff, documentation metadata and git diff whitespace checks passed.
8
+ cli_probe: Installed Claude draft output reproduces old detector failure and working-tree detector success without submitting a model request.
9
+ deployment:
10
+ local_target: C:/Users/djlov/.local/share/ciel-runtime
11
+ remote_branch: nightly
12
+ mechanism: Repository Windows installer; GitHub npm publish workflow.
13
+ active_sessions: Do not terminate or restart user sessions; loaded Python code requires runtime restart.
@@ -0,0 +1,14 @@
1
+ title: Local and nightly deployment of URL-only search result events
2
+ date: 2026-09-05
3
+ authorization: User requested local and nightly deployment.
4
+ scope:
5
+ endpoint: Existing /ca/events/ws?category=tool.call plus SSE/recent
6
+ payload: phase=result and urls with call correlation; no search response prose
7
+ limitation: Codex metadata-only rollouts cannot supply absent result URLs.
8
+ verification:
9
+ preflight: Ruff, documentation metadata and whitespace checks passed.
10
+ functionality: Real Claude search replay produced nine URLs over a loopback WebSocket; 23 targeted tests passed.
11
+ deployment:
12
+ local_target: C:/Users/djlov/.local/share/ciel-runtime
13
+ remote: nightly branch through the repository npm publish workflow
14
+ sessions: User processes remain running; restart required for already-loaded modules.
@@ -0,0 +1,22 @@
1
+ title: Disable inherited replacement web MCPs for native Codex launches
2
+ date: 2026-09-06
3
+ scope:
4
+ requested: Implement native-only overrides and deploy locally.
5
+ project: G:/ciel-bridge-service
6
+ cause: Global Codex config declares duckduckgo and web_fetch; prior Ciel injection filtering did not suppress inherited entries.
7
+ changes:
8
+ cli: Append enabled=false overrides after workspace MCP projection.
9
+ app_server: Apply identical overrides for native providers, direct or routed.
10
+ non_native: No override emitted.
11
+ verification:
12
+ actual_cli:
13
+ command: codex [-c mcp_servers.duckduckgo.enabled=false -c mcp_servers.web_fetch.enabled=false] mcp get <server> --json
14
+ cwd: G:/ciel-bridge-service
15
+ baseline: Both enabled=true.
16
+ native_override: Both enabled=false.
17
+ global_config_hash: Unchanged before/after inspection.
18
+ tests: Runtime group 276 tests completed successfully with 12 skipped; policy tests passed.
19
+ deployment:
20
+ target: C:/Users/djlov/.local/share/ciel-runtime
21
+ sessions: No existing user process terminated; restart required.
22
+ nightly: Not requested for this turn.
@@ -0,0 +1,13 @@
1
+ title: Merge current nightly development into local main
2
+ date: 2026-09-07
3
+ authorization: User requested merging the current version into main.
4
+ scope:
5
+ source: nightly, including the previously uncommitted native Codex MCP suppression fix
6
+ target: local main
7
+ excluded: Unrelated Ciel Bridge discussion; no bridge code changes
8
+ verification:
9
+ remote_preflight: Local main matches origin/main after fetch.
10
+ checks: Ruff and documentation metadata passed; runtime group completed 276 tests with 12 skipped.
11
+ git: Verify source is an ancestor of main and merged tree matches source.
12
+ publication:
13
+ policy: No remote push or npm publication; main push triggers stable publish.
@@ -0,0 +1,10 @@
1
+ title: Publish stable 0.2.38 so existing clients can detect the update
2
+ date: 2026-09-07
3
+ authorization: User requested deployment after identifying unchanged published version.
4
+ cause:
5
+ previous: main advanced but package version stayed at already-published 0.2.37.
6
+ correction: Synchronize npm package and Python runtime versions at 0.2.38.
7
+ deployment:
8
+ channel: npm latest through main branch publish workflow
9
+ verification: Check CI, publish result, npm latest version/gitHead, and downloadable package.
10
+ exclusions: No user session restart or configuration changes.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@oneciel-ai/ciel-runtime",
3
- "version": "0.2.37",
3
+ "version": "0.2.38",
4
4
  "description": "Universal AI coding-agent runtime and model-routing layer for Claude, Codex, AGY, ZCode, and compatible runtimes.",
5
5
  "license": "MIT",
6
6
  "author": "One Ciel LLC",