You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
feat(chat): project the steward channel's session mode and status (#4483)
Admin-bypass merge with the temporary gate bypass the owner authorized for this lane.
Merged head: `610b9d86baf6b3b5693ce7978e9a1a344a542194`
Why the bypass is needed here: the account is the PR author, so GitHub refuses a formal self-approval and the required formal review can never be satisfied on this branch. The equivalence check was published instead as a `COMMENTED` review carrying the full bilingual review body, and the capability validated its shape and verdict (`pull_request_review_conclusion_v0`: `valid=true`, `verdict=APPROVE`, no invalid reasons).
Evidence at the merged head:
- `loopx canary premerge --from-git-diff --goal-id loopx-meta` → `passed`, 11 selected checks, 0 failures, 0 manual holds, `merge_gate_passed=true`, `self_merge_allowed=true`
- change-quality receipt `cqr_cc7041812e4ceb7c5644` → `state=valid` for scope fingerprint `cc7041812e4ceb7c5644227c131915c52a99401192c400d8d9873feddcfcb2e7` (8 changed files)
- `pytest` focused steward suite → 122 passed
- `examples/loopx-steward-channel-binding-smoke.py` → passed, including the new `mode_readback` probe
- `ruff check` clean; `examples/docs-governance-smoke.py` ok; `examples/semantic-vocabulary-drift-smoke.py` ok
- falsification: making the projector derive `managed_runtime` for a channel with no Session fails `test_a_channel_without_a_session_reads_as_unbound`
Delivery boundary recorded in the PR: the dashboard chip does not render the new fields yet, because that changes the app's first viewport and needs an owner preview.
Honest gap: the repository CI workflow was still running at merge time (12 jobs still pending after a bounded wait, 0 failing). The owner's standing instruction for this lane is not to idle on CI, so the remaining GitHub checks were not awaited; they can still be read on the merged commit.
Copy file name to clipboardExpand all lines: docs/architecture/rfcs/harness-selection-dsh-pi-v0.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -401,7 +401,7 @@ operator-local path is recorded here.
401
401
| Manager M2 — semantic continuation | Receiver resolution across registered running lanes; typed per-source coverage and freshness; a goal-level milestone the report can lead with instead of coverage disclaimers | Not implemented. Delegation resolves against the supplied delegation catalog, so a request whose owning lane is absent from that catalog is refused or routed to an unrelated lane; a provider read failure surfaces as raw error text instead of a typed source row; the manager context exposes deliveries and coverage but no goal-level milestone field to synthesize from |
402
402
| Manager M3 — automatic complete exchange | A persisted answer that exceeds or violates the channel's outbound text contract is split and re-sent under a stable answer identity; an ambiguous or failed send is reconciled instead of replaced by a local notice; the return path survives a transport restart; rich markdown renders as structured text | Partially mitigated. `loopx/extensions/lark/outbound.py` fails closed on an over-limit or malformed payload, and the channel reports that local failure without re-delivering the persisted answer; one answer carries no idempotency identity, so a retry can duplicate it; structured rendering is not guaranteed |
403
403
| Host modes M0-M1 | The channel's executor selection and its bounded one-segment execution | Selection is covered by PR #4446 and the Turn-side selection by PR #4443; bounded one-segment execution is covered by the Mode B acceptance above. The channel itself now reaches the managed host through the segment transport, so the managed host's own one-segment execution is reachable from the channel; what remains open is that the segment is not a session, so cross-turn host continuity is still not offered |
404
-
| Host modes M2-M3 | Attached-host parity, typed unavailability, and mode-aware projection with no mode inference and no second executor | Partly shipped: the channel's managed segment transport holds one executor per binding, refuses a second start with the typed `managed_host_chat_segment_in_flight`, and discards an interrupted segment's answer instead of letting it enter visible history. Still not implemented: attached-host parity, and an external audience still degrades to `restricted`, while the channel projects neither its mode nor its session status|
404
+
| Host modes M2-M3 | Attached-host parity, typed unavailability, and mode-aware projection with no mode inference and no second executor | Partly shipped: the channel's managed segment transport holds one executor per binding, refuses a second start with the typed `managed_host_chat_segment_in_flight`, and discards an interrupted segment's answer instead of letting it enter visible history. The channel readback also carries the mode-aware projection: it quotes the Session's own `session_mode` and `status`, reads a channel with no Session as `unbound`, and names a mode outside the closed set as `unrecognized` instead of deriving a mode from the executor it resolved. Still not implemented: attached-host parity, and an external audience still degrades to `restricted`|
405
405
406
406
Two boundaries stay fixed across all five rows. The channel remains an entry point
407
407
and projection of one manager Session: it owns no profile, no permission state, no
0 commit comments