Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions crates/webcodex-core/src/runner_protocol.rs
Original file line number Diff line number Diff line change
Expand Up @@ -4837,6 +4837,7 @@ mod envelope_tests {
"apply_text_edit_line_scope",
"apply_patch",
"apply_patch_match_metadata",
"apply_patch_matching_mode",
"apply_patch_strict_matching",
"git",
"jobs",
Expand Down Expand Up @@ -4876,6 +4877,7 @@ mod envelope_tests {
"coding_agent_runs",
"native_tool_plugins",
"managed_ssh_resources",
"runner_config_control",
"computer_control",
"computer_scroll_to_element",
"computer_key_input",
Expand Down
2 changes: 2 additions & 0 deletions crates/webcodex-tool-contracts/src/tool_catalog.rs
Original file line number Diff line number Diff line change
Expand Up @@ -241,6 +241,8 @@ pub const TOOL_DISCOVERY_GROUPS: &[ToolDiscoveryGroup] = &[
"list_projects",
"list_runners",
"runtime_status",
"runner_config_check",
"runner_config_reload",
"tool_manifest",
"plugin_tool",
],
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -126,6 +126,7 @@ fn sample_field_value(field: &str) -> Value {
"base_commit" => json!("a".repeat(40)),
"head_commit" => json!("b".repeat(40)),
"expected_head" => json!("a".repeat(40)),
"expected_generation" => json!(1),
"expected_revision" => json!(format!("sha256:{}", "a".repeat(64))),
"expected_generation" => json!(1),
"name" => json!("Private Drop"),
Expand Down
22 changes: 22 additions & 0 deletions docs/runtime-console.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,3 +22,25 @@ Mobile operation navigation closes after selection and focuses the destination.
These are presentation changes. Workflow Session and durable Agent identities,
credential scopes, refresh behavior, and mutation handling keep their existing
contracts. Model-reported progress remains informational.

Each selected Project/workspace has its own keyboard-accessible disclosure below
its Runner. Closing it hides that workspace's Sessions without clearing the
selected Session or composer; its preference survives refresh. Selecting another
workspace opens its Session list.

At widths of 1280px and above, Context docks beside a narrower conversation, with
more room for readable status and progress. Its Overview starts with the latest
retained Agent-authored message. Resolution text is also visible directly below
the original message, rather than only in a tooltip.

Project search continues to query authorized Projects by name, id, Runner, or
workspace path. Separate searches filter the loaded Sessions by title/id/lifecycle
and retained messages by body, resolution, id, or author Session. Match counts
refer only to loaded results; these controls do not search unretained history or
host transcripts and do not change the selected Session.

The Session board is not a mirrored host chat transcript. An observed ACK records
an explicit model-context acknowledgement, not a reply, read receipt, or completed
work. Model replies appear only when explicitly posted to the Session; reported
progress is separately labeled as informational. An empty latest-message card
means no Agent message exists in the currently retained window.
2 changes: 1 addition & 1 deletion frontend/dist/runtime.css

Large diffs are not rendered by default.

6 changes: 6 additions & 0 deletions frontend/dist/runtime.html
Original file line number Diff line number Diff line change
Expand Up @@ -132,6 +132,8 @@ <h2>Projects</h2>
<h2>Sessions</h2>
<span id="runtime-sessions-count" class="count-badge">0</span>
</div>
<label class="runtime-search-field"><span>Search loaded Sessions</span><input id="runtime-session-search" type="search" maxlength="200" placeholder="Title, id, or lifecycle" /></label>
<span id="runtime-session-search-status" class="muted small" role="status"></span>
<ul id="runtime-session-list" class="session-list" aria-label="Workflow Sessions"></ul>
<p id="runtime-sessions-empty" class="muted small empty-copy" hidden>No retained Workflow Sessions for this project.</p>
</section>
Expand Down Expand Up @@ -252,6 +254,9 @@ <h2>Select a Session</h2>
</div>
<p id="runtime-collaboration-unavailable" class="muted small unavailable-note" hidden>Collaboration messages require runtime:read. Existing project/session observability remains available.</p>
<div id="runtime-chat-scroll" class="chat-scroll">
<p class="collaboration-explanation muted small">This board shows retained Session messages. ACK is not a reply or completion. Host chat replies appear here only when explicitly posted to this Session.</p>
<label class="runtime-search-field"><span>Search retained messages</span><input id="runtime-message-search" type="search" maxlength="200" placeholder="Message, resolution, or id" /></label>
<span id="runtime-message-search-status" class="muted small" role="status"></span>
<div id="runtime-collaboration-board" class="collaboration-board" role="log" aria-label="Session conversation"></div>
<div id="runtime-collaboration-empty" class="chat-empty" hidden>
<span aria-hidden="true">✦</span>
Expand Down Expand Up @@ -477,6 +482,7 @@ <h3>Conversations</h3>
<button type="button" data-context-target="runtime-context-details" aria-controls="runtime-context-details" aria-pressed="false">Details</button>
</div>
<section id="runtime-context-overview" aria-label="Overview">
<section class="overview-card"><h4>Latest Agent message</h4><div id="runtime-latest-agent-message"></div></section>
<div class="overview context-primary-overview" aria-label="Workflow Session overview">
<section class="overview-card runtime-fact"><h4>Work</h4><p id="runtime-overview-work">—</p></section>
<section id="runtime-overview-attention-card" class="overview-card attention-fact"><h4>Attention</h4><p id="runtime-overview-attention">—</p></section>
Expand Down
Loading
Loading