@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.
- package/CHANGELOG.md +78 -0
- package/README.md +5 -2
- package/ciel_runtime.py +94 -96
- package/ciel_runtime_support/anthropic_model_policy.py +20 -3
- package/ciel_runtime_support/architecture.py +5 -0
- package/ciel_runtime_support/channel_inflight.py +4 -4
- package/ciel_runtime_support/channel_injection.py +56 -1
- package/ciel_runtime_support/channel_mcp_tools.py +34 -0
- package/ciel_runtime_support/channel_message_policy.py +9 -1
- package/ciel_runtime_support/channel_message_prompt.py +23 -0
- package/ciel_runtime_support/channel_pending_injection.py +86 -32
- package/ciel_runtime_support/channel_pending_poll.py +6 -2
- package/ciel_runtime_support/channel_runtime_environment.py +0 -11
- package/ciel_runtime_support/channel_terminal_context.py +0 -6
- package/ciel_runtime_support/channel_terminal_proxy.py +3 -42
- package/ciel_runtime_support/channel_transcript_repository.py +16 -1
- package/ciel_runtime_support/channel_wake_claim_repository.py +0 -19
- package/ciel_runtime_support/channel_wake_context.py +6 -13
- package/ciel_runtime_support/channel_wake_delivery_repository.py +50 -0
- package/ciel_runtime_support/chat_http_controller.py +88 -5
- package/ciel_runtime_support/claude_environment.py +100 -3
- package/ciel_runtime_support/claude_launch_assembly.py +4 -0
- package/ciel_runtime_support/claude_session_socket.py +181 -0
- package/ciel_runtime_support/cli_application_context.py +18 -10
- package/ciel_runtime_support/cli_dispatch.py +19 -3
- package/ciel_runtime_support/cli_parser.py +2 -0
- package/ciel_runtime_support/cli_usage.py +3 -2
- package/ciel_runtime_support/codex_backend_context.py +8 -3
- package/ciel_runtime_support/codex_completion_gate.py +198 -0
- package/ciel_runtime_support/codex_turn_recovery.py +240 -83
- package/ciel_runtime_support/compatibility_protocol.py +5 -2
- package/ciel_runtime_support/config_migrations.py +79 -0
- package/ciel_runtime_support/config_repository.py +7 -0
- package/ciel_runtime_support/context_summary_policy.py +24 -4
- package/ciel_runtime_support/external_event_menu.py +107 -0
- package/ciel_runtime_support/external_event_receiver.py +19 -1
- package/ciel_runtime_support/launch_state.py +2 -0
- package/ciel_runtime_support/managed_tool_injection.py +33 -0
- package/ciel_runtime_support/muse_runtime_context.py +291 -0
- package/ciel_runtime_support/ollama_thinking.py +12 -26
- package/ciel_runtime_support/prelaunch.py +13 -0
- package/ciel_runtime_support/prelaunch_launch_panel.py +2 -1
- package/ciel_runtime_support/prompt_compaction.py +39 -0
- package/ciel_runtime_support/provider_files_proxy.py +248 -0
- package/ciel_runtime_support/provider_model_identity.py +10 -2
- package/ciel_runtime_support/provider_option_cli.py +1 -1
- package/ciel_runtime_support/provider_request_access.py +54 -1
- package/ciel_runtime_support/provider_responses_passthrough.py +152 -15
- package/ciel_runtime_support/providers/alibaba.py +34 -1
- package/ciel_runtime_support/providers/anthropic.py +18 -1
- package/ciel_runtime_support/providers/meta.py +252 -21
- package/ciel_runtime_support/pseudo_tool_parser.py +17 -1
- package/ciel_runtime_support/remote_bridge.py +4 -0
- package/ciel_runtime_support/remote_instructions.py +5 -0
- package/ciel_runtime_support/remote_memory.py +1 -1
- package/ciel_runtime_support/responses_cache_diagnostics.py +82 -0
- package/ciel_runtime_support/responses_custom_tool_bridge.py +282 -0
- package/ciel_runtime_support/responses_input_compatibility.py +19 -3
- package/ciel_runtime_support/router_http.py +301 -4
- package/ciel_runtime_support/router_observability_context.py +26 -0
- package/ciel_runtime_support/router_server_context.py +1 -0
- package/ciel_runtime_support/runtime_adapters.py +31 -0
- package/ciel_runtime_support/runtime_constants.py +23 -1
- package/ciel_runtime_support/runtime_input_gateway.py +85 -5
- package/ciel_runtime_support/runtime_input_status.py +150 -0
- package/ciel_runtime_support/runtime_launch.py +27 -4
- package/ciel_runtime_support/runtime_paths.py +1 -0
- package/ciel_runtime_support/speech_http_controller.py +3 -2
- package/ciel_runtime_support/streaming_anthropic.py +3 -0
- package/ciel_runtime_support/tool_call_events.py +98 -0
- package/ciel_runtime_support/transcript_delta_delivery.py +140 -1
- package/ciel_runtime_support/ui_text.py +1 -0
- package/ciel_runtime_support/web_search_result_events.py +130 -0
- package/ciel_runtime_support/web_ui.py +1 -0
- package/ciel_runtime_support/windows_conpty.py +92 -8
- package/ciel_runtime_support/workspace_mcp.py +4 -1
- package/ciel_runtime_support/workspace_state.py +1 -0
- package/docs/Configuration.md +20 -4
- package/docs/MCP-Channels.md +79 -6
- package/docs/Managed-Tool-Injection.md +25 -0
- package/docs/Module-Map.md +4 -0
- package/docs/Muse-Code.md +73 -0
- package/docs/Observability.md +39 -0
- package/docs/Providers.md +29 -2
- package/docs/Remote-Bridge.md +12 -0
- package/docs/Router.md +1 -0
- package/docs/journal/2026/09/01/diagnostics/anthropic/router/fable51-usage-credits.okf +70 -0
- package/docs/journal/2026/09/01/implementation/claude/session-socket/all-input-paths/default-delivery.okf +133 -0
- package/docs/journal/2026/09/01/implementation/claude/session-socket/windows-direct-input.okf +112 -0
- package/docs/journal/2026/09/02/diagnostics/cache/alibaba/qwen38-post-restart-hit-rate.okf +107 -0
- package/docs/journal/2026/09/02/diagnostics/cache/ollama-cloud/kimi-k3-codex-hit-rate.okf +91 -0
- package/docs/journal/2026/09/02/diagnostics/codex/tui/statusline-cache-metrics.okf +44 -0
- package/docs/journal/2026/09/02/diagnostics/input/transport/fallback-behavior.okf +31 -0
- package/docs/journal/2026/09/02/diagnostics/providers/ollama-cloud/kimi-k3-agent-turn-recovery.okf +125 -0
- package/docs/journal/2026/09/02/diagnostics/providers/ollama-cloud/kimi-k3-parameters.okf +128 -0
- package/docs/journal/2026/09/02/diagnostics/remote/mia/socket-tui-visibility.okf +47 -0
- package/docs/journal/2026/09/02/diagnostics/runtime/alibaba/token-plan/qwen38-latency.okf +108 -0
- package/docs/journal/2026/09/02/diagnostics/runtime/alibaba/token-plan/qwen38-vs-gpt56-latency.okf +92 -0
- package/docs/journal/2026/09/02/implementation/anthropic/context/one-million-defaults.okf +85 -0
- package/docs/journal/2026/09/02/implementation/cache/alibaba/qwen38-cache-hit-improvement.okf +104 -0
- package/docs/journal/2026/09/02/implementation/cache/alibaba/qwen38-cache-hit-improvement.png +0 -0
- package/docs/journal/2026/09/02/implementation/cache/alibaba/responses-session-cache.okf +97 -0
- package/docs/journal/2026/09/02/implementation/providers/alibaba/qwen38/0902-parameter-alignment.okf +97 -0
- package/docs/journal/2026/09/02/implementation/providers/meta/multimodal-tools/contributor-protocol-adoption.okf +140 -0
- package/docs/journal/2026/09/02/implementation/providers/meta/muse-spark-1.3-support.okf +53 -0
- package/docs/journal/2026/09/02/monitoring/cache/alibaba/cielarvis-qwen38-live-hit-rate.okf +858 -0
- package/docs/journal/2026/09/02/operations/release/main-merge-local-deploy.okf +36 -0
- package/docs/journal/2026/09/02/operations/release/nightly/local-cache-deployment.okf +54 -0
- package/docs/journal/2026/09/02/operations/release/nightly/ollama-kimi-recovery-model-audit-deployment.okf +58 -0
- package/docs/journal/2026/09/02/operations/release/nightly/qwen38-cache-improvement-deployment.okf +72 -0
- package/docs/journal/2026/09/02/research/cache/alibaba/qwen38-hit-rate-improvement.okf +233 -0
- package/docs/journal/2026/09/02/research/cache/codex/provider-scope.okf +77 -0
- package/docs/journal/2026/09/02/research/providers/ollama-cloud/desktop-model-exhaustive-audit.okf +159 -0
- package/docs/journal/2026/09/03/diagnostics/providers/meta/muse-spark-contributor-cache-hit.okf +148 -0
- package/docs/journal/2026/09/03/diagnostics/providers/meta/muse-spark-contributor-required-schema.okf +127 -0
- package/docs/journal/2026/09/03/diagnostics/providers/ollama-cloud/kimi-k3-resumed-session-stall.okf +160 -0
- package/docs/journal/2026/09/03/diagnostics/providers/ollama-cloud/kimi-k3-substantive-dangling-action.okf +94 -0
- package/docs/journal/2026/09/03/diagnostics/remote/kevin/codex-gpt-early-turn-completion.okf +162 -0
- package/docs/journal/2026/09/03/implementation/runtimes/meta/muse-code/default-yolo.okf +40 -0
- package/docs/journal/2026/09/03/implementation/runtimes/meta/muse-code/native-subscription-router.okf +86 -0
- package/docs/journal/2026/09/03/operations/deployment/local/session-socket-default-fallback.okf +41 -0
- package/docs/journal/2026/09/03/research/deployment/colab/tailscale/credential-storage.okf +41 -0
- package/docs/journal/2026/09/03/research/providers/meta/muse-code/subscription-billing-boundary.okf +64 -0
- package/docs/journal/2026/09/03/research/web-chat/voice/instruction-format.okf +135 -0
- package/docs/journal/2026/09/04/diagnostics/claude/context/early-auto-compaction.okf +75 -0
- package/docs/journal/2026/09/04/diagnostics/claude/context/fable-51-status-200k.okf +54 -0
- package/docs/journal/2026/09/04/diagnostics/runtime/codex/responses/replayed-item-id-validation.okf +74 -0
- package/docs/journal/2026/09/04/diagnostics/workspaces/onecieldmsui/codex/replay-stall.okf +100 -0
- package/docs/journal/2026/09/04/implementation/observability/tool-calls/websocket-stream.okf +49 -0
- package/docs/journal/2026/09/04/implementation/web-chat/input/raw-injection.okf +42 -0
- package/docs/journal/2026/09/05/diagnostics/tty/claude-raw-idle-render.okf +25 -0
- package/docs/journal/2026/09/05/implementation/events/search-response-urls.okf +23 -0
- package/docs/journal/2026/09/05/implementation/tools/native-injection.okf +19 -0
- package/docs/journal/2026/09/05/implementation/windows/conpty/prompt-delivery-lifecycle.okf +43 -0
- package/docs/journal/2026/09/05/release/nightly/conpty-native-tools.okf +13 -0
- package/docs/journal/2026/09/05/release/nightly/search-result-urls.okf +14 -0
- package/docs/journal/2026/09/06/implementation/codex/inherited-web-mcp.okf +22 -0
- package/docs/journal/2026/09/07/integration/main/nightly-merge.okf +13 -0
- package/docs/journal/2026/09/07/release/stable/0.2.38.okf +10 -0
- 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
|
package/docs/journal/2026/09/04/diagnostics/runtime/codex/responses/replayed-item-id-validation.okf
ADDED
|
@@ -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