Files
rdp-proxy/CODEX_CONTEXT.md
T
m 20d361a886
build / backend (push) Has been cancelled
build / node-agent (push) Has been cancelled
build / worker (push) Has been cancelled
рабочий вариант, но скороть 10 МБит
2026-05-22 21:46:49 +03:00

5405 lines
360 KiB
Markdown

# CODEX CONTEXT
## Project identity
This project is a production-grade distributed secure access platform.
It started as a custom RDP proxy with persistent server-side sessions, but the final target architecture is broader:
- distributed secure access fabric
- multi-tenant platform
- session broker for GUI and future non-GUI protocols
- cluster mesh of nodes
- connector/VPN layer
- customer-managed and platform-managed nodes
- node-agent based self-update / rollback / health supervision
## Product architecture rule: VPN and Remote Workspace are separate products/layers
Do not merge VPN/IP tunnel work with Remote Workspace / remote desktop work.
- VPN is a universal network-layer IP tunnel. It carries any traffic generated
by a phone, Windows PC, Linux host, or other client device: HTTP, DNS, ping,
RDP clients, SSH clients, SMB, business apps, and future protocols. VPN must
stay protocol-agnostic and must not contain remote-desktop-specific logic.
- Remote Workspace is an application/session-layer service. The client talks to
RAP using RAP's own client protocol. RAP workers/connectors then talk to the
target server using protocol adapters such as RDP, SSH, VNC, or future
adapters, convert screen/input/clipboard/files/audio/control into RAP's
format, and render it in the RAP client.
- VPN optimization work must focus on generic data-plane transport,
full-tunnel/split-tunnel routing, DNS, MTU/MSS, QoS, NAT traversal, direct
UDP/QUIC transport, fallback relay, diagnostics, and stability for arbitrary
traffic.
- Remote Workspace optimization work must focus on server catalog, session
broker, workers/connectors, protocol adapters, RAP client protocol, separate
connection windows, rendering/input/clipboard/file/audio behavior, and
user-facing remote-workspace UX.
- Both VPN and Remote Workspace must consume the shared Fabric Service Channel
runtime. Control/API traffic may use backend/admin ingress, but working
service data must use the fabric channel whenever available. Backend relay is
a compatibility/degraded fallback, not the production steady-state.
- The accepted service-channel direction is documented in
`docs/architecture/FABRIC_SERVICE_CHANNEL_RUNTIME.md`: a service requests a
channel with entry pool, exit pool, roles, service class, channel classes,
QoS and failover policy; the fabric selects the fastest healthy route and
rebuilds it on failure. Protocol-specific services must not reimplement this
transport.
- Current implementation: backend issues `rap.fabric_service_channel_lease.v1`
leases and embeds them in VPN client profiles. Leases include
cluster-authority-signed `rap.fabric_service_channel_lease_authority.v1`
payloads that bind token hash, selected route, generation, fencing epoch, and
expiry, plus a signed `data_plane` contract declaring that working data uses
the Fabric Service Channel over fabric routes while backend relay is only an
explicit degraded/disabled fallback policy. `rap-node-agent` accepts the
first VPN packet service-channel entry
endpoint under
`/api/v1/clusters/{cluster_id}/fabric/service-channels/{channel_id}/vpn-connections/{resource_id}/packets`
plus `/packets/ws`. The endpoint validates the signed or introspected
data-plane contract, applies the preferred fabric route, uses the existing
production `vpn_packet` fabric route, reports contract adoption in heartbeat
access telemetry, and refuses backend relay when the contract disables it.
Backend access telemetry and web-admin now show data-plane adoption,
working/steady-state transport, backend relay policy, data-plane mode, and
logical flow mode at cluster/node/channel levels. The next slice is explicit
route/fallback violation incidents from that telemetry, plus client
consumption of the lease endpoint template.
## Current proven foundation
The current codebase already proved the most risky low-level lifecycle assumptions for RDP:
- real FreeRDP connect works
- session state transitions to active work
- terminate works
- detach works without killing the remote session
- reattach works without recreating the remote session
- takeover works without recreating the remote session
- per-resource certificate verification policy exists
- `certificate_verification_mode = strict | ignore`
- `strict` is default
- `ignore` works on a per-resource basis
- worker build is reproducible
- backend build is reproducible
This proven lifecycle must NOT be broken by future architecture work.
## Current architecture baseline
Current audit and baseline snapshot:
- `docs/audits/PROJECT_AUDIT_2026-04-26.md`
- `docs/audits/CURRENT_BASELINE_MATRIX.md`
### Test environment
- Canonical test Docker host: `192.168.200.61`
- Canonical Docker context: `test-ubuntu`
- Canonical SSH alias: `docker-test`
- Current external fabric control endpoint for remote/offsite node enrollment:
`http://94.141.118.222:19191` / `http://vpn.cin.su:19191`.
- Current port forward: `94.141.118.222:19191` -> `192.168.200.61:18080`.
- For offsite Windows/Linux nodes, install profiles should use:
`http://vpn.cin.su:19191/api/v1` as fabric control endpoint and
`http://vpn.cin.su:19191/downloads` as artifact endpoint unless the user
explicitly chooses the raw IP endpoint.
- Backend API for local/client smoke runs: `http://192.168.200.61:8080/api/v1`
- WebSocket gateway for local/client smoke runs: `ws://192.168.200.61:8080/api/v1/gateway/ws`
- Stage C17 planning is completed.
- C17A synthetic mesh runtime skeleton is implemented and test-proven in
`rap-node-agent` only. It is disabled by default and carries synthetic
`fabric.probe` / `fabric.probe_ack` messages only.
- C17B route health and failover probes are implemented and test-proven in
`rap-node-agent` only. They are disabled by default and carry synthetic
`fabric.route_health` / `fabric.route_health_ack` messages only.
- C17C relay semantic hardening is implemented and test-proven in
`rap-node-agent` only. It is disabled by default and models synthetic
per-channel queues/QoS/backpressure only.
- C17D non-production test-service path is implemented and test-proven in
`rap-node-agent` only. It is disabled by default and carries only bounded
`synthetic.echo` test payloads.
- C17E/C17F/C17G are implemented and proven for live synthetic HTTP transport,
scoped synthetic route config, and Control Plane scoped synthetic config
consumption.
- C17H deployed multi-agent synthetic config smoke is runtime-proven on
`docker-test`: five running `rap-node-agent` containers consume
backend-issued node-scoped synthetic config, direct and single-relay
synthetic route-health observations return to the Control Plane, and
production forwarding remains disabled.
- C17I production forwarding gate foundation is implemented and test-proven:
`rap-node-agent` has an explicit production-forwarding gate, while
`/mesh/v1/forward` still refuses production payload forwarding until a later
approved runtime stage.
- C17J production envelope contract is implemented and test-proven:
`/mesh/v1/forward` validates route-bound production envelopes for
`fabric_control` / `fabric.control` only when the gate is enabled, rejects
service channels, and still refuses production forwarding.
- C17K production envelope observation is implemented and test-proven:
valid accepted envelopes can be observed locally as metadata-only records
after validation; rejected envelopes are not observed, observation failure
fails closed, and production forwarding remains unavailable.
- C17L bounded production observation sink is implemented and test-proven:
accepted metadata-only observations can be retained locally with fixed
capacity, oldest-entry drop behavior, and no payload body storage.
- C17M production observation sink wiring is implemented and test-proven:
node-agent can wire the bounded local metadata-only sink when
`RAP_MESH_PRODUCTION_OBSERVATION_SINK_CAPACITY` is explicitly greater than
zero; the wiring is disabled by default and exposes no read API.
- C17N production observation sink metrics are implemented and test-proven:
local sink metrics expose only capacity, current depth, accepted total, and
dropped-oldest total; they expose no observation records or payload metadata.
- C17O production observation sink local metrics logging is implemented and
test-proven: node-agent logs aggregate sink metrics locally when the sink is
explicitly enabled; no read API or Control Plane reporting is added.
- C17P production observation sink change-driven metrics logging is implemented
and test-proven: node-agent suppresses repeated identical local sink metrics
logs; no read API or Control Plane reporting is added.
- C17Q production forwarding gate/runtime log boundary is implemented and
test-proven: node-agent logs production forwarding gate state separately from
production forwarding runtime state. Runtime state remained false until
C17Z introduced gate-controlled `fabric.control` direct forwarding.
- C17R production observation sink capacity guard is implemented and
test-proven: `RAP_MESH_PRODUCTION_OBSERVATION_SINK_CAPACITY` is rejected
above `10000`.
- C17S production observation panic fail-closed hardening is implemented and
test-proven: observer errors and observer panics both fail closed as
observation failure.
- C17T production envelope payload boundary is implemented and test-proven:
validated production `fabric.control` envelope payloads are bounded to
`4096` bytes and oversized envelopes are rejected before observation.
- C17U production envelope created-at skew boundary is implemented and
test-proven: validated production `fabric.control` envelopes whose
`created_at` is more than one minute in the future are rejected before
observation.
- C17V peer endpoint candidate model is implemented and test-proven:
node-scoped synthetic mesh config now carries route-scoped endpoint
candidates with transport, address, reachability, NAT type, connectivity
mode, priority, policy tags, verification time, and metadata. This is a
model/config boundary only; no production route scoring, NAT traversal,
shortcut routing, or forwarding runtime is implemented.
- C17W peer endpoint candidate scoring model is implemented and test-proven:
`rap-node-agent` can rank already-scoped endpoint candidates using soft
inputs such as transport, reachability, connectivity mode, NAT type,
priority, region, policy tags, channel class, and verification age. This is
a scoring helper only; it does not open connections, choose production
routes, or forward payloads.
- C17X health-aware endpoint candidate scoring overlay is implemented and
test-proven: endpoint candidate scoring can optionally use local health
observations keyed by `endpoint_id`, including latency, success/failure
history, recent failure reason, reliability score, and observation freshness.
This remains advisory scoring only and is not wired into production route
execution.
- C17Y Platform Owner synthetic mesh visibility is implemented and
build/test-proven: `web-admin` reads node-scoped synthetic mesh config and
shows config enabled state, route counts, peer endpoints, endpoint
candidates, C17X advisory scoring boundary, and `production_forwarding`.
This remains platform-owner visibility only and does not enable production
forwarding.
- C17Z production fabric-control direct forwarding boundary is implemented and
test-proven: when `RAP_MESH_PRODUCTION_FORWARDING_ENABLED=true`,
`/mesh/v1/forward` can deliver valid route-bound `fabric.control` envelopes
at the local destination or forward them to a direct next hop from explicit
peer endpoint config. Service channels, arbitrary relay forwarding,
multi-hop production route execution, and RDP/VPN/file/video/service payloads
remain unavailable.
- C17Z1 production fabric-control multi-hop route-path boundary is implemented
and test-proven: production `fabric.control` envelopes can carry
`route_path` and `visited_node_ids`; relay nodes validate path position,
forward only to the next path node, update TTL/hop/visited metadata, and
reject loops. Service payloads remain unavailable.
- C17Z2 production fabric-control forwarding observability boundary is
implemented and test-proven: node-agent emits local
`mesh_production_forward_event` logs for accepted, forwarded, delivered, and
rejected production `fabric.control` envelopes. Logs are metadata-only and
include no payload bodies or read API.
- C17Z3 production fabric-control route-config boundary is implemented and
test-proven: when scoped/control-plane mesh routes are available locally,
production `fabric.control` envelopes must match configured route_id/path/
next-hop/channel/expiry/TTL/hop limits before forwarding.
- C17Z4 scoped peer directory and recovery seeds boundary is implemented and
test/build-proven: node-scoped mesh config carries scoped `peer_directory`
and explicit bounded `recovery_seeds`; node-agent parses/validates them and
web-admin shows counts.
- C17Z5 node-agent peer cache runtime boundary is implemented and test-proven:
node-agent builds a local `PeerCache`, selects bounded warm peers, probes warm
peers with `/mesh/v1/health`, and reports metadata-only mesh-link
observations when synthetic mesh testing is enabled.
- C17Z6 dynamic endpoint reporting boundary is implemented and test-proven:
node-agent reports explicit advertised mesh endpoint metadata in heartbeat,
and Control Plane projects latest reported endpoints/candidates into
node-scoped synthetic mesh config.
- C17Z7 private/corporate endpoint candidate boundary is implemented and
test-proven: node-agent reports multiple advertised endpoint candidates,
scoring rewards private/corporate same-site candidates, and peer cache can
use the best candidate address for warm health.
- C17Z8 peer connection state machine boundary is implemented and test-proven:
node-agent tracks warm-peer states `disconnected`, `connecting`, `ready`,
`degraded`, and `backoff`, with bounded backoff after repeated health probe
failures.
- C17Z9 peer recovery planner boundary is implemented and test-proven:
node-agent targets a bounded stable ready-peer set, enters recovery when
ready peers fall below target, and selects bounded recovery probes from warm
peers, recovery seeds, and other connectable scoped peers.
- C17Z10 peer connection intent planner boundary is implemented and
test-proven: node-agent classifies bounded peer work as maintain/probe/
recover and classifies transport readiness as direct/private_lan/
corporate_lan/outbound_only/relay_required, with rendezvous-required
metadata only.
- C17Z11 peer connection manager runtime boundary is implemented and
test-proven: node-agent uses a reusable HTTP keep-alive client for real
control-plane health probes of direct/private/corporate peers and records
`waiting_rendezvous` for outbound-only/relay-required peers.
- C17Z12 rendezvous/relay control-plane contract is implemented and
docker-test-runtime-proven: backend issues node-scoped `rendezvous_leases`,
node-agent resolves matching `waiting_rendezvous` intents into
`relay_control`, probes relay `/mesh/v1/health`, records and maintains
`relay_ready`, and keeps service payload forwarding disabled.
- C17Z13 rendezvous lease telemetry is implemented and
docker-test-runtime-proven: node-agent reports
`mesh_rendezvous_lease_report` with relay admission, peer admission,
TTL/renewal posture, `relay_ready`, and explicit no-payload boundary flags;
web-admin shows `rv leases` in recent heartbeat tables.
- C17Z14 rendezvous lease refresh contract is implemented and
docker-test-runtime-proven: node-agent refreshes renewal-needed/stale
rendezvous leases through node-scoped synthetic config reload, updates the
running peer cache/route/lease state, and reports refresh plus stale relay
withdrawal/reselection telemetry. Service payload forwarding remains
unavailable.
- C17Z15 backend relay replacement policy is implemented and
docker-test-runtime-proven: backend consumes recent stale-relay heartbeat
feedback, withdraws stale explicit rendezvous leases, scores alternate relay
candidates from route adjacency, endpoint priority, policy tags, and recent
mesh-link health, and returns replacement leases plus
`rendezvous_relay_policy` decisions in node-scoped synthetic config.
Node-agent reports `c17z15.mesh_rendezvous_lease_report.v1` and keeps stale
state scoped to the exact lease/relay, so replacement leases for the same
peer are not marked stale by association. Service payload forwarding remains
unavailable.
- C17Z16 route/path decision artifact is implemented and
docker-test-runtime-proven: backend `c17z16.synthetic.v1` config includes
`route_path_decisions` with original hops, effective hops, local previous/
next hop, selected replacement relay, generation, score reasons, and
no-payload boundary flags. Node-agent stores the control-plane route
generation and reports `c17z16.mesh_route_path_decision_report.v1` plus
`c17z16.mesh_rendezvous_lease_report.v1`. Service payload forwarding remains
unavailable.
- C17Z17 node-side route generation tracker is implemented and
docker-test-runtime-proven: backend `c17z17.synthetic.v1` config and
node-agent `mesh_route_generation_report` track active/applied/unchanged/
withdrawn route decisions, generation changes, total counters, and
`withdrawn_by_replacement` records for stale relay paths when replacement is
first observed. Service payload forwarding remains unavailable.
- C17Z18 synthetic route-health effective path runtime is implemented and
docker-test-runtime-proven: backend `c17z18.synthetic.v1` config and
node-agent `mesh_route_health_config_report` apply Control Plane
`route_path_decisions` to synthetic route-health route config only. The
synthetic runtime probes selected effective paths through replacement relays,
reports expected/observed hops and drift state, and backend latest mesh links
preserve route-health observations separately from connection-manager
observations. Service payload forwarding remains unavailable.
- C17Z19 synthetic route-health feedback scoring is implemented and
docker-test-runtime-proven: backend consumes recent `synthetic_route_health`
observations in relay scoring, uses drift/unreachable/failure metadata to
mark the exact selected relay stale, boosts healthy low-latency relay
candidates, and returns replacement leases/route decisions through the
existing synthetic config contract. Migration `000022` adds the `synthetic`
mesh service class. Service payload forwarding remains unavailable.
- C17Z20 node-side route-health feedback refresh is implemented and
docker-test-runtime-proven: after reporting synthetic route-health
drift/unreachable/failure, node-agent performs a bounded node-scoped
synthetic-config refresh, applies returned replacement route decisions to
route-health config immediately, and reports
`c17z20.mesh_route_health_feedback_refresh_report.v1`. Service payload
forwarding remains unavailable.
- C17Z21 offsite control-plane bootstrap relay and Windows updater foundation
are implemented and docker-test/runtime-proven: backend exposes
`/mesh/v1/health` through the admin/nginx control-plane origin and issues
control-plane-only bootstrap rendezvous leases for outbound-only nodes using
their reported public control-plane URL. Remote Windows node
`ifcm-rufms-s-mo1cr` resolved 3/3 peers to `relay_ready` through
`http://94.141.118.222:19191`, while service/RDP/VPN payload forwarding
remains disabled. Release `0.1.3` is published for Docker and Windows
`windows_service` artifacts, and `install-windows` now installs a
per-node Scheduled Task updater for future Windows node-agent updates.
- C17Z22 updater observability and Windows host-agent self-update staging are
implemented and test-proven: `rap-host-agent` reports `phase=plan`,
`status=noop` for already-current/no-op plans, update state is scoped per
product so `rap-node-agent` and `rap-host-agent` do not overwrite each
other's current version, and the Windows updater wrapper runs short
one-shot cycles that can apply staged `rap-host-agent.exe.next` before the
next update check. Release `rap-host-agent 0.1.3` is published for
`linux_binary` and `windows_binary`; Docker updater containers on
`test-1/2/3` report no-op plans.
- Installation Authority foundation is implemented: production requires strict
Product Root public key config, first-owner bootstrap uses signed Ed25519
activation manifests, `installation_authority` and signed
`platform_role_grants` are persisted, and strict platform-admin checks ignore
direct `users.platform_role` database edits without a valid signed grant.
Web-admin exposes installation status/first-owner bootstrap, and
`scripts/installation/product-root-tool.go` generates keys/manifests for
offline product-root operations.
- Cluster Authority and node enrollment bootstrap are docker-test lifecycle
smoke-proven in run `dev-bootstrap-20260428-201430`: a fresh dev install
bootstrapped the first owner, created a cluster, issued a signed join token,
accepted real `rap-node-agent` enrollment, owner-approved the join request,
agent-polled signed bootstrap, persisted cluster authority pin, heartbeated,
and verified signed `c17z18.synthetic.v1` Control Plane config. Production
service payload forwarding remains unavailable.
- Migration `000021_cluster_authority_keys` drops/recreates
`cluster_admin_summaries` because fresh replay proved PostgreSQL cannot
change that view layout via `CREATE OR REPLACE VIEW`.
- `rap-node-agent` desired-workload polling/status reporting is gated by
`RAP_WORKLOAD_SUPERVISION_ENABLED=false` by default while service runtime
supervision remains a stub.
- C18 VPN/IP tunnel service target design is completed as documentation only.
- C18A VPN/IP tunnel control-plane data model foundation is implemented and
backend-test-proven.
- C18B VPN/IP tunnel lease/fencing hardening is implemented and
backend-test-proven.
- C18C VPN/IP tunnel node-agent desired-state consumption/reporting is
implemented and backend-test-proven.
- No next platform-core implementation step is automatically authorized after
C17Z20. The next mesh layer should stay limited to route-health feedback
refresh dampening/no-change cooldown unless the user explicitly chooses
another staged task.
- Latest RDP performance reference image:
`rap-rdp-worker:rdp-perf6-dirty-region`
- Stage 5.2 file-download runtime artifacts remain preserved for when RDP work
resumes, but they are not the active next task.
- Do not use `docker.cin.su` for this project unless explicitly requested for a separate one-off check.
### Backend
- Go
- PostgreSQL = source of truth
- Redis = live coordination / routing only
- REST for control plane
- WebSocket for live session channel
### Worker
- C++ worker
- FreeRDP integration
- worker runtime hides FreeRDP details from backend
- The C++ worker remains the primary RDP runtime.
- Target RDP performance direction: `docs/architecture/RDP_SERVICE_CPP_PERFORMANCE_TARGET.md`.
- The RDP performance rewrite scope is limited to C++ RDP service adapter
internals. It must not redesign backend control plane, cluster transport,
organizations, leases, or session lifecycle.
- The C# RDP service skeleton is inactive research scaffolding and is not the
current runtime direction.
- Current RDP Adapter baseline: RDP-Perf-6 dirty-region direct binary rendering
is completed and smoke-proven on `docker-test`. RDP work is paused by product
decision; next active work is Fabric Core / cluster foundation.
- P3/P3.1 security-readiness foundation exists: production mode rejects
plaintext credential-like resource metadata, requires `secret_ref` for
RDP/VNC/SSH resources, and has an encrypted PostgreSQL-backed resource secret
storage/resolver MVP. P3.2 direct-worker TLS/PKI guard exists.
- P3.3 production-like test-stand smoke is complete on `docker-test`: backend
runs in `APP_ENV=production` with a test-only secret key file, a secret-backed
RDP resource starts real sessions through the resolver path, metadata/audit do
not contain plaintext credentials, and backend gateway fallback remains
available when direct worker WSS trust is `smoke_insecure`.
- P3.4 production direct-worker WSS trust model is documented in
`docs/architecture/PRODUCTION_DIRECT_WORKER_WSS_TRUST.md`; it defines
platform CA/public CA behavior, worker certificate SAN/identity requirements,
app-local Windows trust direction, rotation/revocation, and the future
`platform_ca` smoke plan. No RDP runtime behavior changed in P3.4.
- P3.5 app-local platform CA trust is implemented and runtime-proven on
`docker-test`: Windows client validates direct worker WSS with an app-local
platform CA bundle, keeps hostname/SAN validation enabled, selects
`direct_worker_wss` without insecure TLS bypass, and falls back to backend
gateway for unknown CA / smoke-only production cases.
- P3.6 stale Redis worker/live event idempotency is implemented and
runtime-proven: stale worker events for terminal PostgreSQL sessions are
ignored, backend restart survives stale Redis events, and terminal sessions
are not reopened.
- Stage 5.2 server-to-client file download core data path is runtime-proven:
direct worker WSS and backend gateway fallback both download text/binary
files from `RAP_Transfers\ToClient` with matching size/hash, and direct
policy blocking is proven for `disabled` and `client_to_server`. Lifecycle
blocking is also runtime-proven for detach, old-client takeover, and worker
failure. Runtime report:
`artifacts/stage5-2-file-download-runtime-report.md`.
- Stage 5.2 is not fully accepted yet. Remaining proof: Windows desktop UI
download path and regression matrix for rendering/input/clipboard/upload/
reconnect/takeover.
### Clients
- future native clients:
- Windows: native desktop client first
- Linux: native desktop client later
- web UI is admin/control plane, not the primary power-user client
## Final architecture direction
The long-term target architecture is documented in:
- `docs/architecture/SECURE_ACCESS_FABRIC_TARGET.md`
- `docs/architecture/CLUSTER_NODE_ADMIN_FOUNDATION.md`
- `docs/architecture/WEB_INGRESS_AND_ADMIN_UI_MODEL.md`
This document defines the target Secure Access Fabric architecture only. It is not the current implementation scope and must not be used as permission to start mesh, VPN, multi-cluster, updater, or realtime data-plane migration work without an explicit staged prompt.
`CLUSTER_NODE_ADMIN_FOUNDATION.md` defines the next platform-core planning
baseline for clusters, node enrollment, native node-agent identity, platform
admin console, multi-cluster administration, and future organization admin
visibility. It is a staged foundation document, not permission to implement
mesh packet routing or VPN runtime.
`WEB_INGRESS_AND_ADMIN_UI_MODEL.md` defines WEB as HTTP/HTTPS ingress and
Admin UI presentation only. Cluster configuration remains Control Plane
ownership through scoped APIs, PostgreSQL source-of-truth mutations, and audit.
Dynamic pages must be safe schema-driven projections and must not embed
internal topology, peer caches, route caches, secrets, raw credentials, or
arbitrary executable code.
Admin endpoint placement is explicit. Fabric Storage / Config Storage nodes do
not automatically host or move the cluster panel. Platform Owner Console
remains global platform-owner scope. Cluster Admin Endpoint requires explicit
admin/web ingress role assignment, cluster health/trust readiness, and Control
Plane authorization. Organization Admin Panel remains a tenant-safe projection.
The final platform must support:
1. Multi-tenancy / Organizations
- platform has many organizations
- each organization has isolated users, groups, resources, policies, audit, connectors
- users may belong to multiple organizations
- organization admins only see their organization
- platform admins see platform scope
2. Identity federation
- local users
- LDAP / Active Directory
- OIDC
- future extensibility for more identity sources
- access mappings based on external groups / claims
3. Cluster of nodes
- no mandatory single central node
- many nodes across many sites
- nodes can be platform-managed or customer-managed
- customer-managed nodes are sandboxed cluster participants, not full cluster owners
4. Node agent
- small stable always-running agent on every node
- supervises services
- downloads updates
- verifies signed artifacts
- can rollback to previous version
- can restart crashed services
- can work on thin or thick nodes
5. Service-based node model
Each node is not monolithic.
A node has:
- capabilities: what it can do physically/technically
- enabled services: what it is allowed/assigned to do
Possible services include:
- ingress-gateway
- mesh-router
- relay
- connector-host
- vpn-adapter
- session-worker
- media-relay
- file-relay
- update-cache
- config-replica
- audit-sink
- metrics-exporter
6. Cluster mesh and routing
- encrypted inter-node communication
- dynamic topology
- no need for full mesh
- multi-hop routing allowed
- route failover
- client failover between ingress nodes
- connector failover between nodes
7. Split-brain prevention
- quorum-based cluster behavior
- minority partition must not become a second authoritative cluster
- degraded / recovery / isolated modes
- manual recovery / promote decision by platform recovery admin
8. Connector / VPN layer
- connectors are reusable network access methods
- one connector may be used by multiple resources
- connector placement and failover are controlled by policy
- nodes may be allowed or disallowed to host connectors
- direct access, VPN, relay and future egress modes must fit this model
9. Future exit mode
- split tunnel
- full tunnel
- internet access through cluster
- not first implementation priority
## Non-negotiable design rules
- Do not rewrite proven session lifecycle carelessly.
- Do not turn Redis into a source of truth.
- Do not make certificate-ignore a global worker setting.
- Do not make customer-managed nodes platform-wide trusted by default.
- Do not create a separate cluster per organization.
- Do not assume a single permanently reachable central node.
- Do not rely on “secret protocol with no docs” as security.
- Security must come from crypto, auth, isolation, policy and observability.
- Prefer incremental evolution from current proven system.
- Do not collapse platform control plane and data plane into one vague layer.
## Implementation strategy
The codebase must evolve in phases.
Current implementation focus remains:
- RDP work is paused by product decision
- preserve the accepted RDP Adapter baseline and Stage 5.x file-transfer work
- do not delete or rewrite the current RDP MVP while platform-core work starts
- C1-C9 platform-core foundations are implemented and verified: clusters,
node enrollment, node-agent scaffold, platform admin console, workload
supervision contract, mesh control-plane prep, mesh skeleton, multi-cluster
hardening, and organization admin foundation
- C10 Fabric Core configuration distribution design is completed
- C11 signed scoped cluster snapshot model is completed
- C12 node local state store is completed
- C13 Fabric Storage / Config Storage service foundation is completed
- C14 peer directory and cache model is completed
- C15 Fabric Routing Engine skeleton is completed
- C16 secure node-to-node channel lifecycle is completed
- C17 mesh routing runtime implementation plan is completed
- C17A synthetic mesh runtime skeleton is implemented and test-proven with
synthetic fabric messages only, no RDP/VPN/production service traffic
- C17B route health and failover probes are implemented and test-proven with
synthetic traffic only, no RDP/VPN/production service traffic
- C17C relay semantic hardening is implemented and test-proven with synthetic
channel classes only, no RDP/VPN/production service traffic
- C17D non-production test-service path is implemented and test-proven with
bounded `synthetic.echo` traffic only, no RDP/VPN/production service traffic
- C17E live node-to-node synthetic HTTP transport is implemented and
smoke-proven with synthetic traffic only
- C17F scoped synthetic route config loading and route-health reporting is
implemented and smoke-proven with synthetic traffic only
- C17G Control Plane scoped synthetic config read/consume is implemented and
test-proven with synthetic traffic only
- C17H deployed multi-agent synthetic config smoke is implemented and
runtime-proven on `docker-test` with synthetic traffic only
- C17I production forwarding gate foundation is implemented and test-proven;
production forwarding remains unavailable
- C17J production envelope contract validation is implemented and test-proven;
production forwarding remains unavailable
- C17K production envelope observation is implemented and test-proven;
production forwarding remains unavailable
- C17L bounded production observation sink is implemented and test-proven;
production forwarding remains unavailable
- C17M production observation sink wiring is implemented and test-proven;
production forwarding remains unavailable
- C17N production observation sink metrics are implemented and test-proven;
production forwarding remains unavailable
- C17O production observation sink local metrics logging is implemented and
test-proven; production forwarding remains unavailable
- C17P production observation sink change-driven metrics logging is implemented
and test-proven; production forwarding remains unavailable
- C17Q production forwarding gate/runtime log boundary is implemented and
test-proven; production forwarding remains unavailable
- C17R production observation sink capacity guard is implemented and
test-proven; production forwarding remains unavailable
- C17S production observation panic fail-closed hardening is implemented and
test-proven; production forwarding remains unavailable
- C17T production envelope payload boundary is implemented and test-proven;
production forwarding remains unavailable
- C17U production envelope created-at skew boundary is implemented and
test-proven; production forwarding remains unavailable
- C17V peer endpoint candidate model and NAT/connectivity hints are
implemented and test-proven; production forwarding remains unavailable
- C17W peer endpoint candidate scoring model is implemented and test-proven;
production forwarding remains unavailable
- C17X health-aware endpoint candidate scoring overlay is implemented and
test-proven; production forwarding remains unavailable
- C17Y Platform Owner synthetic mesh visibility is implemented and
build/test-proven; production forwarding remains unavailable
- C17Z production fabric-control direct forwarding is implemented and
test-proven; production service traffic remains unavailable
- C17Z1 production fabric-control multi-hop route-path forwarding is
implemented and test-proven; production service traffic remains unavailable
- C17Z2 production fabric-control forwarding observability is implemented and
test-proven; production service traffic remains unavailable
- C17Z3 production fabric-control route-config boundary is implemented and
test-proven; production service traffic remains unavailable
- C17Z4 scoped peer directory/recovery seed boundary is implemented and
test/build-proven; production service traffic remains unavailable
- C17Z5 node-agent peer cache runtime boundary is implemented and test-proven;
production service traffic remains unavailable
- C17Z6 dynamic endpoint reporting boundary is implemented and test-proven;
production service traffic remains unavailable
- C17Z7 private/corporate endpoint candidate boundary is implemented and
test-proven; production service traffic remains unavailable
- C17Z8 peer connection state machine boundary is implemented and test-proven;
production service traffic remains unavailable
- C17Z9 peer recovery planner boundary is implemented and test-proven;
production service traffic remains unavailable
- C17Z10 peer connection intent planner boundary is implemented and
test-proven; production service traffic remains unavailable
- C17Z11 peer connection manager runtime boundary is implemented and
test-proven; production service traffic remains unavailable
- C17Z12 rendezvous/relay control-plane contract is implemented and
docker-test-runtime-proven; production service traffic remains unavailable
- C17Z13 rendezvous lease telemetry is implemented and
docker-test-runtime-proven; production service traffic remains unavailable
- C17Z14 rendezvous lease refresh contract is implemented and
docker-test-runtime-proven; production service traffic remains unavailable
- C17Z15 backend relay replacement policy is implemented and
docker-test-runtime-proven; production service traffic remains unavailable
- C17Z16 route/path decision artifact is implemented and
docker-test-runtime-proven; production service traffic remains unavailable
- C17Z17 node-side route generation tracker is implemented and
docker-test-runtime-proven; production service traffic remains unavailable
- C17Z18 synthetic route-health effective path runtime is implemented and
docker-test-runtime-proven; production service traffic remains unavailable
- C17Z19 synthetic route-health feedback scoring is implemented and
docker-test-runtime-proven; production service traffic remains unavailable
- C17Z20 node-side route-health feedback refresh is implemented and
docker-test-runtime-proven; production service traffic remains unavailable
- C17Z21 node installation/update control-plane is implemented and
docker-test-runtime-proven for Docker nodes; production service traffic
remains unavailable
- C17Z22 Windows host-agent install/update supervision is implemented and
runtime-proven on the remote Windows node; production service traffic remains
unavailable
- C17Z23 update observability is implemented in backend/admin UI: per-node
updater status history is exposed and deployed on docker-test, so node-agent
and host-agent update activity can be audited from node details
- C17Z24 combined updater reporting is implemented and docker-test-proven:
Linux/Docker `rap-host-agent update-loop` now also polls/reports
`rap-host-agent` status, release `0.1.4` is published for node-agent and
host-agent artifacts, and docker-test nodes `test-1/2/3` auto-updated to
node-agent `0.1.4` while reporting host-agent `0.1.4` no-op status.
- C17Z25 Windows updater repair visibility is implemented in admin UI: node
details / Updates now shows a ready CMD repair command for existing Windows
nodes using `http://vpn.cin.su:19191/api/v1`, `--replace`, and
`--auto-update-current-version 0.0.0` so a stale updater wrapper can be
recreated without a new join token.
- C17Z26 updater fleet visibility is implemented in admin UI: the node list now
shows per-node updater status based on latest `rap-node-agent` and
`rap-host-agent` reports, explicitly flagging missing host-agent reports,
stale update reports, or update errors before opening node details.
- C17Z27 backend version-state projection is implemented and deployed on
docker-test: node list responses now derive `version_state` from active
`rap-node-agent` desired policy plus latest update report. Docker/Linux nodes
on `0.1.4` show `current`; the remote Windows node still on `0.1.3` shows
`outdated` while remaining heartbeat-healthy.
- C17Z28 Windows updater loop hardening is implemented and partially
docker-test-proven via release `0.1.5`: Windows host-agent updater scripts now
run combined `update-loop --max-runs 1`, and Windows `update-loop` also
polls/applies `rap-host-agent` updates. Release `0.1.5` artifacts are
published for Docker/Linux and Windows; docker-test nodes `test-1/2/3`
updated to `rap-node-agent 0.1.5`. Existing remote Windows nodes with stale
pre-0.1.5 updater wrapper still require one repair command from admin UI to
replace their local wrapper, after which automatic polling should continue.
- Admin UI now marks missing host-agent updater reports as `repair updater` in
the node list and explains in node details / Updates when to run the Windows
repair command. The command uses the external fabric control endpoint and does
not require a join token for already enrolled Windows nodes.
- Admin UI node details / Updates also provides a ready downloadable
`rap-repair-updater-<node>.cmd` plus copy-command action for Windows repair,
reducing operator copy/paste mistakes on remote Windows hosts.
- Windows repair command generation was hardened after the first remote repair:
foreground `update-loop` now includes explicit `--node-id`, copies any staged
`rap-host-agent.exe.next` over the main host-agent binary after the one-shot
loop exits, deletes the staged file, and runs the updater scheduled task.
The node list now distinguishes `host-agent staged` from generic stale/error.
- C17Z29 Windows persistent updater repair is implemented in `rap-host-agent`
release `0.1.6`: `install-windows` accepts `--node-id` and writes that node
id into the persistent Windows updater wrapper so Scheduled Task polling no
longer depends on finding `identity.json` in the expected state directory.
Docker-test nodes `test-1/2/3` updated to `0.1.6`; existing Windows and
off-host Docker nodes still need their local updater wrappers to pick up the
0.1.6 host-agent repair path.
- C17Z30 operator-configured public mesh endpoints are implemented and
docker-test-deployed: desired `fabric-listener.advertise_endpoint` is now
projected into peer endpoint candidates for other nodes and preferred over
auto-discovered private heartbeat endpoints. `home-1`
(`8ad04829-cd30-4290-913d-1ce5c7ef7bb3`) is configured with
`listen_addr=0.0.0.0:19131`, `advertise_endpoint=quic://94.141.118.222:19199`,
`connectivity_mode=direct`, `nat_type=port_restricted`, `region=home`.
`test-1` synthetic config now receives `home-1` peer endpoint
`quic://94.141.118.222:19199`; internal `192.168.200.85:19131` responds on
the fabric listener while external `94.141.118.222:19199` still needs UDP
forwarding, so router/firewall correction remains outside the platform.
- C17Z31 offsite bootstrap peer selection is implemented and docker-test
deployed: operator-configured public/direct desired fabric-listener endpoints
are kept in core-mesh bootstrap even after the default warm-peer target is
reached. This fixes the case where remote Windows node
`ifcm-rufms-s-mo1cr` received only `test-*` warm peers and no `home-1`.
Its synthetic config now includes `home-1` endpoint
`quic://94.141.118.222:19199` and candidates ordered as operator public,
heartbeat advertised public, then private LAN converted to relay-required for
offsite. External UDP reachability to `94.141.118.222:19199` still needs
verification while internal `192.168.200.85:19131` succeeds, so the next
network validation is an offsite QUIC/UDP probe against port `19199`.
- C17Z32 native Ubuntu/Linux service install is implemented and docker-test
deployed: backend exposes `/node-agents/linux-install-profile`, host-agent
supports `install-linux`, installs `rap-node-agent` under
`/opt/rap/<node>`, state under `/var/lib/rap/nodes/<node>`, config under
`/etc/rap/<node>`, creates `rap-node-agent-<node>.service`, and creates a
persistent `rap-host-agent-updater-<node>.service` for automatic node-agent
and host-agent updates. Release `0.1.7` is published for `rap-node-agent`
(`linux_binary`, `windows_service`) and `rap-host-agent`
(`linux_binary`, `windows_binary`). Admin UI now has an `Ubuntu service`
install profile and generates profile-based `install-linux` commands.
A one-use token for `vps-ubuntu-1` is active until 2026-05-02T08:41:41Z:
`rap_join_a23Xhz63YstshWUBAPGPz5fzQ8YpHDP05RXaaYa4DoA`; scope roles are
`core-mesh` and `relay-node`, fabric control endpoint is
`http://vpn.cin.su:19191/api/v1`, artifact endpoint is
`http://vpn.cin.su:19191/downloads`.
- Admin UI and docs now cover the full Windows updater operational workflow:
node details shows an `Updater health` summary, generated repair CMD prints
scheduled-task and binary diagnostics before/after repair, applies staged
host-agent binaries, restarts the updater task, and README documents first
install, repair without join-token, system-task/user-task behavior, staged
host-agent recovery, and reboot/autostart verification.
- Cluster Authority plus node enrollment bootstrap polling are docker-test
lifecycle-smoke-proven; fresh install migration replay is fixed for
`cluster_admin_summaries`
- C18 VPN/IP tunnel service target design is completed as documentation only
- C18A VPN/IP tunnel control-plane data model foundation is implemented and
backend-test-proven
- C18B VPN/IP tunnel lease/fencing hardening is implemented and
backend-test-proven
- C18C VPN/IP tunnel node-agent desired-state consumption/reporting is
implemented and backend-test-proven
- Version Storage / Update Repository is documented as a future Fabric Core
service for signed release manifests, OS/arch artifacts,
stable/current/candidate channels, update-cache mirroring, node-agent
update supervision, rollback, and explicit data-structure migration bundles.
Runtime updater behavior is partially implemented for the current Docker and
Windows node-agent/host-agent paths; broader staged rollout policy and
service payload forwarding remain separate work.
- no next platform-core implementation step is automatically authorized after
C17Z20; choose the next narrow staged prompt explicitly before continuing
- preserve the proven RDP lifecycle behavior
- keep the current backend gateway available as the active/fallback implementation path
- accepted VPN data-plane target: the phone/client connects only to an
available entry node; the entry node uses the existing mesh/fabric route to a
selected exit node/pool, and the exit node handles LAN/internet egress. Nodes
behind NAT may participate when they can maintain outbound mesh/control
sessions. Backend packet relay must remain a compatibility/fallback path, not
the desired steady-state path.
- C18D VPN-over-fabric foundation is implemented and docker-test-started:
VPN client profiles include `vpn_fabric_route` with entry pool, exit pool,
selected entry/exit, preferred `fabric_mesh` data-plane, and
`backend_relay` fallback. Node-agent `0.2.39` adds a dedicated production
`vpn_packet` channel (`vpn.packet_batch`, 256 KiB batch limit), destination
delivery hook, `vpnruntime.FabricPacketTransport`, and
`vpn_fabric_packet_transport` heartbeat capability. `home-1` auto-updated to
`0.2.39`; other nodes have automatic desired policy `0.2.39` and should move
as their updater loops pick it up. Live Android VPN traffic still uses backend
relay until entry-node client ingress is wired to the fabric transport.
- C18E VPN-over-fabric route contract is backend-deployed on docker-test as
`rap-backend:test-vpn-fabric-route-0.2.41`: when a VPN client profile selects
different entry and exit nodes, backend now ensures two active
`mesh_route_intents` with service_class `vpn_packets` and allowed channel
`vpn_packet`. The live HOME profile currently selects `usa-los-1` as entry
and `home-1` as exit when `entry_node_id=b829ffde-...` is requested, and the
synthetic config for both nodes includes the two `vpn_packet` routes. Existing
fallback remains `backend_relay`; production forwarding gate is still disabled
on old/live remote nodes until their runtime is explicitly updated/enabled.
- External/offsite updater gap found and fixed for version `0.2.40`: native
`rap-node-agent` binaries for `linux_binary`, `linux_service`, and
`windows_service` plus matching `rap-host-agent` binaries are copied under
`/downloads` and registered in channel `dev-external`. Update plans for
`usa-los-1` (`linux_binary`) and `ifcm-rufms-s-mo1cr` (`windows_service`) now
return `action=update`, `target_version=0.2.40` instead of
`no_matching_artifact`.
- C18F production-forwarding gate work is partially live: backend
`rap-backend:test-vpn-fabric-route-0.2.42` signs node synthetic configs with
`production_forwarding=true` / `control_plane_only=false` when the node's
desired `fabric-listener` workload has `production_forwarding_enabled=true`.
`home-1` and `usa-los-1` desired fabric-listener configs have this flag enabled.
Node-agent `0.2.44` accepts signed production-forwarding mesh configs and
host-agent `0.2.44` fixes Docker updater behavior so synthetic mesh runtime is
not disabled on Docker updates. Runtime status: `usa-los-1` reports
`mesh_production_forwarding=true`; `home-1` reports `0.2.44` and synthetic
runtime enabled, but its listener report is still `disabled/listen_addr_empty`,
so `home-1` is not yet a usable production fabric endpoint. Next action is to
repair why `home-1` is not applying the signed fabric-listener config
(`listen_addr=0.0.0.0:19131`) after Docker updater restart.
- C18G VPN-over-fabric runtime path is live-tested on docker-test. Backend is
deployed as `rap-backend:test-vpn-fabric-route-0.2.43`; VPN route intents now
allow both `vpn_packet` data and `fabric_control` health probes. Node-agent
`0.2.47` fixes initial production VPN packet envelope hop addressing and
reports the matching version. `home-1` and `usa-los-1` both report
`0.2.47`, healthy, listener `0.0.0.0:19131`, and
`mesh_production_forwarding=true`. Live route health is reachable in both
directions (`usa-los-1 -> home-1` around 200 ms, `home-1 -> usa-los-1`
around 200-415 ms). A direct live POST to
`http://195.123.240.88:19131/api/v1/clusters/.../vpn-connections/.../tunnel/client/packets`
returns `202 Accepted`, proving entry-node VPN packet ingress can forward
over fabric to the home exit. The HOME VPN placement policy now has entry
pool `[usa-los-1, home-1]` and exit `home-1`; client profile with preferred
`usa-los-1` selects `usa-los-1 -> home-1`.
- C18H live VPN triage on 2026-05-04: `home-1` and `usa-los-1` report
node-agent `0.2.48`, healthy heartbeats, active HOME VPN assignment on
`home-1`, and `packet_forwarding=true` / `runtime_available=true`. Manual
packet tests through the USA entry proved the path
Android-style packet -> `usa-los-1` -> fabric -> `home-1` -> LAN/DNS ->
fabric -> `usa-los-1` -> client can return ICMP and DNS replies. The remaining
live symptom was the phone not sending fresh packets to the current entry
after the backend relay queue was cleared. Android VPN app `0.2.59` was built
and published to `/downloads/rap-android-rdp-vpn-latest-debug.apk`; it
normalizes old saved backend URLs (`vpn.cin.su:19191`,
`94.141.118.222:19191`, `192.168.200.61:18080`, etc.) to the current USA
entry backend `http://195.123.240.88:19131/api/v1` and shows app version,
device id, and connection id in the header for live log correlation.
- C18I fabric service-channel foundation is live on 2026-05-07. Backend,
node-agent, and Android VPN release `0.2.159` are published. VPN profiles now
include a signed `rap.fabric_service_channel_lease.v1` with
`entry_direct_http_v1` packet and WebSocket templates. Android consumes this
lease and sends service-channel headers. The `usa-los-1` entry endpoint
validates the cluster-authority signed lease payload and token hash; a live
smoke through `http://195.123.240.88:19131/.../fabric/service-channels/...`
succeeded with a valid lease and rejected a bad token with `403`. Current HOME
profile selects `usa-los-1` as entry and `home-1` as exit; both nodes report
`0.2.159`. Docker-test nodes `test-1`, `test-2`, and `test-3` also report
`0.2.159`. `ifcm-rufms-s-mo1cr` is still on `0.2.119`; it has staged the
host-agent `0.2.159` update and should finish on the next Windows updater
loop/restart.
- C18J fabric service-channel runtime route-manager slice is live on
2026-05-07 as node/host-agent `0.2.162`. The entry-node
`FabricClientPacketIngress` now preserves its runtime object across synthetic
config refreshes, so heartbeat telemetry reports the same ingress object that
serves HTTP/WebSocket service-channel traffic. It tracks send/receive batches,
route attempts/failures, selected route/next hop, local-gateway fallback, and
inbox queue depths. `SendClientPacketBatch` now retries all valid
`vpn_packet` route candidates with sticky preference before backend relay is
allowed as degraded compatibility fallback. Release `0.2.161` was superseded
because its Docker tar was rebuilt after registration; `0.2.162` is the
clean published release with matching artifact hashes. Docker-test
`test-1/2/3`, `usa-los-1`, and `ifcm-rufms-s-mo1cr` report `0.2.162`;
`home-1` is healthy and still on `0.2.161` awaiting its next updater loop.
Live smoke through `http://195.123.240.88:19131/.../fabric/service-channels`
returned `202` and `usa-los-1` telemetry then showed route attempts,
one route failure, and selected next hop `home-1`, proving live ingress
telemetry and alternate-route retry are active.
- C18K service-neutral flow/channel scheduler is live on 2026-05-07 as
node/host-agent `0.2.163`. The VPN proving service still carries universal
IP packets and does not route by application protocol, but the entry runtime
now hashes packets by IP 5-tuple, or packet hash for non-IP/invalid packets,
into 32 logical `flow-*` channels. Each channel has bounded queue accounting,
high-watermark/backpressure/dropped telemetry, and batches are fanned out per
logical channel before being sent through the same fabric route-manager. Live
smoke against `usa-los-1` posted two different IP flows through the signed
service-channel endpoint and heartbeat reported `send_packets=2`,
`send_flow_batches=2`, `flow_scheduler.channel_count=2`, `enqueued=2`,
`dequeued=2`, `dropped=0`, with queue depths for `flow-12` and `flow-14`.
All six current cluster nodes (`home-1`, `usa-los-1`, `ifcm-rufms-s-mo1cr`,
`test-1`, `test-2`, `test-3`) report node-agent `0.2.163` and healthy.
- C18L active flow scheduling telemetry is live on 2026-05-07 as
node/host-agent `0.2.164`. Each `flow-*` channel now keeps route memory,
served count, last served time, last route/next hop, failed-route marker,
consecutive failures, stall count, last send duration, and explicit
`route_rebuild_recommended` / `degraded_fallback_recommended` signals. The
scheduler drains non-stalled channels first, prefers less-served/older
channels, avoids a channel's last failed route on the next send, and only
marks degraded fallback after repeated failures. Live smoke against
`usa-los-1` posted two IP flows through the signed service-channel endpoint:
heartbeat reported schema `c18l.fabric_service_channel_runtime_report.v1`,
`send_packets=2`, `send_flow_batches=2`, `flow_scheduler.channel_count=2`,
`dropped=0`, `backpressure=false`, `last_next_hop=home-1`, and per-flow
`served=1`. One stale candidate route failed and was bypassed before the
successful route to `home-1`. All six current cluster nodes (`home-1`,
`usa-los-1`, `ifcm-rufms-s-mo1cr`, `test-1`, `test-2`, `test-3`) report
node-agent `0.2.164` and healthy.
- C18M Control Plane service-channel feedback is live on 2026-05-07. Backend
image `rap-backend:fabric-service-channel-0.2.165` is deployed on
docker-test, and node/host-agent `0.2.165` artifacts are published. When
issuing `rap.fabric_service_channel_lease.v1`, backend now reads fresh
entry-node heartbeat metadata
`fabric_service_channel_runtime_report.ingress.flow_scheduler.channel_stats`,
builds per-route service-channel feedback, boosts recently successful routes,
penalizes recent failures, and fences routes that report
`route_rebuild_recommended`, `degraded_fallback_recommended`, or repeated
consecutive failures. Fenced routes are not selected as primary or alternate;
if all selected entry/exit routes are fenced, the lease uses explicit
degraded compat fallback with reason
`fabric_routes_fenced_by_service_channel_feedback`. Live smoke created two
short-lived `test-1 -> test-2` route intents, injected a fresh
service-channel flow feedback heartbeat marking the higher-priority route as
rebuild-required, and the next lease selected the lower-priority healthy
route with score reason `service_channel_recent_success`; the bad route was
not offered as an alternate. Current node rollout: `home-1`, `usa-los-1`,
`test-1`, `test-2`, and `test-3` report `0.2.165`; Windows `ifcm-rufms-s-mo1cr`
remains healthy on `0.2.164` and should move on its next updater cycle.
- C18N durable service-channel route feedback is live on 2026-05-07. Backend
image `rap-backend:fabric-service-channel-0.2.166` is deployed on
docker-test with migration `000025_fabric_service_channel_route_feedback`.
Heartbeats now persist service-neutral route observations into
`fabric_service_channel_route_feedback_observations` and maintain an
expiring latest view in `fabric_service_channel_route_feedback_latest`.
Lease selection reads this durable latest feedback before falling back to
in-memory heartbeat parsing, so route fencing survives backend restarts and
stale heartbeat replacement. Node/host-agent `0.2.166` artifacts and Docker
image are published, update policies target `0.2.166`, and `test-1/2/3`,
`usa-los-1`, and `ifcm-rufms-s-mo1cr` report `0.2.166`; `home-1` is healthy
but still on `0.2.165` until its next updater cycle. Live smoke created two
short-lived `test-1 -> test-2` routes, persisted a fenced observation for the
higher-priority bad route and a healthy observation for the lower-priority
route, restarted backend, and the next lease selected the healthy route with
`service_channel_recent_success`.
- C18O service-channel feedback diagnostics and synthetic route avoidance are
live on 2026-05-07. Backend image
`rap-backend:fabric-service-channel-0.2.167` is deployed on docker-test and
web-admin is rebuilt/published. Admin/API now expose fresh durable feedback
through `GET /clusters/{clusterID}/fabric/service-channels/route-feedback`,
and each node synthetic config includes
`service_channel_route_feedback` with healthy/degraded/fenced counts and
observations. Synthetic config generation skips routes fenced by the local
node's durable service-channel feedback, so nodes stop receiving known-bad
route configs while the feedback is active. Live smoke created fresh
`test-1 -> test-2` routes, persisted `fenced` feedback for the higher-priority
route and `healthy` feedback for the lower-priority route, confirmed the API
returned both observations, and confirmed `test-1` synthetic config excluded
the bad route while keeping the healthy route.
- C18P proactive service-channel replacement decisions are live on 2026-05-07.
Backend image `rap-backend:fabric-service-channel-0.2.168` is deployed on
docker-test and web-admin is rebuilt/published. When synthetic config
generation withholds a route fenced by local service-channel feedback, it now
records a `route_path_decisions` item with
`decision_source=service_channel_feedback_replacement`,
`replacement_route_id`, effective replacement hops, and score reasons. If no
alternate exists, the decision source becomes
`service_channel_feedback_no_alternate` with visible score reason
`no_unfenced_alternate_route`. Live smoke created fresh `test-1 -> test-2`
bad/good routes, fenced the bad route, disabled older smoke routes, and
confirmed `test-1` synthetic config excluded the bad route, kept the good
route, and reported replacement from bad route to good route.
- C18Q service-channel replacement dampening is live on 2026-05-07. Backend
image `rap-backend:fabric-service-channel-0.2.169`, node/host-agent
`0.2.169` artifacts, Docker image, update policies, and web-admin are
published on docker-test. Replacement selection now gives a large stable
preference to routes with active healthy durable feedback, adding
`active_healthy_feedback_dampening_window` to score reasons, so a recently
successful replacement wins over a higher-priority but unproven route until
the feedback window expires or a newer fenced/healthy observation changes the
state. `RoutePathDecisionReport` now includes `degraded_decision_count` for
`service_channel_feedback_no_alternate`, and node-agent heartbeat reports
include `replacement_route_id` and degraded counts after upgrade. Live smoke
fenced a high-priority bad `test-1 -> test-2` route, supplied healthy feedback
for a low-priority route, also created a higher-priority unproven route, and
confirmed replacement selected the healthy route because of the dampening
window.
- C18Q hotfix `0.2.171` is published on 2026-05-07. Node-agent now includes
`service_channel_route_feedback` in the signed synthetic config model before
recalculating the authority payload hash. Without this, upgraded backend
configs were signed correctly but `0.2.169` agents rejected them with
`control-plane synthetic mesh config authority payload hash mismatch`.
Regression coverage verifies a signed config containing durable
service-channel feedback. Artifacts, Docker image, latest download aliases,
and update policies were moved to `0.2.171`; `test-1/2/3` are running
`0.2.171` and loading `source=control_plane` again. The release includes
`linux_service`, Docker, Windows service, and binary artifacts so service
installs can auto-update. Old C18 smoke/expired route intents were disabled
after validation.
- C18R fleet diagnostics/operator action slice is live on 2026-05-07. Backend
image `rap-backend:fabric-service-channel-0.2.172` adds route feedback
filters (`route_id`, `feedback_status`, `include_expired`) and
`POST /clusters/{clusterID}/fabric/service-channels/route-feedback/expire`.
The expire action is cluster-mutable/admin gated and marks latest feedback
expired without deleting historical observations. Web-admin / Fabric Links
now shows a cluster-level service-channel feedback panel with fenced,
degraded, healthy and no-alternate counts, replacement/no-alternate decisions,
and an operator `expire` action for stale non-healthy feedback.
- C18S service-channel feedback churn guardrails are implemented on
2026-05-07. Operator expire now records
`fabric.service_channel_route_feedback.expired` audit events, returns and
persists a short `operator_retry_cooldown_until`, and route generation adds
`service_channel_route_retry_after_operator_expire` when a manually expired
route is being retried. During that cooldown, repeated non-healthy feedback
from the same reporter/route/service is suppressed as
`operator_retry_cooldown` instead of immediately fencing the route again.
Web-admin shows the retry/cooldown state in Fabric Links.
- C18T automatic rebuild decision contract is implemented on 2026-05-07.
`RoutePathDecision` now carries `rebuild_request_id`, `rebuild_status`,
`rebuild_reason`, and `rebuild_attempt`. When fenced service-channel feedback
keeps failing outside manual retry cooldown, Control Plane records a bounded
rebuild request. If an unfenced alternate exists, the decision is marked
`rebuild_status=applied`; if not, it is
`pending_degraded_fallback` and leases expose backend relay with reason
`fabric_route_rebuild_pending_backend_relay`. Web-admin shows rebuild counts,
status, and attempts in Fabric Links. A live smoke on docker-test created
short-lived `test-1 -> test-2` bad/good routes, reported fenced feedback for
the bad route and healthy feedback for the good route, and confirmed scoped
synthetic config returned `service_channel_feedback_replacement` with
`rebuild_status=applied` and `rebuild_attempt=3`. Node/host-agent `0.2.175`
is published so agents preserve the new signed rebuild fields.
- C18U node-agent route-manager rebuild consumption is live on 2026-05-07.
Node-agent `0.2.176` now converts backend rebuild decisions into a
service-channel route-manager snapshot, counts rebuild requests/applies,
marks applied/pending-degraded routes as withdrawn, clears a withdrawn cached
selected route, and excludes withdrawn routes from new service-channel route
candidates. This keeps new flows from retrying a route that Control Plane has
already rebuilt away from. Unit coverage verifies a bad route is skipped in
favor of its replacement. Node/host-agent `0.2.176` artifacts, Docker image,
latest download aliases, release manifests, and node policies are published.
`test-1/2/3`, `usa-los-1`, and `ifcm-rufms-s-mo1cr` report `0.2.176`.
Backend `rap-backend:fabric-service-channel-0.2.176` is deployed with a
panel consistency fix: if a node reports the target version, stale failed
update status no longer overrides `version_state=current`.
- C18V route-manager churn telemetry is live on 2026-05-07. Node-agent
`0.2.177` adds `route_manager_transition` to the service-channel runtime
report with previous/current generation, transition status, decision counts,
withdrawn/restored route counts, pending-degraded fallback count, rebuild
applied count, and any cleared cached route. Tests cover applied rebuild
replacement, pending degraded fallback with no alternate, and restoration by
a fresh config so withdrawn routes do not become sticky local state. Artifacts,
Docker image, latest download aliases, release manifests, and node policies
are published. `test-1/2/3` run `0.2.177`; their heartbeat metadata exposes
`rap.fabric_service_channel_route_manager_transition.v1`.
- C18W live Control Plane/runtime verification is implemented and smoke-passed
on 2026-05-07. Script
`scripts/fabric/c18w-service-channel-route-manager-smoke.ps1` drives the
whole loop against docker-test API: creates temporary service-channel route
intents for `test-1 -> test-2`, injects fenced/healthy route feedback through
heartbeat, verifies scoped config emits `rebuild_status=applied`, waits for
node-agent heartbeat `route_manager_transition.status=applied_rebuild`,
expires the feedback, verifies the restored config has no rebuild decision,
and waits for `restored_by_new_config`. Result artifact:
`artifacts/c18w-service-channel-route-manager-smoke-result.json` with run
`c18w-20260507-173226`. During the smoke, operator expire exposed live pgx
parameter issues; backend `rap-backend:fabric-service-channel-0.2.179` is
deployed with safer UUID/text timestamp handling for feedback expire.
- C18X logical-channel isolation and bounded backpressure coverage is
implemented and smoke-passed on 2026-05-07. Node-agent/host-agent `0.2.180`
artifacts, Docker image, latest download aliases, release manifests, and
node policies are published. The key runtime fix is in
`FabricClientPacketIngress.routeCandidatesForChannel`: a channel with a local
failed-route avoid state no longer falls back to the global last selected
route, so one degraded logical flow cannot drag unrelated flows back onto the
failed path. Coverage proves independent logical-channel failover, bounded
same-channel backpressure/drop telemetry, and packet-flow hashing. Script
`scripts/fabric/c18x-service-channel-logical-channel-smoke.ps1` passes with
result artifact `artifacts/c18x-service-channel-logical-channel-smoke-result.json`
run `c18x-20260507-180647`. Test docker nodes `test-1/2/3` are running
`rap-node-agent:0.2.180`; backend remains
`rap-backend:fabric-service-channel-0.2.179`.
- C18Y route-intent lifecycle cleanup is implemented and smoke-passed on
2026-05-07. Backend `rap-backend:fabric-service-channel-0.2.181` is deployed
on docker-test, and web-admin Fabric Links now shows route-intent lifecycle
counts/table with operator `expire` and `disable` actions. Route intents are
enriched with `lifecycle_status`, `is_expired`, and `policy_expires_at`.
Node-scoped synthetic mesh config now filters out expired policy routes, so
stale smoke routes no longer get emitted to agents for route-health probing.
API actions are available at
`POST /clusters/{clusterID}/mesh/route-intents/{routeIntentID}/expire` and
`/disable`. Script `scripts/fabric/c18y-route-intent-lifecycle-smoke.ps1`
passed against docker-test API, result
`artifacts/c18y-route-intent-lifecycle-smoke-result.json` run
`c18y-20260507-192702`. During deploy, docker-test root disk was full from
build cache/images; `docker builder prune -af` and `docker image prune -f`
freed space before redeploy.
- C18Z bounded service-channel load coverage is implemented, published, and
smoke-passed on 2026-05-07. Node-agent/host-agent `0.2.181` artifacts,
Docker image `rap-node-agent:0.2.181`, latest download aliases, release
manifests, and update policies are published. `test-1/2/3` are restarted on
`rap-node-agent:0.2.181`; `usa-los-1` also reports `0.2.181`. The key runtime
fix is in `FabricFlowScheduler.Snapshot`: backpressure remains visible when
bounded drops occurred, even after the queue drains. Coverage proves
multi-channel rebuild away from a withdrawn primary route and per-channel
bounded drop/high-water telemetry. Script
`scripts/fabric/c18z-service-channel-load-smoke.ps1` passed against
docker-test API, result
`artifacts/c18z-service-channel-load-smoke-result.json` run
`c18z-20260507-194616`. Release artifacts were corrected after initial
publication to use backend-relative `/downloads/...` primary URLs plus
internal/external mirror URLs, so offsite nodes resolve downloads through
their own control-plane origin such as `http://vpn.cin.su:19191`. Current
caveat: `ifcm-rufms-s-mo1cr` and `home-1` remained `version_state=failed`
at the last check; their next update plan now points to reachable `0.2.181`
artifacts, but the local updater loop still needs to retry/report success.
- C18Z1 live service-channel ingress is implemented, published, and
smoke-passed on 2026-05-07. Node-agent/host-agent `0.2.182` artifacts,
Docker image `rap-node-agent:0.2.182`, release manifests, and update
policies are published. Backend `rap-backend:fabric-service-channel-0.2.182`
is deployed on docker-test. The runtime fix is a dynamic fabric listener
handler: synthetic config refreshes now update `/mesh/v1/forward`,
service-channel ingress, production routes, delivery inbox, and forward
transport without requiring a port/listener restart. Backend route-feedback
latest policy now prevents a fresh healthy heartbeat from immediately
overwriting active degraded/fenced feedback before TTL expiry, so rebuild
decisions survive long enough for nodes to apply them. Script
`scripts/fabric/c18z1-live-service-channel-ingress-smoke.ps1` posts signed
generic packet batches to the running `test-1` service-channel HTTP endpoint,
waits both entry and exit runtime configs, verifies exit inbox delivery,
injects route feedback, observes Control Plane rebuild, waits node
`applied_rebuild`, sends a second batch over the replacement route, and
expires both temporary route intents. Result:
`artifacts/c18z1-live-service-channel-ingress-smoke-result.json` run
`c18z1-20260507-203628`. All current nodes report `0.2.182/current` at the
last check.
- C18Z2 live service-channel sustained soak/failure smoke is implemented and
passed on 2026-05-07 without a new runtime release. Script
`scripts/fabric/c18z2-live-service-channel-soak-smoke.ps1` drives signed
generic packet batches through the running `test-1` service-channel HTTP
endpoint, keeps temporary primary/alternate `test-1 -> test-2` route intents
visible, restarts the exit-node container `rap_test_node_test_2`, waits for
the exit runtime to reload synthetic config, and verifies recovery batches
reach the exit fabric inbox after the restart. Result:
`artifacts/c18z2-live-service-channel-soak-smoke-result.json` run
`c18z2-20260507-205112`: warm batches `6/6`, during-restart batches `3/3`,
recovery batches `8/8`, exit inbox depth grew from post-restart baseline
`0` to `88`, drops `0`, and both temporary route intents expired.
- C18Z3 live service-channel entry/WebSocket/degraded-fallback smoke is
implemented, published, and passed on 2026-05-07. Node-agent/host-agent
`0.2.183` artifacts and Docker image `rap-node-agent:0.2.183` are published
to docker-test downloads; update policies for `test-1/2/3` are set to
`rolling` target `0.2.183`, and the test containers run that image. The
runtime fix makes the entry node honor the signed service-channel lease
authority: leases with `status=degraded_fallback` or
`primary_route.status=missing_route_intent` now force compat fallback instead
of reusing stale generic route candidates. The same fallback rule is applied
to HTTP and WebSocket packet ingress. Script
`scripts/fabric/c18z3-live-service-channel-entry-ws-fallback-smoke.ps1`
verifies signed HTTP warm batches, WebSocket ingress parity, entry-node
container restart while the lease exists, recovery batches over the same
lease, explicit degraded fallback for a no-route exit, and route-intent
expiry. Result:
`artifacts/c18z3-live-service-channel-entry-ws-fallback-smoke-result.json`
run `c18z3-20260507-211402`: warm `4/4`, WebSocket packets `8`, recovery
`4/4`, compat fallback queue `0 -> 8`, route failures `0`, and all checks
passed. During publication the first `0.2.183` Docker tar had a malformed
entrypoint and stale size/hash metadata; it was rebuilt, the latest tar alias
was replaced, and the release artifact row was corrected to sha256
`231286cf5860b22cf8ca6550f67f61b0ca4b5011ab9b09995bcabbafe883fee1`, size
`7261696`.
- C18Z4 live service-channel long-session pressure smoke is implemented and
passed on 2026-05-07 without a new runtime release beyond `0.2.183`. Script
`scripts/fabric/c18z4-live-service-channel-session-pressure-smoke.ps1` opens
one signed long-lived service-channel WebSocket from `test-1` to `test-2`,
sends 48 packet batches / 384 packets, expires the primary route intent while
the WebSocket session is still active, waits for dynamic synthetic-config
refresh, and verifies the remaining packets use the alternate route. Result:
`artifacts/c18z4-live-service-channel-session-pressure-smoke-result.json`
run `c18z4-20260507-212748`: exit inbox depth `0 -> 384`, route failure delta
`0`, flow drop delta `0`, compat fallback queue `0 -> 0`, primary route
removed from entry/exit configs, alternate route selected after the switch,
and both route intents expired. This proves the shared Fabric Service Channel
can keep a service session alive while Control Plane changes the live route
set, without falling back to backend relay.
- C18Z5 live service-channel exit-restart smoke is implemented and passed on
2026-05-07 without a new runtime release beyond `0.2.183`. Script
`scripts/fabric/c18z5-live-service-channel-exit-restart-smoke.ps1` keeps one
signed WebSocket service-channel session open from `test-1` to `test-2`,
sends pre-outage traffic, stops `test-2` for a bounded outage while traffic
continues, starts it again, waits runtime readiness, then sends recovery
traffic over the same WebSocket. Result:
`artifacts/c18z5-live-service-channel-exit-restart-smoke-result.json` run
`c18z5-20260507-213745`: pre/outage/recovery batches `12/24/24`, total
packets `480`, route failure delta `48`, compat fallback queue `0 -> 192`,
flow drop delta `0`, and recovery exit inbox `0 -> 192`. This proves real
exit-node failure is visible as fallback/failure telemetry while the
long-lived service channel remains usable and fabric delivery resumes after
the exit runtime returns. After the test, `test-2` and all active cluster
nodes were healthy/current on `0.2.183`.
- C18Z6 live service-channel active rebuild smoke is implemented and passed on
2026-05-07 without a new runtime release beyond `0.2.183`. Script
`scripts/fabric/c18z6-live-service-channel-active-rebuild-smoke.ps1` keeps a
signed WebSocket service-channel session open from `test-1` to `test-2`,
sends pre-rebuild traffic, injects route-health feedback that marks the
primary route stale and names the alternate route as replacement, waits for
Control Plane `rebuild_status=applied`, waits for node-agent
`route_manager_transition.status=applied_rebuild`, then continues sending
over the same WebSocket. Result:
`artifacts/c18z6-live-service-channel-active-rebuild-smoke-result.json` run
`c18z6-20260507-214900`: pre/post batches `16/32`, total packets `384`,
exit inbox depth `0 -> 384`, Control Plane replacement route
`b2f3c510-46d2-4dce-8389-3952a99d0311`, route failure delta `0`, flow drop
delta `0`, compat fallback queue `0 -> 0`, all checks passed, and all
active nodes remained healthy/current on `0.2.183`. This proves a live
service channel can apply a route-manager rebuild decision without rebuilding
the service WebSocket.
- C18Z7 live service-channel concurrent isolation smoke is implemented and
passed on 2026-05-07 without a new runtime release beyond `0.2.183`. Script
`scripts/fabric/c18z7-live-service-channel-concurrent-isolation-smoke.ps1`
opens three signed WebSocket service-channel sessions over the same
`test-1 -> test-2` entry/exit pair, interleaves packet batches across all
sessions, injects primary-route stale feedback, waits for Control Plane
`rebuild_status=applied` and node-agent `applied_rebuild`, then continues all
sessions over the same sockets. Result:
`artifacts/c18z7-live-service-channel-concurrent-isolation-smoke-result.json`
run `c18z7-20260507-215727`: 3 sessions, 36 rounds, 288 packets per session,
864 packets total, each session exit inbox depth `288`, total exit depth
`864`, compat fallback delta `0`, route failure delta `0`, flow drop delta
`0`, and all active nodes healthy/current on `0.2.183`. This proves rebuild
and route-manager state are shared correctly without one active service
session starving or poisoning the other concurrent sessions.
- C18Z8 live service-channel backpressure isolation smoke is implemented and
passed on 2026-05-07 without a new runtime release beyond `0.2.183`. Script
`scripts/fabric/c18z8-live-service-channel-backpressure-isolation-smoke.ps1`
opens two interactive signed WebSocket sessions plus one abusive session over
the same `test-1 -> test-2` entry/exit pair. The abusive session sends 1300
packets on one stable 5-tuple to force a single flow shard to hit bounded
queue pressure while the interactive sessions continue sending small batches.
Result:
`artifacts/c18z8-live-service-channel-backpressure-isolation-smoke-result.json`
run `c18z8-20260507-221347`: both interactive sessions delivered 192 packets
each, the abusive flow reached scheduler high watermark `1024`, scheduled
`1030` packets on the hottest channel, dropped `282` packets on that channel,
produced compat fallback delta `0`, route failure delta `0`, and all active
nodes stayed healthy/current on `0.2.183`. This proves bounded backpressure is
visible and isolated to the overloaded logical flow without starving other
active service sessions.
- C18Z9 route-pool runtime selection is implemented, released as node/host
agent `0.2.184`, published to docker-test downloads, and passed on
2026-05-07. Runtime fix: when Control Plane marks a service-channel route
`rebuild_status=applied` and provides `replacement_route_id`, node-agent now
treats that replacement as the preferred route for sticky flow/channel
selection instead of merely withdrawing the bad route and falling back to
config order. Unit coverage:
`TestFabricClientPacketIngressPrefersControlPlaneReplacementOverConfigOrder`.
Live script
`scripts/fabric/c18z9-live-service-channel-route-pool-smoke.ps1` creates a
route pool with slow relay primary `test-1 -> test-3 -> test-2` and fast
direct replacement `test-1 -> test-2`, keeps one signed WebSocket active,
injects stale-route feedback, waits for Control Plane and node-agent
`applied_rebuild`, then verifies the same service session continues over the
direct replacement. Result:
`artifacts/c18z9-live-service-channel-route-pool-smoke-result.json` run
`c18z9-20260507-224901`: 54 batches / 432 packets sent and delivered to exit,
compat fallback delta `0`, route failure delta `0`, flow drop delta `0`, and
temporary route intents expired. Test containers `test-1/2/3` run
`rap-node-agent:0.2.184`; `usa-los-1`, `home-1`, and
`ifcm-rufms-s-mo1cr` remain healthy on `0.2.183` until their rollout policy is
advanced.
- C18Z10 service-channel exit-pool failover is implemented, released as
node/host-agent `0.2.185`, published to docker-test downloads, registered in
the stable update channel, and passed on 2026-05-07. Backend service-channel
leases now bind signed entry/exit pools, selected exit follows the selected
primary route, and Control Plane replacement can cross to another authorized
exit when route intents share an exit-pool/resource metadata key. Node-agent
now honors the signed lease primary route as the initial service-channel
preference before normal config-order selection. Unit coverage:
`TestIssueFabricServiceChannelLeaseSelectsHealthyAlternateExitFromPool`,
`TestGetNodeSyntheticMeshConfigReplacesFencedServiceChannelRouteAcrossExitPool`,
and `TestFabricClientPacketIngressUsesLeasePreferredRouteBeforeConfigOrder`.
Live script
`scripts/fabric/c18z10-live-service-channel-exit-pool-smoke.ps1` creates a
primary exit route `test-1 -> test-2` and an alternate exit route
`test-1 -> test-3` in the same exit pool, keeps one signed WebSocket active,
verifies pre-rebuild traffic reaches the primary exit, injects stale-route
feedback, waits for Control Plane/node-agent `applied_rebuild`, then verifies
post-rebuild traffic reaches the alternate exit. Result:
`artifacts/c18z10-live-service-channel-exit-pool-smoke-result.json` run
`c18z10-20260507-232645`: 54 batches / 432 packets sent, primary exit queue
`144`, alternate exit queue `288`, compat fallback `0`, route failure delta
`0`, flow drop delta `0`, decision source
`service_channel_feedback_exit_pool_replacement`, and temporary route intents
expired. Backend and `test-1/2/3` are running `0.2.185`; update plans now
return download URLs on `192.168.200.61:18080` when the API is reached
directly on `18121`.
- C18Z11 service-channel entry-pool failover contract is implemented and
backend-deployed as `rap-backend:fabric-service-channel-0.2.186`; node-agent
remains `0.2.185` because no node runtime binary change was required.
Backend lease selection now keeps `selected_entry_node_id` aligned with the
selected primary route when the healthy route starts at another authorized
entry node. Route replacement scope also understands entry-pool metadata
keys (`entry_pool_id`, `service_entry_pool_id`, `fabric_entry_pool_id`) in
addition to exit-pool/resource keys, and route decision reports count
entry-pool replacement decisions. Unit coverage:
`TestIssueFabricServiceChannelLeaseSelectsHealthyAlternateEntryFromPool` and
`TestGetNodeSyntheticMeshConfigReplacesFencedServiceChannelRouteAcrossEntryPool`.
Live script
`scripts/fabric/c18z11-live-service-channel-entry-pool-smoke.ps1` creates
primary entry route `test-1 -> test-2` and alternate entry route
`test-3 -> test-2`, verifies the initial lease uses `test-1`, sends 144
packets, injects service-channel feedback fencing the primary entry route,
verifies a refreshed lease selects `test-3`, then sends 288 more packets
through the alternate entry to the same exit. Result:
`artifacts/c18z11-live-service-channel-entry-pool-smoke-result.json` run
`c18z11-20260507-235341`: exit queue `432`, compat fallback `0`, route
failure deltas `0/0`, flow drop deltas `0/0`, and temporary route intents
expired. This is a lease refresh/reconnect contract for entry replacement;
preserving a broken client-to-entry socket across an entry node outage is not
expected.
- C18Z12 service-channel route quality scoring is implemented and
backend-deployed as `rap-backend:fabric-service-channel-0.2.187`; node-agent
remains `0.2.185`. Backend now uses service-neutral runtime quality feedback
from `fabric_service_channel_runtime_report.ingress.flow_scheduler` when
scoring lease routes: `last_send_duration_ms` adds deterministic latency
boosts/penalties, and recent failures/stalls apply bounded penalties. This is
protocol-agnostic and applies to the shared fabric channel, not HTTP/RDP/DNS
special cases. Unit coverage:
`TestIssueFabricServiceChannelLeasePrefersFastHealthyRouteFeedback`. Live
script `scripts/fabric/c18z12-service-channel-route-quality-smoke.ps1`
creates a high-priority slow relay route `test-1 -> test-3 -> test-2` and a
lower-priority fast direct route `test-1 -> test-2`; the initial lease
selects the slow route by policy priority, then quality telemetry reports
fast route `8ms` and slow route `900ms`, and the refreshed lease selects the
fast route with score reason `service_channel_quality_latency_le_10ms`.
Result: `artifacts/c18z12-service-channel-route-quality-smoke-result.json`
run `c18z12-20260508-000209`; all checks passed and temporary route intents
expired.
- C18Z13 live service-channel route quality self-learning is implemented,
released as node-agent `0.2.188`, published to docker-test downloads,
registered in the stable update channel, and deployed to docker-test
containers `test-1/2/3`. Runtime fix: positive sub-millisecond
service-channel send durations are rounded to `1ms`, preventing fast local
routes from looking like "no quality sample". Unit coverage:
`TestFabricFlowSchedulerRoundsSubMillisecondSendDuration`. Live script
`scripts/fabric/c18z13-live-service-channel-route-quality-smoke.ps1` proves
the self-learning path without heartbeat injection: initial lease picks a
higher-priority relay route, real service-channel traffic sends 24 batches /
192 packets over the fast direct route, backend persists healthy route
feedback from the node-agent heartbeat (`last_send_duration_ms=1`,
`score_adjustment=90`), and a refreshed lease prefers that fast route over a
newly introduced higher-priority relay candidate. Result:
`artifacts/c18z13-live-service-channel-route-quality-smoke-result.json` run
`c18z13-20260508-001610`; compat fallback `0`, flow drops `0`, temporary
route intents expired. Published release id:
`64effc62-18b6-4eeb-a1c9-f5fb8e251491`.
- C18Z14 active-session route-quality preference is implemented. Backend
`rap-backend:fabric-service-channel-0.2.190` and node-agent `0.2.189` are
deployed to docker-test `test-1/2/3`; node-agent `0.2.189` is published to
docker-test downloads and registered in the stable update channel as release
`9bda9bac-71f3-4e8f-ae70-2abccb1cb866`. Backend now decays older healthy
service-channel feedback before lease scoring so stale success loses weight
before expiry. Node-agent consumes healthy route-quality observations from
signed synthetic config and can override sticky per-flow/config-order route
choice when a learned route is significantly better. Unit coverage:
`TestFabricClientPacketIngressQualityPreferenceOverridesStickyRoute` and
`TestIssueFabricServiceChannelLeaseDecaysOlderHealthyRouteFeedback`. Live
script
`scripts/fabric/c18z14-live-service-channel-active-quality-shift-smoke.ps1`
keeps one signed WebSocket open while route policy changes: it starts on a
higher-priority relay route, expires that route, sends real traffic through
the fast direct route to teach feedback, introduces a new higher-priority
relay candidate, and verifies the same active session stays on the learned
fast route. Result:
`artifacts/c18z14-live-service-channel-active-quality-shift-smoke-result.json`
run `c18z14-20260508-071644`; 60 batches / 480 packets delivered, backend
fallback `0`, flow drops `0`, temporary route intents expired.
- C18Z15 effective route-quality score telemetry is implemented. Backend
`rap-backend:fabric-service-channel-0.2.191` is deployed on docker-test, and
node-agent `0.2.190` is built, published to docker-test downloads, registered
in the stable update channel, and deployed to `test-1/2/3`. Published release
id: `2e4cd0c8-2480-4637-b845-6dcb115dbebd`. Backend feedback reports now
include decayed `effective_score_adjustment` alongside raw
`score_adjustment`; node-agent consumes the effective score for active
route-quality preference and exposes sorted `route_quality_preferences` in
runtime telemetry with raw/effective score and decay reasons. Unit coverage:
`TestFabricClientPacketIngressQualityPreferenceUsesEffectiveScore` and
`TestServiceChannelRouteFeedbackReportIncludesEffectiveDecayedScore`. Live
script
`scripts/fabric/c18z15-live-service-channel-effective-quality-smoke.ps1`
verifies route-quality preference telemetry, effective score visibility, and
decayed effective score visibility after the active-session quality-shift
scenario. Result:
`artifacts/c18z15-live-service-channel-effective-quality-smoke-result.json`
run `c18z14-20260508-073538`; 60 batches / 480 packets delivered, backend
fallback `0`, flow drops `0`, temporary route intents expired.
- C18Z16 per-channel route-quality fairness telemetry is implemented. Node-agent
`0.2.191` is built, published to docker-test downloads, registered in the
stable update channel, and deployed to `test-1/2/3`; backend remains
`rap-backend:fabric-service-channel-0.2.191`. Published release id:
`f072759c-5c3b-4ba0-936a-f59b6d3d7632`. Flow-scheduler channel stats now
expose the applied `quality_preference_route_id`, effective/raw preference
score, and preference reasons, so operators can see which logical channels
actually used learned route quality. Unit coverage:
`TestFabricClientPacketIngressQualityPreferencePreservesMultiChannelFairness`.
Live script
`scripts/fabric/c18z16-live-service-channel-quality-fairness-smoke.ps1`
validates multi-channel quality-preference fairness after the active-session
route-quality shift. Result:
`artifacts/c18z16-live-service-channel-quality-fairness-smoke-result.json`
run `c18z14-20260508-074943`; 60 batches / 480 packets delivered, 32 served
logical channels, 32 channels with quality preference applied, backend
fallback `0`, flow drops `0`, temporary route intents expired.
- C18Z17 stale route-quality marker cleanup is implemented. Node-agent
`0.2.192` is built, published to docker-test downloads, registered in the
stable update channel, and deployed to `test-1/2/3`; backend remains
`rap-backend:fabric-service-channel-0.2.191`. Published release id:
`846881bd-e7e0-4212-b8c9-4a6012c6eff7`. Flow-scheduler channel stats now
clear quality preference markers when the preference is no longer in the
effective preference set or when the route manager withdraws that route. Unit
coverage:
`TestFabricClientPacketIngressClearsStaleQualityPreferenceMarkers` and
`TestFabricClientPacketIngressClearsWithdrawnQualityPreferenceMarkers`.
Live script
`scripts/fabric/c18z17-live-service-channel-quality-cleanup-smoke.ps1`
verifies cleanup after the active-session quality/fairness scenario. Result:
`artifacts/c18z17-live-service-channel-quality-cleanup-smoke-result.json`
run `c18z14-20260508-075750`; 60 batches / 480 packets delivered, active
quality markers `32`, stale quality markers `0`, visible preferences `3`,
compat fallback `0`, flow drops `0`, temporary route intents expired.
- C18Z18 service-session-scoped flow scheduler memory is implemented.
Node-agent `0.2.193` is built, published to docker-test downloads,
registered in the stable update channel, and deployed to `test-1/2/3`;
backend remains `rap-backend:fabric-service-channel-0.2.191`. Published
release id: `05a3d29e-8a62-4bc8-84a3-1d00b794b9c9`. Runtime-sent flow
scheduler channel keys now include the VPN/service session:
`vpn:{vpnConnectionID}:flow-NN`. This keeps route memory, failed-route
avoidance, served/drop counters, and route-quality markers isolated when
several service-channel sessions share one entry/exit and hash to the same
logical flow shard. Unit coverage:
`TestFabricClientPacketIngressIsolatesRouteMemoryPerVPNConnection` and
`TestFabricClientPacketIngressQualityPreferencePreservesMultiChannelFairness`.
Live script
`scripts/fabric/c18z18-service-channel-session-scoped-fairness-smoke.ps1`
wraps the live C18Z17 quality path and verifies served live channels are
session-scoped, unscoped served `flow-NN` channels are absent, quality
markers are session-scoped, compat fallback is `0`, and flow drops are `0`.
Result:
`artifacts/c18z18-service-channel-session-scoped-fairness-smoke-result.json`
run `c18z14-20260508-082520`; 60 batches / 480 packets delivered, served
channels `32`, session-scoped served channels `32`, session-scoped quality
channels `32`, unscoped served channels `0`, compat fallback `0`, flow drops
`0`, temporary route intents expired.
- C18Z19 bounded parallel logical-flow send window is implemented. Node-agent
`0.2.194` is built, published to docker-test downloads, registered in the
stable update channel, and deployed to `test-1/2/3`; backend remains
`rap-backend:fabric-service-channel-0.2.191`. Published release id:
`926e5b84-4b0b-4f47-b1fe-798d8105679f`. The live node-agent runtime enables
`MaxParallelFlowSends=4`, so independent scheduled logical channels can send
concurrently instead of one slow channel blocking all following channels.
This remains service-neutral and does not inspect HTTP/RDP/DNS/application
traffic. Telemetry now exposes `max_parallel_flow_sends` and
`send_flow_parallel_batches`. Unit coverage:
`TestFabricClientPacketIngressParallelFlowWindowDoesNotBlockIndependentChannel`.
Live script
`scripts/fabric/c18z19-service-channel-parallel-flow-window-smoke.ps1` wraps
the C18Z18 live route-quality/session-scoped path and verifies the parallel
window is enabled and observed while compat fallback and flow drops stay at
zero. Result:
`artifacts/c18z19-service-channel-parallel-flow-window-smoke-result.json`
run `c18z14-20260508-084133`; 60 batches / 480 packets delivered,
`max_parallel_flow_sends=4`, `send_flow_parallel_batches=60`, served
channels `32`, session-scoped quality channels `32`, compat fallback `0`,
flow drops `0`, temporary route intents expired.
- C18Z20 per-channel latency/retry/in-flight telemetry and adaptive recommended
send-window telemetry are implemented. Node-agent `0.2.195` is built,
published to docker-test downloads, registered in the stable update channel,
and deployed to `test-1/2/3`; backend remains
`rap-backend:fabric-service-channel-0.2.191`. Published release id:
`b9e198e0-e012-4600-ad14-856820aff41c`. Scheduler telemetry now includes
global `in_flight`, `max_in_flight`, slow/failing channel counts, and
per-channel `send_attempts`, `send_successes`, `send_failures`,
`in_flight`, `max_in_flight`, and latency buckets. Ingress telemetry now
includes `recommended_parallel_flow_sends`; the recommendation shrinks under
bounded drops, degraded fallback recommendations, repeated failures, or
slow/stalled channels. Unit coverage:
`TestFabricFlowSchedulerRecommendsSmallerWindowUnderPressure` and
`TestFabricClientPacketIngressParallelFlowWindowDoesNotBlockIndependentChannel`.
Live script
`scripts/fabric/c18z20-service-channel-adaptive-window-telemetry-smoke.ps1`
wraps the C18Z19 live path and verifies the new telemetry on real docker-test
nodes. Result:
`artifacts/c18z20-service-channel-adaptive-window-telemetry-smoke-result.json`
run `c18z14-20260508-085635`; 60 batches / 480 packets delivered,
`max_parallel_flow_sends=4`, `recommended_parallel_flow_sends=4`,
`scheduler_max_in_flight=4`, attempts/success/latency visible on 32 channels,
compat fallback `0`, flow drops `0`, temporary route intents expired.
- C18Z21 rolling per-channel/session quality windows are implemented.
Node-agent `0.2.196` is built, published to docker-test downloads,
registered in the stable update channel, and deployed to `test-1/2/3`;
backend remains `rap-backend:fabric-service-channel-0.2.191`. Published
release id: `813b2050-4d4e-444c-9bde-72b1d1f7dd35`. Scheduler decisions now
use a bounded fresh quality window instead of lifetime-only drop/failure
counters, so old pressure rolls out after newer successful samples. Telemetry
now exposes scheduler-level `quality_window_sample_count`,
`quality_window_failure_count`, `quality_window_slow_count`,
`quality_window_drop_count`, and per-channel success/failure/slow/drop sample
counts, average latency, and last update time. Unit coverage:
`TestFabricFlowSchedulerRollingQualityWindowForgetsOldPressure`,
`TestFabricFlowSchedulerRecommendsSmallerWindowUnderPressure`, and
`TestFabricClientPacketIngressParallelFlowWindowDoesNotBlockIndependentChannel`.
Live script
`scripts/fabric/c18z21-service-channel-rolling-quality-window-smoke.ps1`
wraps the C18Z20 live path and verifies the rolling-window telemetry on real
docker-test nodes. Result:
`artifacts/c18z21-service-channel-rolling-quality-window-smoke-result.json`
run `c18z14-20260508-091952`; 60 batches / 480 packets delivered,
scheduler quality-window samples `480`, failures `0`, drops `0`, window
samples/success/latency visible on 32 channels, `recommended_parallel_flow_sends=4`,
compat fallback `0`, flow drops `0`, temporary route intents expired.
- C18Z22 backend durable route feedback now consumes the rolling quality
window from node-agent heartbeat metadata. Backend
`rap-backend:fabric-service-channel-0.2.197` is built and deployed on
docker-test; node-agent remains `0.2.196` on `test-1/2/3`. For agents that
expose `quality_window_*`, backend uses fresh rolling failure/drop/slow
counts and rolling average latency when creating `fabric_service_channel`
route feedback; old `last_failed_route_id`, `consecutive_failures`, and
`stall_count` remain fallback inputs for older agents only. This prevents old
route failures from dominating durable scoring after the channel has recovered
with a clean rolling window. Unit coverage:
`TestRecordHeartbeatUsesRollingQualityWindowForRouteFeedback` and
`TestRecordHeartbeatPersistsServiceChannelRouteFeedbackForLaterLease`.
Live script
`scripts/fabric/c18z22-service-channel-rolling-feedback-smoke.ps1` wraps the
C18Z21 live path and verifies persisted route feedback contains
`service_channel_rolling_quality_window` plus payload `quality_window_*`
fields. Result:
`artifacts/c18z22-service-channel-rolling-feedback-smoke-result.json` run
`c18z14-20260508-093100`; 60 batches / 480 packets delivered, route feedback
count `1`, rolling feedback count `1`, healthy rolling feedback count `1`,
rolling payload count `1`, compat fallback `0`, flow drops `0`.
- C18Z23 recovery hysteresis is implemented for recovered service-channel
routes. Backend `rap-backend:fabric-service-channel-0.2.198` is built and
deployed on docker-test; node-agent remains `0.2.196` on `test-1/2/3`.
When a route has an operator-expire/manual retry cooldown from prior fenced
feedback but now also has healthy rolling-window feedback, backend re-admits
the route as `authorized` while applying a bounded recovery hysteresis score
penalty (`150`) and `service_channel_recovery_hysteresis` reason. This keeps
recovered routes available as alternates without immediately displacing a
steady route and reducing route-selection flapping. Unit coverage:
`TestIssueFabricServiceChannelLeaseDampensRecoveredRouteDuringRetryCooldown`
and `TestRecordHeartbeatUsesRollingQualityWindowForRouteFeedback`. Live
script
`scripts/fabric/c18z23-service-channel-recovery-hysteresis-smoke.ps1` wraps
the C18Z22 live path and verifies backend `0.2.198`, rolling feedback, and
clean live forwarding. Result:
`artifacts/c18z23-service-channel-recovery-hysteresis-smoke-result.json` run
`c18z14-20260508-094111`; 60 batches / 480 packets delivered, backend
fallback `0`, flow drops `0`, recovery hysteresis penalty `150`.
- C18Z24 recovery visibility is implemented for service-channel route
diagnostics. Backend `rap-backend:fabric-service-channel-0.2.199` is built
and deployed on docker-test; node-agent remains `0.2.196` on `test-1/2/3`.
Route feedback API responses and node-scoped service-channel feedback reports
now expose `recovery_state`, `recovery_hysteresis_active`, and
`recovery_hysteresis_penalty`, while route path decision reports count
`recovery_hysteresis_count`. Admin diagnostics now show recovered/hysteresis
chips and a recovery column beside route feedback status. Unit coverage:
`TestIssueFabricServiceChannelLeaseDampensRecoveredRouteDuringRetryCooldown`,
`TestServiceChannelRouteFeedbackReportExposesRecoveryState`, and
`TestRoutePathDecisionReportCountsRecoveryHysteresis`. Smoke result:
`artifacts/c18z24-service-channel-recovery-visibility-smoke-result.json`;
route feedback API exposed recovery shape for 109 observations, backend
image `0.2.199` was live, and the web-admin build was published to
`rap_web_admin`.
- C18Z25 recovery promotion policy is implemented. Backend
`rap-backend:fabric-service-channel-0.2.200` is built and deployed on
docker-test; node-agent remains `0.2.196`. A route under manual retry
cooldown remains `recovered` with hysteresis penalty until it reports at
least 64 clean rolling-window samples (`success >= 64`, failures/slow/drops
zero). After that it is promoted back to steady `healthy`, gets
`recovery_promoted=true`, `service_channel_recovery_promoted`, and no
hysteresis penalty. Admin/API now expose promoted counts/flags alongside
recovered/hysteresis state. Smoke result:
`artifacts/c18z25-service-channel-recovery-promotion-smoke-result.json`;
backend image `0.2.200` was live and route-feedback API exposed recovery
state for 109 observations.
- C18Z26 recovery demotion policy is implemented. Backend
`rap-backend:fabric-service-channel-0.2.201` is built and deployed on
docker-test; node-agent remains `0.2.196`. If a previously recovered or
promoted route under retry cooldown reports fresh rolling failures, drops,
slow samples, degraded fallback, rebuild recommendation, or fenced feedback,
backend now exposes `recovery_demoted=true` with a concrete
`recovery_reason` such as `service_channel_recovery_demoted_failure`,
`..._slow`, `..._rebuild`, or `..._fenced`. Route score reasons include
`service_channel_recovery_demoted` and the specific demotion reason, and
route path decision reports count `recovery_demoted_count`. Admin diagnostics
now show demoted feedback/path chips and the demotion reason. Smoke result:
`artifacts/c18z26-service-channel-recovery-demotion-smoke-result.json`;
backend image `0.2.201` was live and route-feedback API exposed recovery
state for 109 observations.
- C18Z27 recovery policy tuning is implemented. Backend
`rap-backend:fabric-service-channel-0.2.202` is built and deployed on
docker-test; node-agent remains `0.2.196`. Effective service-channel
recovery policy now has a strict default contract and optional cluster
metadata override at `fabric_service_channel_recovery_policy`. API endpoints
`GET/PUT /clusters/{clusterID}/fabric/service-channels/recovery-policy`
expose and update hysteresis penalty, promotion minimum samples, demotion
thresholds for failures/drops/slow samples, and rebuild/fenced demotion
toggles. Lease route selection, route feedback reports, and node-scoped
synthetic config feedback consume the effective policy. Web-admin shows and
edits the policy in the service-channel route feedback card. Smoke result:
`artifacts/c18z27-service-channel-recovery-policy-smoke-result.json`; live
API updated policy values, then restored strict defaults
(`penalty=150`, `promotion_min_samples=64`, demotion thresholds `1`).
- C18Z28 recovery policy provenance is implemented. Backend
`rap-backend:fabric-service-channel-0.2.203` is built and deployed on
docker-test; node-agent remains `0.2.196`. `FabricServiceChannelRoute`,
`FabricServiceChannelLease`, signed lease authority payloads,
service-channel route feedback reports, and route path decision reports now
carry the effective recovery policy used for scoring and recovery decisions.
This makes every primary/alternate/fallback choice auditable against the
policy source and thresholds that produced it. Web-admin node diagnostics
show the service-channel feedback policy and route decision policy source.
Smoke result:
`artifacts/c18z28-service-channel-recovery-policy-provenance-smoke-result.json`;
live synthetic config and live lease issuance both exposed recovery policy
provenance on docker-test.
- C18Z29 feedback provenance guardrails are implemented. Backend
`rap-backend:fabric-service-channel-0.2.204` is built and deployed on
docker-test; node-agent remains `0.2.196`. Recovery policy now has a stable
fingerprint. Backend recognizes optional runtime feedback provenance fields
(`recovery_policy_fingerprint`, `route_generation`, `route_policy_version`,
`policy_version`), exposes observed/effective fingerprints/generations on
route feedback observations, and reports missing/stale counters. Explicit
stale policy/generation feedback is scored conservatively, cannot fence a
current route, and cannot request rebuild/demotion; missing provenance stays
compatible for current old agents but is visible in diagnostics. Web-admin
shows provenance warnings in service-channel feedback. Smoke result:
`artifacts/c18z29-service-channel-feedback-provenance-guard-smoke-result.json`.
- C18Z30 node-agent feedback provenance is implemented. Backend
`rap-backend:fabric-service-channel-0.2.209` and node-agent `0.2.208` are
built and deployed on docker-test (`test-1/2/3`). Node-agent now preserves the
signed synthetic config contract for recovery feedback/route decision fields
and records per-flow `recovery_policy_fingerprint`, `route_policy_version`,
and `route_generation` at send time, so feedback remains auditable even after
route churn/expiry. Backend heartbeat parsing now preserves those fields into
durable service-channel feedback payloads. Live smoke passed with 28/28
runtime channel stats carrying provenance, 3/3 feedback observations carrying
provenance, and no missing/stale provenance counters. Artifacts:
`artifacts/c18z30-node-telemetry-provenance-live-smoke-base-result.json` and
`artifacts/c18z30-node-agent-feedback-provenance-smoke-result.json`.
- C18Z31 service-channel rebuild ledger is implemented. Backend
`rap-backend:fabric-service-channel-0.2.211` is built and deployed on
docker-test; node-agent remains `0.2.208` on `test-1/2/3`. Backend now keeps
durable route rebuild attempt history in
`fabric_service_channel_route_rebuild_attempts`, upserted from synthetic
config route decisions when service-channel feedback requests rebuild. The
ledger stores trigger/rebuild status, old route, selected replacement,
policy fingerprint, generation, feedback status/reasons, latency/failure
counters, outcome, and compact decision payload. API endpoint
`GET /clusters/{clusterID}/fabric/service-channels/rebuild-attempts` exposes
the history; web-admin loads it into Service-channel route feedback
diagnostics as a rebuild ledger table. Migration `000026` is applied on
docker-test. Live smoke passed:
`artifacts/c18z31-base-active-rebuild-smoke-result.json` and
`artifacts/c18z31-service-channel-rebuild-ledger-smoke-result.json`.
- C18Z32 service-channel rebuild timeline is implemented. Backend
`rap-backend:fabric-service-channel-0.2.213` is built and deployed on
docker-test; node-agent remains `0.2.208` on `test-1/2/3`. The rebuild
attempts API now enriches durable ledger rows with node-agent heartbeat
correlation: matching `route_manager_transition`, route-generation apply or
withdrawn decision, post-rebuild selected route, flow packet/drop/failure
counters, and a compact chronological `timeline` with
`backend_decision`, `node_route_generation_apply`,
`node_route_manager_transition`, and `post_rebuild_traffic` stages. Matching
is generation-strict when the backend attempt has a generation, preventing
stale transition/status matches. Web-admin rebuild ledger shows backend,
agent, route-generation, and traffic columns. Live smoke passed:
`artifacts/c18z32-base-rebuild-ledger-smoke-result.json` and
`artifacts/c18z32-service-channel-rebuild-timeline-smoke-result.json`.
- C18Z33 service-channel rebuild guardrails are implemented. Backend
`rap-backend:fabric-service-channel-0.2.214` is built and deployed on
docker-test; node-agent remains `0.2.208`. Rebuild attempts API now adds
computed guard fields: `guard_status`, `guard_severity`, `guard_reason`,
age, and transition/traffic deadlines. Successful correlated rebuilds report
`guard_status=ok`, `guard_severity=good`; missing node transition,
route-generation correlation, post-rebuild traffic, unexpected selected
route, or post-rebuild drops/failures surface as warn/bad states. Web-admin
shows guard chips and counts in the service-channel rebuild ledger. Live
smoke passed: `artifacts/c18z33-base-rebuild-ledger-smoke-result.json` and
`artifacts/c18z33-service-channel-rebuild-guard-smoke-result.json`.
- C18Z34 service-channel rebuild health summary is implemented. Backend
`rap-backend:fabric-service-channel-0.2.215` is built and deployed on
docker-test; node-agent remains `0.2.208`. New endpoint
`GET /clusters/{clusterID}/fabric/service-channels/rebuild-health` returns a
cluster-level operational summary over the durable rebuild ledger/timeline:
counts by guard status/severity, applied/pending counts, affected reporter
nodes/routes, most recent bad attempts, and recommended operator action.
Web-admin shows the summary as a Rebuild health subpanel above the rebuild
ledger. Live smoke passed:
`artifacts/c18z34-base-rebuild-guard-smoke-result.json` and
`artifacts/c18z34-service-channel-rebuild-health-smoke-result.json`.
- C18Z35 service-channel rebuild alert silence lifecycle is implemented.
Backend `rap-backend:fabric-service-channel-0.2.216` is built and deployed on
docker-test; node-agent remains `0.2.208`. Migration `000027` creates
`fabric_service_channel_rebuild_alert_silences`, applied on docker-test. New
API `POST /clusters/{clusterID}/fabric/service-channels/rebuild-health/silences`
records bounded operator silence for an exact alert fingerprint:
reporter node, route, guard status, and generation. Rebuild health now
separates total bad/warn from active bad/warn and silenced counts; silenced
alerts are omitted from affected nodes/routes and active bad attempt lists.
A new generation, route, or reporter remains active by design. Web-admin
exposes `silence 6h` on active bad rebuild-health rows. Live smoke passed:
`artifacts/c18z35-base-rebuild-health-smoke-result.json` and
`artifacts/c18z35-service-channel-rebuild-alert-silence-smoke-result.json`.
- C18Z36 service-channel rebuild alert resurfacing is implemented. Backend
`rap-backend:fabric-service-channel-0.2.217` is built and deployed on
docker-test; node-agent remains `0.2.208`. Rebuild health marks active
bad/warn attempts as `alert_resurfaced` when an active silence exists for the
same reporter node, route, and guard status but a different generation. The
summary exposes `resurfaced_count` and `resurfaced_attempts`, including the
previous silenced generation and silence expiry. Web-admin shows a resurfaced
chip/table and allows silencing the new generation separately. Live smoke
passed: `artifacts/c18z36-base-rebuild-health-smoke-result.json` and
`artifacts/c18z36-service-channel-rebuild-alert-resurface-smoke-result.json`.
- C18Z37 service-channel readiness gate is implemented. Backend
`rap-backend:fabric-service-channel-0.2.218` is built and deployed on
docker-test; node-agent remains `0.2.208`. New endpoint
`GET /clusters/{clusterID}/fabric/service-channels/readiness` returns a fast
recent-window verdict: `clean`, `degraded`, or `blocked`, with active
bad/warn counts, resurfaced/silenced counts, missing transition,
route-generation, post-rebuild traffic, unexpected-route, and post-rebuild
degraded counters plus blocking/degraded reasons and recommended operator
action. Web-admin shows this as a top-level readiness panel in
Service-channel route feedback. Readiness and default admin health queries
are intentionally capped to a small recent window so the operator view stays
responsive after many rebuild attempts; deep ledger diagnostics remain a
separate next layer. Live smoke passed:
`artifacts/c18z37-base-rebuild-health-smoke-result.json` and
`artifacts/c18z37-service-channel-readiness-smoke-result.json`.
- C18Z38 service-channel rebuild ledger enrichment split is implemented.
Backend `rap-backend:fabric-service-channel-0.2.219` is built and deployed
on docker-test; node-agent remains `0.2.208`. The rebuild attempts API now
defaults to `enrichment=summary`, returning durable ledger rows without the
expensive heartbeat/timeline guard correlation. Operators can request
`enrichment=deep` explicitly for per-route investigation. Web-admin defaults
to the fast ledger, shows timeline/guard fields as deep-only in summary mode,
and provides a manual deep ledger toggle. C18Z32/C18Z33 smokes now request
deep enrichment. Live smoke passed:
`artifacts/c18z38-service-channel-rebuild-ledger-enrichment-smoke-result.json`.
- C18Z39 service-channel rebuild ledger drilldown is implemented. Backend
`rap-backend:fabric-service-channel-0.2.220` is built and deployed on
docker-test; node-agent remains `0.2.208`. The rebuild attempts API now
accepts `generation` and `offset`, allowing narrow deep investigations by
reporter node, route, service class, and route generation with bounded
pagination. Web-admin adds rebuild ledger filters for reporter/route/
generation/service plus prev/next paging in deep mode. Live smoke passed:
`artifacts/c18z39-service-channel-rebuild-ledger-drilldown-smoke-result.json`.
- C18Z40 service-channel rebuild incident grouping is implemented. Backend
`rap-backend:fabric-service-channel-0.2.222` is built and deployed on
docker-test; node-agent remains `0.2.208`. New endpoint
`GET /clusters/{clusterID}/fabric/service-channels/rebuild-incidents`
groups the bounded recent rebuild window by reporter node, route, service
class, generation, and guard status, exposing first/last seen, attempt count,
latest guard/replacement/outcome, silence/resurface flags, and recommended
action. The incident window is capped to 5 to keep default admin refresh
bounded; broader investigation still uses filtered deep ledger. Web-admin
shows a Rebuild incidents list and `open deep` loads the exact filtered deep
ledger slice for that incident. Live smoke passed:
`artifacts/c18z40-service-channel-rebuild-incidents-smoke-result.json`.
- C18Z41 service-channel rebuild incident actions are implemented. Backend
`rap-backend:fabric-service-channel-0.2.223` is built and deployed on
docker-test; node-agent remains `0.2.208`. New API
`POST /clusters/{clusterID}/fabric/service-channels/rebuild-incidents/investigations`
records an audit event when an operator opens a deep rebuild investigation.
Web-admin incident rows now expose `open deep` with audit and `silence 6h`
using the incident fingerprint fields; after silence the panel refreshes only
rebuild health/readiness/incidents instead of the whole cluster scope. Live
smoke passed:
`artifacts/c18z41-service-channel-rebuild-incident-actions-smoke-result.json`.
- C18Z42 service-channel rebuild correlation snapshots are implemented.
Backend `rap-backend:fabric-service-channel-0.2.224` is built and deployed
on docker-test; node-agent remains `0.2.208`. Migration `000028` adds
durable correlation/guard snapshot columns to
`fabric_service_channel_route_rebuild_attempts`, including node transition,
route-generation, post-rebuild traffic, guard status/severity/reason,
compact timeline, and `correlation_snapshot_at`. Deep enrichment now writes
the snapshot once; later deep/readiness/health/incidents reuse it and only
recompute age-sensitive guard state without scanning heartbeat history.
External summary ledger still strips guard/timeline fields to preserve the
fast C18Z38 contract. On docker-test, applying `000028` manually was required
before smoke because this manual backend redeploy path does not auto-apply
migrations. Live smoke passed twice; after warm snapshot timings were roughly
summary 92 ms, deep 2 ms, incidents 2 ms:
`artifacts/c18z42-service-channel-rebuild-correlation-snapshot-smoke-result.json`.
- C18Z43 service-channel schema preflight is implemented. Backend
`rap-backend:fabric-service-channel-0.2.225` is built and deployed on
docker-test; web-admin is redeployed. New endpoint
`GET /clusters/{clusterID}/fabric/service-channels/schema-status` checks the
DB relation/columns required by migration `000028` before operators rely on
rebuild health/readiness/incidents. Web-admin shows a Fabric schema preflight
panel beside service-channel readiness, with required/missing check counts and
operator action. Live smoke passed:
`artifacts/c18z43-service-channel-schema-preflight-smoke-result.json`.
- C18Z44 service-channel rebuild snapshot warmup is implemented. Backend
`rap-backend:fabric-service-channel-0.2.226` is built and deployed on
docker-test; web-admin is redeployed. New endpoint
`POST /clusters/{clusterID}/fabric/service-channels/rebuild-snapshots/warmup`
performs a bounded proactive pass over recent rebuild attempts. It fills
missing correlation snapshots, counts stale snapshots, and defers heavy stale
rescans because age-sensitive guard state is already recomputed from cached
snapshots on read. Web-admin adds a `warm snapshots` action and displays
warmed/fresh/missing/stale/deferred/error counts. Live smoke passed:
`artifacts/c18z44-service-channel-rebuild-snapshot-warmup-smoke-result.json`.
- C18Z45 service-channel rebuild snapshot auto-warmup is implemented. Backend
`rap-backend:fabric-service-channel-0.2.227` is built and deployed on
docker-test; node-agent remains `0.2.208`. Heartbeat processing now performs a
bounded missing-snapshot maintenance pass for the reporting node's recent
rebuild attempts. It only persists a snapshot when the heartbeat contains
runtime evidence such as post-rebuild traffic or matched route-manager/
route-generation state, preventing backend-only timelines from becoming stale
cache entries. Auto-warmup writes an audit event
`fabric.service_channel_rebuild_snapshot.auto_warmup` with trigger, heartbeat,
warmed route IDs, generations, rebuild IDs, counts, and errors. Live smoke
passed:
`artifacts/c18z45-service-channel-rebuild-snapshot-auto-warmup-smoke-result.json`.
- C18Z46 service-channel rebuild snapshot maintenance health is implemented.
Backend `rap-backend:fabric-service-channel-0.2.228` is built and deployed
on docker-test; web-admin is redeployed. New endpoint
`GET /clusters/{clusterID}/fabric/service-channels/rebuild-snapshots/health`
exposes bounded snapshot-cache maintenance status: recent attempt count,
valid/missing/overdue runtime-evidence snapshots, heartbeat threshold, latest
auto-warmup audit summary, and per-node warmed/error/missing counts. Web-admin
adds a `Snapshot maintenance` panel beside schema/readiness. Live smoke
passed:
`artifacts/c18z46-service-channel-rebuild-snapshot-health-smoke-result.json`.
- C18Z47 service-channel signed lease enforcement is implemented. Node-agent
release `0.2.230` is built, published under `/downloads`, registered as the
active `rap-node-agent` dev release, and deployed on docker-test
`test-1/2/3`; all three report `0.2.230`, healthy, and current after policy
update. When a cluster authority public key is pinned, the node-agent now
rejects unsigned `rap_fsc_*` service-channel requests and requires the
signed `rap.fabric_service_channel_lease_authority.v1` payload/signature
headers. Compat-unsigned tokens remain accepted only in unpinned test mode.
Live smoke proved unsigned POST is rejected with 403 while signed lease POST
is accepted with 202:
`artifacts/c18z47-service-channel-signed-lease-enforcement-smoke-result.json`.
- C18Z48 service-channel backend introspection compatibility is implemented.
Backend `rap-backend:fabric-service-channel-0.2.231` is built/deployed on
docker-test. Node-agent/host-agent artifacts `0.2.232` are published under
`/downloads`; `rap-node-agent` release `0.2.232` is registered and deployed
on `test-1/2/3`, and all three report healthy/current. When signed
service-channel authority headers are absent but cluster authority is pinned,
node-agent now calls backend lease introspection before accepting an unsigned
token. Bad tokens are still rejected. Live smoke passed:
`artifacts/c18z48-service-channel-introspection-smoke-result.json`.
- C18Z49 service-channel acceptance telemetry is implemented in node-agent
`0.2.232`. Each accepted Fabric Service Channel ingress records
`accepted_by=signed|introspection|compat_unsigned`, route preference, and
backend-fallback state in structured node logs. HTTP packet ingress also
returns `X-RAP-Service-Channel-Accepted-By` for smoke/diagnostics.
- C18Z50 durable service-channel lease introspection is implemented. Migration
`000029_fabric_service_channel_leases` adds a durable lease table keyed by
cluster/channel and stores only `token_hash` plus a scrubbed lease payload
with the raw bearer token removed. Backend
`rap-backend:fabric-service-channel-0.2.233` is built/deployed on
docker-test after applying the migration. Introspection now reads memory
first, then durable storage, so compatibility clients survive backend
restart. Live smoke restarted `rap_test_backend`, accepted the unsigned token
through introspection, rejected a bad token, and verified the durable lease
omits the raw token:
`artifacts/c18z50-service-channel-durable-introspection-smoke-result.json`.
- C18Z51 service-channel lease maintenance is implemented. Backend
`rap-backend:fabric-service-channel-0.2.234` is built/deployed on
docker-test. New endpoints list durable service-channel lease maintenance
state and run bounded expired-lease cleanup:
`GET /clusters/{clusterID}/fabric/service-channels/leases` and
`POST /clusters/{clusterID}/fabric/service-channels/leases/cleanup`.
Web-admin adds a `Service-channel leases` panel with active/expired counts,
recent lease rows, and cleanup action. Live smoke issued a 1-second lease,
observed it as expired, cleaned it up, and verified it disappeared:
`artifacts/c18z51-service-channel-lease-maintenance-smoke-result.json`.
- C18Z52 service-channel access telemetry visibility is implemented. Backend
`rap-backend:fabric-service-channel-0.2.235` is built/deployed on
docker-test; node-agent/host-agent `0.2.235` artifacts are published under
`/downloads`, registered as active dev releases, and deployed on
`test-1/2/3`. Node-agent now reports accepted service-channel ingress
counters by `signed`, `introspection`, and `compat_unsigned`, including
backend-fallback count and last accepted timestamp. Backend exposes
`GET /clusters/{clusterID}/fabric/service-channels/access-telemetry`,
reading telemetry observations with heartbeat metadata fallback. Web-admin
adds a `Service-channel access` panel with cluster totals and per-node rows.
Live smoke sent packets through test-1, observed
`X-RAP-Service-Channel-Accepted-By: introspection`, and verified backend
aggregate visibility:
`artifacts/c18z52-service-channel-access-telemetry-smoke-result.json`.
- C18Z53 service-channel access/session correlation is implemented. Backend
`rap-backend:fabric-service-channel-0.2.236` is built/deployed on
docker-test; node-agent remains `0.2.235`. The access telemetry endpoint now
correlates accepted ingress counters with active durable service-channel
leases, selected entry/exit nodes, primary route status, explicit backend
fallback, and latest route-quality feedback when a route exists. Web-admin's
`Service-channel access` panel now shows active channel rows before per-node
counters, so operators can see whether a live service channel is using normal
route quality feedback or degraded compat fallback. Live smoke created an
active lease, sent ingress traffic through test-1, and verified active
channel correlation plus fallback visibility:
`artifacts/c18z53-service-channel-access-correlation-smoke-result.json`.
- C18Z54 normal-route access correlation is smoke-proven on the existing
C18Z53 backend/admin surface. New smoke creates a temporary direct
`vpn_packets` route intent, injects healthy route-quality heartbeat
telemetry, issues a service-channel lease that selects the normal primary
route, sends ingress traffic, and verifies the access telemetry active
channel row is `ready`, not compat fallback, with `route_feedback_status`
`healthy`, rolling quality counters, and last send duration:
`artifacts/c18z54-service-channel-normal-route-access-smoke-result.json`.
- C18Z55 degraded normal-route access correlation is smoke-proven on the same
backend/admin surface. The smoke first issues a lease on a normal primary
`vpn_packets` route, then injects degraded/fenced route-quality heartbeat
feedback for that already-selected route. Access telemetry correctly reports
the active channel as `ready` and `force_compat_fallback=false`, while route
feedback is `fenced`, rolling failure/drop/slow counters are visible, and the
aggregate access status becomes `degraded` because `degraded_route_count > 0`:
`artifacts/c18z55-service-channel-degraded-route-access-smoke-result.json`.
- C18Z56 active-channel remediation diagnostics are implemented. Backend
`rap-backend:fabric-service-channel-0.2.237` is built/deployed on
docker-test; node-agent remains `0.2.235`. Active access telemetry channel
rows now include `remediation_action`, `remediation_reason`,
`remediation_route_id`, `remediation_route_status`, and an operator hint.
Decisions distinguish explicit compat fallback, degraded/fenced normal
route with an authorized alternate (`prefer_alternate_route`), degraded/fenced
route needing rebuild (`rebuild_route`), and healthy route (`none`).
Web-admin shows the remediation action in the `Service-channel access`
active-channel table. C18Z55 smoke now verifies
`remediation_action=rebuild_route`; backend unit coverage verifies the
alternate-route remediation branch.
- C18Z56 alternate-route remediation is also live-smoke-proven. New smoke
creates primary and authorized alternate `vpn_packets` routes, issues a lease
while primary is still healthy/selected, then injects fenced feedback for the
selected primary. Access telemetry keeps the active channel on the normal
route with `force_compat_fallback=false`, reports `route_feedback_status`
`fenced`, and recommends `remediation_action=prefer_alternate_route` with the
alternate route id/status; `degraded_fallback_channel_count` stays zero:
`artifacts/c18z56-service-channel-alternate-remediation-smoke-result.json`.
- C18Z57 bounded remediation command contract is implemented. Backend
`rap-backend:fabric-service-channel-0.2.238` is built/deployed on
docker-test; node-agent remains `0.2.235`. Active access telemetry channel
rows now include `remediation_command` for non-noop remediation actions, with
schema version, deterministic command id, action, channel/resource/service,
entry/exit, primary route, replacement route when present, reason/operator
hint, issued time, and a bounded TTL capped to the lease lifetime. Web-admin
marks remediation rows with `cmd` when this machine-readable command is
present. Live smoke proves a fenced selected primary route with an authorized
alternate emits a `prefer_alternate_route` command pointing at the alternate:
`artifacts/c18z57-service-channel-remediation-command-smoke-result.json`.
- C18Z58 service-channel remediation command consumption is implemented.
Backend `rap-backend:fabric-service-channel-0.2.239` and node-agent
`rap-node-agent:0.2.237` are built/deployed on docker-test (`test-1/2/3`).
Backend now projects active `remediation_command` items into node-scoped
synthetic mesh config as `service_channel_remediation_commands`. Node-agent
parses those commands and turns `prefer_alternate_route` into an explicit
route-manager `applied` decision with source
`service_channel_remediation_command`, so an active channel that still
presents the old primary route can be routed through the replacement route.
Web-admin node details show remediation-command count/table in the Mesh tab.
Live smoke proves access telemetry, synthetic config projection, and
node-agent route-manager consumption:
`artifacts/c18z58-service-channel-remediation-apply-smoke-result.json`.
- C18Z59 active remediation traffic proof is smoke-proven on the same
backend/node-agent images with production forwarding enabled on docker-test
`test-1/2/3`. The smoke sends service-channel traffic before/after the
remediation command is consumed, then verifies runtime heartbeat evidence:
`last_selected_route_id` and flow-scheduler `last_route_id` move to the
replacement route, `send_successes=1`, `send_failures=0`,
`send_fallback_local=0`, and no degraded compat fallback is recommended.
Result:
`artifacts/c18z59-service-channel-remediation-traffic-smoke-result.json`.
- C18Z60 multi-flow remediation traffic proof is smoke-proven. The smoke sends
a batch of twelve IPv4/TCP-like packets that classify into multiple
independent VPN flow channels after the remediation command is consumed.
Runtime heartbeat evidence shows the replacement route selected, at least two
flow-scheduler channels on that route, no local/compat fallback, no flow
drops, and no route send failures. Result:
`artifacts/c18z60-service-channel-remediation-multiflow-smoke-result.json`.
- C18Z61 pressure remediation traffic proof is smoke-proven. The smoke sends a
batch of 128 IPv4/TCP-like packets after remediation; runtime evidence shows
32 replacement-route flow stats, scheduler high-watermark 5,
max-in-flight 4, `send_fallback_local=0`, route failures 0, and flow/scheduler
drops 0. Result:
`artifacts/c18z61-service-channel-remediation-pressure-smoke-result.json`.
- C18Z62 service-channel QoS class wiring is implemented in node-agent and
live-smoke-proven on docker-test image `rap-node-agent:0.2.238-c18z62`.
Service-channel HTTP ingress accepts neutral `X-RAP-Traffic-Class`
(`control`, `interactive`, `reliable`, `bulk`, `droppable`) and the flow
scheduler keeps distinct traffic-class channel ids/stats while preserving the
old default bulk channel ids. Unit tests prove priority ordering
`control > interactive > reliable > bulk > droppable`; live smoke proves a
bulk 128-packet pressure batch plus an interactive packet both move through
the remediation replacement route with no local/compat fallback, drops, or
route failures. Result:
`artifacts/c18z62-service-channel-remediation-qos-smoke-result.json`.
- C18Z63 concurrent QoS isolation is implemented and unit-proven. A controlled
runtime test holds a bulk traffic-class send in-flight with a blocking
production transport, then sends an independent interactive traffic-class
packet through the same ingress; the interactive send completes before the
bulk release, with `MaxInFlight >= 2`, traffic-class-specific stats, no drops,
and no failures. This proves the shared Fabric Service Channel runtime does
not globally serialize interactive/control-style traffic behind bulk work.
Artifact:
`artifacts/c18z63-service-channel-concurrent-qos-go-test.jsonl`.
- C18Z64 traffic-class telemetry aggregation is implemented and live-proven on
docker-test image `rap-node-agent:0.2.239-c18z64`. `rap.fabric_flow_scheduler.v1`
snapshots now include `traffic_class_counts`, giving backend/admin/diagnostics
a compact count of active flow channels per traffic class without scanning
every channel stat. Unit coverage proves the counts for explicit
control/interactive/bulk classes and for the concurrent bulk+interactive
isolation case. Live smoke re-ran the QoS path on `test-1/2/3`; latest
heartbeat snapshot showed `traffic_class_counts` `bulk=32`,
`interactive=12`, drops 0. Artifacts:
`artifacts/c18z64-service-channel-traffic-class-telemetry-go-test.jsonl`,
`artifacts/c18z64-service-channel-traffic-class-telemetry-live-smoke-result.json`,
and
`artifacts/c18z64-service-channel-traffic-class-telemetry-live-snapshot.json`.
- C18Z65/C18Z66 backend/admin QoS diagnostics are implemented and live-proven.
Backend `rap-backend:fabric-service-channel-0.2.241-c18z66` is deployed on
docker-test and projects runtime `traffic_class_counts`, flow channel count,
max in-flight, dropped, and high-watermark from node heartbeats into
`GET /fabric/service-channels/access-telemetry` at node, active-channel, and
cluster aggregate levels. Web-admin Service-channel access shows flow QoS
chips/rows for cluster totals, active channels, and nodes. Live API aggregate
result showed `bulk=32`, `interactive=12`, `flow_channel_count=44`,
`flow_max_in_flight=4`. Artifacts:
`artifacts/c18z65-service-channel-access-qos-telemetry-api-result.json`,
`artifacts/c18z65-service-channel-access-qos-telemetry-smoke-result.json`,
and
`artifacts/c18z66-service-channel-access-qos-aggregate-api-result.json`.
- C18Z67 live concurrent QoS proof is implemented and smoke-proven against
docker-test backend `rap-backend:fabric-service-channel-0.2.241-c18z66` and
node-agent image `rap-node-agent:0.2.239-c18z64`. The smoke pushes six
parallel bulk service-channel HTTP packet requests while an interactive
traffic-class request is injected through the same entry path after
remediation. Run `c18z67-20260508-213452` accepted all 6 bulk requests,
forwarded 3072 post-remediation packets, completed the interactive request in
132 ms, observed 32 bulk and 12 interactive replacement-route flow stats, and
kept local/compat fallback, route failures, flow drops, and scheduler drops
at 0. Artifact:
`artifacts/c18z67-service-channel-concurrent-qos-live-smoke-result.json`.
- C18Z68 service-channel flow-health guard is implemented and deployed on
docker-test as `rap-backend:fabric-service-channel-0.2.242-c18z68`, with
web-admin rebuilt/deployed. Access telemetry now projects
`flow_health_status` and `flow_health_reason` at cluster, node, and
active-channel levels from traffic-class counts, queue pressure, flow drops,
compat fallback, route-quality failures/drops/slow samples, and route send
latency. Web-admin shows explicit flow-health chips beside flow QoS so
sustained bulk pressure, degraded latency, fallback, and drops are visible
before adding user services. Verification passed:
`go test ./internal/modules/cluster`, web-admin `npm run build`, updated
C18Z67 live smoke against backend `0.2.242-c18z68`, and live API artifact
`artifacts/c18z68-service-channel-flow-health-api-result.json`.
- C18Z69 node-side adaptive backpressure is implemented and deployed on
docker-test image `rap-node-agent:0.2.243-c18z69` for `test-1/2/3`.
`FabricFlowScheduler` now calculates per-traffic-class
`recommended_parallel_windows` and reports `adaptive_backpressure_active` /
`adaptive_backpressure_reason` in runtime heartbeat snapshots. Bulk and
droppable classes are reduced first under pressure, reliable is reduced
moderately, while control/interactive keep their full window unless their own
class has drops/failures/slow samples. Live C18Z69 smoke wraps the C18Z67
pressure path and verified `bulk=1`, `droppable=1`, `reliable=3`,
`interactive=4`, `control=4`, `bulk=32`, `interactive=12`, high-watermark
72, max-in-flight 4, drops 0, and
`bulk_window_reduced_to_protect_interactive`. Artifacts:
`artifacts/c18z67-service-channel-concurrent-qos-live-smoke-result.json` and
`artifacts/c18z69-service-channel-adaptive-backpressure-smoke-result.json`.
- C18Z70 backend/admin adaptive backpressure visibility is implemented and
deployed on docker-test as
`rap-backend:fabric-service-channel-0.2.244-c18z70`; web-admin is rebuilt and
deployed. Access telemetry now projects node-agent
`recommended_parallel_windows`, `adaptive_backpressure_active`, and
`adaptive_backpressure_reason` at cluster, node, and active-channel levels.
Cluster aggregation uses the minimum non-zero recommended window per class,
so the operator sees the most conservative active runtime limit. Web-admin
shows adaptive windows next to flow health and flow QoS. Live API returned
`adaptive=true`, reason `bulk_window_reduced_to_protect_interactive`, and
windows `bulk=1`, `droppable=1`, `reliable=3`, `interactive=4`,
`control=4`. Verification passed: `go test ./internal/modules/cluster`,
web-admin `npm run build`, C18Z69 live smoke, and
`artifacts/c18z70-service-channel-adaptive-telemetry-api-result.json`.
- C18Z71 adaptive policy contract is implemented and deployed on docker-test as
`rap-backend:fabric-service-channel-0.2.245-c18z71` with node-agent image
`rap-node-agent:0.2.245-c18z71` on `test-1/2/3`. Backend exposes audited
`GET/PUT /clusters/{clusterID}/fabric/service-channels/adaptive-policy` for
max parallel window, queue/bulk pressure thresholds, and per-class windows.
The effective policy is embedded in signed node synthetic config and
node-agent runtime heartbeat snapshots now report
`adaptive_policy_fingerprint`. The scheduler consumes the policy at runtime:
default policy preserves the C18Z69 behavior, while the C18Z71 live smoke
proved an operator policy can raise max window to 6 and bulk pressure window
to 2 while keeping interactive/control at 6. During smoke, a signed synthetic
config hash mismatch was found and fixed by preserving adaptive policy
provenance fields in the node-agent client model. Verification passed:
`go test ./internal/modules/cluster`,
`go test ./cmd/rap-node-agent ./internal/mesh ./internal/vpnruntime ./internal/client ./internal/config`,
web-admin `npm run build`, C18Z71 live smoke, and C18Z69 regression smoke.
Artifacts:
`artifacts/c18z71-service-channel-adaptive-policy-smoke-result.json` and
`artifacts/c18z69-service-channel-adaptive-backpressure-smoke-result.json`.
- C18Z72 service-channel pool/failover policy contract is implemented and
deployed on docker-test as
`rap-backend:fabric-service-channel-0.2.246-c18z72`; node-agent remains
`rap-node-agent:0.2.245-c18z71` on `test-1/2/3`. Backend exposes audited
`GET/PUT /clusters/{clusterID}/fabric/service-channels/pool-policy` for
entry/exit pool constraints, preferred entry/exit, selection strategy,
route/entry/exit failover modes, compat fallback allowance, and sticky
session mode. Lease issuance now applies the effective policy before route
selection, constrains `entry_pool`/`exit_pool`, chooses policy preferred
nodes when present, embeds `pool_policy` provenance in the lease, and signs
it into `rap.fabric_service_channel_lease_authority.v1`. Web-admin API/types
know the new policy contract. Verification passed:
`go test ./internal/modules/cluster`, web-admin `npm run build`,
C18Z72 live smoke, and C18Z71 regression smoke. Artifact:
`artifacts/c18z72-service-channel-pool-policy-smoke-result.json`.
- C18Z73 pool-policy remediation guard and telemetry is implemented and
deployed on docker-test as
`rap-backend:fabric-service-channel-0.2.247-c18z73` with node-agent image
`rap-node-agent:0.2.247-c18z73` on `test-1/2/3`; web-admin is rebuilt and
deployed. Active access telemetry now projects the signed
`pool_policy_fingerprint`, remediation guard status/reason, and guarded
remediation commands. Backend remediation rejects an alternate route outside
the signed entry/exit lease pools and emits `rebuild_route` instead of
`prefer_alternate_route`; node-agent defensively ignores guarded rejected
remediation commands before route-manager application. Web-admin shows guard
chips in access telemetry and node synthetic-config remediation rows.
Verification passed:
`go test ./internal/modules/cluster ./internal/platform/runtime ./internal/modules/nodeagent`,
`go test ./cmd/rap-node-agent ./internal/mesh ./internal/vpnruntime ./internal/config`,
web-admin `npm run build`, C18Z73 live smoke, C18Z72 regression smoke, and
C18Z71/C18Z67 live regression smoke. Artifacts:
`artifacts/c18z73-service-channel-pool-policy-remediation-guard-smoke-result.json`,
`artifacts/c18z72-service-channel-pool-policy-smoke-result.json`,
`artifacts/c18z71-service-channel-adaptive-policy-smoke-result.json`, and
`artifacts/c18z67-service-channel-concurrent-qos-live-smoke-result.json`.
- C18Z74 service-channel remediation execution visibility is implemented and
deployed on docker-test as
`rap-backend:fabric-service-channel-0.2.248-c18z74` with node-agent image
`rap-node-agent:0.2.248-c18z74` on `test-1/2/3`; web-admin is rebuilt and
deployed. Active access telemetry now computes
`remediation_execution_status`, reason, generation, and observed timestamp
by correlating active remediation commands with the entry node's latest
route-manager heartbeat. `prefer_alternate_route` commands show
`waiting_node_apply` until the node reports a matching route-manager decision
and then `applied`; guarded commands show `rejected_by_policy_guard`; bounded
`rebuild_route` commands show `pending_rebuild_request`. The execution state
is copied into the machine-readable remediation command and displayed in
web-admin access telemetry / node synthetic remediation rows. Verification
passed:
`go test ./internal/modules/cluster ./internal/platform/runtime ./internal/modules/nodeagent`,
`go test ./cmd/rap-node-agent ./internal/mesh ./internal/vpnruntime ./internal/config`,
web-admin `npm run build`, C18Z74 live smoke, C18Z73 regression smoke, and
C18Z72 regression smoke. Artifacts:
`artifacts/c18z74-service-channel-remediation-execution-smoke-result.json`,
`artifacts/c18z67-service-channel-concurrent-qos-live-smoke-result.json`,
`artifacts/c18z73-service-channel-pool-policy-remediation-guard-smoke-result.json`,
and `artifacts/c18z72-service-channel-pool-policy-smoke-result.json`.
- C18Z75 durable remediation rebuild intent foundation is implemented and
deployed on docker-test as
`rap-backend:fabric-service-channel-0.2.249-c18z75`; node-agent remains
`rap-node-agent:0.2.248-c18z74` on `test-1/2/3`. When a node fetches
synthetic config containing a `rebuild_route` remediation command, backend
now records a durable row in the existing
`fabric_service_channel_route_rebuild_attempts` ledger with
`rebuild_status=requested` / `outcome=rebuild_requested`, or
`rebuild_status=rejected` / `outcome=policy_guard_rejected` when the pool
policy guard rejects it. Access telemetry correlates that ledger row back to
the active channel and reports `rebuild_request_recorded` or
`rebuild_request_rejected` in `remediation_execution_status`. The C18Z75
smoke isolates a route pair, proves `rebuild_route`, fetches synthetic
config to persist the intent, verifies the rebuild ledger row, and verifies
access telemetry reports the recorded execution state. Verification passed:
`go test ./internal/modules/cluster ./internal/platform/runtime ./internal/modules/nodeagent`,
`go test ./cmd/rap-node-agent ./internal/mesh ./internal/vpnruntime ./internal/config`,
web-admin `npm run build`, C18Z75 live smoke, C18Z73 regression smoke, and
C18Z72 regression smoke. Artifacts:
`artifacts/c18z75-service-channel-rebuild-intent-smoke-result.json`,
`artifacts/c18z73-service-channel-pool-policy-remediation-guard-smoke-result.json`,
and `artifacts/c18z72-service-channel-pool-policy-smoke-result.json`.
- C18Z76 service-channel rebuild-route node acknowledgement is implemented and
deployed on docker-test as
`rap-backend:fabric-service-channel-0.2.250-c18z76` with node-agent image
`rap-node-agent:0.2.250-c18z76` on `test-1/2/3`. Node-agent now consumes
allowed `rebuild_route` remediation commands as route-manager decisions with
`rebuild_status=pending_degraded_fallback` and
`decision_source=service_channel_remediation_command`; guarded commands are
still ignored. Backend access telemetry correlates this route-manager
acknowledgement with the durable ledger intent and reports
`rebuild_request_recorded_node_pending`. Verification passed:
`go test ./internal/modules/cluster ./internal/platform/runtime ./internal/modules/nodeagent`,
`go test ./cmd/rap-node-agent ./internal/agent ./internal/mesh ./internal/vpnruntime ./internal/config`,
C18Z76 live smoke, C18Z75 regression smoke, and C18Z74/C18Z67 regression
smoke. Artifacts:
`artifacts/c18z76-service-channel-rebuild-node-pending-smoke-result.json`,
`artifacts/c18z75-service-channel-rebuild-intent-smoke-result.json`,
`artifacts/c18z74-service-channel-remediation-execution-smoke-result.json`,
and `artifacts/c18z67-service-channel-concurrent-qos-live-smoke-result.json`.
- C18Z77 service-channel rebuild planner resolution is implemented and
deployed on docker-test as
`rap-backend:fabric-service-channel-0.2.251-c18z77` with node-agent image
`rap-node-agent:0.2.251-c18z77` on `test-1/2/3`. Backend now resolves
durable `rebuild_route` remediation requests during node-scoped synthetic
config generation: it keeps lease pool-policy guardrails, records
`applied` / `replacement_selected` when a signed-pool-valid alternate route
exists, records `no_alternate` when no safe alternate exists, records
`deferred_by_policy` when the active lease cannot authorize the replacement,
and records `expired` for stale commands. When a replacement is applied, the
same command id is projected as a route-manager decision so node-agent can
consume the resolved planner decision without duplicating the raw command.
Access telemetry reports planner states such as `rebuild_request_applied`
and `rebuild_request_no_alternate`. Verification passed:
`go test ./internal/modules/cluster ./internal/platform/runtime ./internal/modules/nodeagent`,
`go test ./cmd/rap-node-agent ./internal/agent ./internal/mesh ./internal/vpnruntime ./internal/config`,
C18Z77 live smoke, C18Z75 regression smoke, and C18Z74/C18Z67 regression
smoke. Artifacts:
`artifacts/c18z77-service-channel-rebuild-planner-resolution-smoke-result.json`,
`artifacts/c18z75-service-channel-rebuild-intent-smoke-result.json`,
`artifacts/c18z74-service-channel-remediation-execution-smoke-result.json`,
and `artifacts/c18z67-service-channel-concurrent-qos-live-smoke-result.json`.
- C18Z78 service-channel rebuild planner applied-branch visibility is
implemented and deployed on docker-test as
`rap-backend:fabric-service-channel-0.2.252-c18z78` with node-agent image
`rap-node-agent:0.2.252-c18z78` on `test-1/2/3`; web-admin is rebuilt and
deployed to `rap_web_admin`. The admin access-telemetry execution column and
node synthetic remediation rows now render planner outcomes with explicit
labels and tones: `rebuild_request_applied` is good,
`rebuild_request_recorded(_node_pending)`, `rebuild_request_no_alternate`,
and `rebuild_request_deferred_by_policy` are warning states, while rejected
or expired requests are bad states. The C18Z78 live smoke proves the applied
planner branch: a primary route is leased first, the primary route is then
degraded, an alternate route is added after the lease, synthetic config
fetch resolves the existing `rebuild_route` command to `applied` /
`replacement_selected`, and access telemetry reports
`rebuild_request_applied`. Verification passed:
`go test ./internal/modules/cluster ./internal/platform/runtime ./internal/modules/nodeagent`,
`go test ./cmd/rap-node-agent ./internal/agent ./internal/mesh ./internal/vpnruntime ./internal/config`,
web-admin `npm run build`, C18Z78 live smoke, C18Z77 regression smoke, and
C18Z74/C18Z67 regression smoke. Artifacts:
`artifacts/c18z78-service-channel-rebuild-planner-applied-smoke-result.json`,
`artifacts/c18z77-service-channel-rebuild-planner-resolution-smoke-result.json`,
`artifacts/c18z74-service-channel-remediation-execution-smoke-result.json`,
and `artifacts/c18z67-service-channel-concurrent-qos-live-smoke-result.json`.
- C18Z79 service-channel planner-to-runtime loop proof is implemented and
deployed on docker-test as
`rap-backend:fabric-service-channel-0.2.253-c18z79` with node-agent image
`rap-node-agent:0.2.253-c18z79` on `test-1/2/3`. The new live smoke extends
the C18Z78 applied branch: after planner resolves the existing
`rebuild_route` command to `applied` / `replacement_selected`, the entry node
reports a route-manager decision for the same `rebuild_request_id`, reports
transition `applied_rebuild`, and live service-channel packet ingress selects
the replacement route with no local/compat fallback, route failures, or flow
drops. Verification passed:
`go test ./internal/modules/cluster ./internal/platform/runtime ./internal/modules/nodeagent`,
`go test ./cmd/rap-node-agent ./internal/agent ./internal/mesh ./internal/vpnruntime ./internal/config`,
C18Z79 live smoke, C18Z78 and C18Z77 sequential regressions, and C18Z67
concurrent QoS regression. Artifact:
`artifacts/c18z79-service-channel-planner-runtime-loop-smoke-result.json`.
- C18Z80 service-channel sustained post-rebuild pressure proof is implemented
and deployed on docker-test as
`rap-backend:fabric-service-channel-0.2.254-c18z80` with node-agent image
`rap-node-agent:0.2.254-c18z80` on `test-1/2/3`. The new live smoke keeps the
C18Z79 planner-applied loop, then sends five post-rebuild bursts of mixed
`interactive`, `bulk`, and `reliable` VPN packet batches. It proves every
burst is accepted by the service-channel runtime, every burst reports the
replacement route, the stale primary is not reselected, and fallback,
route-failure, flow-drop, and scheduler-drop deltas stay zero from the
pre-pressure baseline. Smoke route hygiene was tightened: C18Z67 now disables
pre-existing active `vpn_packets` intents for its entry/exit pair, and
C18Z79/C18Z80 expire their temporary primary/alternate intents after a
successful run. Verification passed:
`go test ./internal/modules/cluster ./internal/platform/runtime ./internal/modules/nodeagent`,
`go test ./cmd/rap-node-agent ./internal/agent ./internal/mesh ./internal/vpnruntime ./internal/config`,
C18Z80 live smoke, C18Z79 regression smoke, and C18Z67 concurrent QoS
regression. Artifact:
`artifacts/c18z80-service-channel-post-rebuild-pressure-smoke-result.json`.
- C18Z81 service-channel replacement-degradation recovery proof is implemented
and deployed on docker-test as
`rap-backend:fabric-service-channel-0.2.255-c18z81` with node-agent image
`rap-node-agent:0.2.255-c18z81` on `test-1/2/3`. The new live smoke proves
the negative branch after C18Z80: once the initial replacement is applied and
used, a generation-valid fenced feedback report for that replacement causes
the Control Plane to select a new safe recovery route. Live traffic then
moves to the recovery route, the degraded replacement is not reselected, and
fallback, route-failure, flow-drop, and scheduler-drop deltas stay zero for
the recovery send. The smoke also documents an important guardrail: stale
route-generation feedback must not trigger recovery. C18Z67/C18Z79 were
tightened to check per-run counter deltas rather than cumulative runtime
counters. Verification passed:
`go test ./internal/modules/cluster ./internal/platform/runtime ./internal/modules/nodeagent`,
`go test ./cmd/rap-node-agent ./internal/agent ./internal/mesh ./internal/vpnruntime ./internal/config`,
C18Z81 live smoke, C18Z80 regression smoke, C18Z79 regression smoke, and
C18Z67 concurrent QoS regression. Artifact:
`artifacts/c18z81-service-channel-replacement-degradation-recovery-smoke-result.json`.
- C18Z82 service-channel no-safe-recovery proof is implemented and deployed on
docker-test as `rap-backend:fabric-service-channel-0.2.256-c18z82` with
node-agent image `rap-node-agent:0.2.256-c18z82` on `test-1/2/3`. The new
live smoke proves the branch where the original primary is degraded, the
replacement is applied and used, then that replacement reports
generation-valid fenced feedback while no new safe recovery route exists.
Node-scoped synthetic config reports
`service_channel_feedback_no_alternate` with
`pending_degraded_fallback`; score reasons include
`no_unfenced_alternate_route` and
`backend_relay_degraded_fallback_until_rebuild`, so the Control Plane exposes
an explicit degraded/no-alternate state instead of silently sticking to a bad
replacement. Verification passed:
`go test ./internal/modules/cluster ./internal/platform/runtime ./internal/modules/nodeagent`,
`go test ./cmd/rap-node-agent ./internal/agent ./internal/mesh ./internal/vpnruntime ./internal/config`,
C18Z82 live smoke, C18Z81 recovery regression, C18Z80 pressure regression,
and C18Z67 concurrent QoS regression. Artifact:
`artifacts/c18z82-service-channel-no-safe-recovery-smoke-result.json`.
- C18Z83 service-channel access-telemetry no-safe projection is implemented and
deployed on docker-test as `rap-backend:fabric-service-channel-0.2.257-c18z83`;
node-agent remains `rap-node-agent:0.2.256-c18z82` on `test-1/2/3`, and
web-admin is rebuilt/deployed to `rap_web_admin`. Active access telemetry
channels now expose route-decision source, route id, replacement route id,
rebuild status/reason/generation, and score reasons. Web-admin shows a
dedicated `decision` column in the active-channel table. The live smoke
proves no-safe recovery is visible through access telemetry as
`service_channel_feedback_no_alternate` /
`pending_degraded_fallback`, while durable ledger state can still report
`rebuild_request_no_alternate`. Verification passed:
`go test ./internal/modules/cluster ./internal/platform/runtime ./internal/modules/nodeagent`,
web-admin `npm run build`, and C18Z83 live smoke. Artifact:
`artifacts/c18z83-service-channel-access-telemetry-no-safe-smoke-result.json`.
- C18Z84 service-channel access-decision aggregate proof is implemented and
deployed on docker-test as `rap-backend:fabric-service-channel-0.2.258-c18z84`;
node-agent remains `rap-node-agent:0.2.256-c18z82` on `test-1/2/3`, and
web-admin is rebuilt/deployed to `rap_web_admin`. Access telemetry now
exposes aggregate route-decision counters:
`route_decision_channel_count`, `replacement_decision_count`,
`applied_rebuild_decision_count`, `recovery_decision_count`, and
`no_safe_recovery_decision_count`. Web-admin summary chips show these counts,
and no-safe route decisions now prioritize the aggregate reason
`active_channels_no_safe_recovery` over generic missing access-report noise.
Verification passed:
`go test ./internal/modules/cluster ./internal/platform/runtime ./internal/modules/nodeagent`,
web-admin `npm run build`, C18Z84 live smoke, and C18Z83 regression smoke.
Artifact:
`artifacts/c18z84-service-channel-access-decision-aggregate-smoke-result.json`.
- C18Z85 service-channel access-decision incident projection is implemented and
deployed on docker-test as `rap-backend:fabric-service-channel-0.2.259-c18z85`;
node-agent remains `rap-node-agent:0.2.256-c18z82` on `test-1/2/3`, and
web-admin is rebuilt/deployed to `rap_web_admin`. Rebuild health summary now
carries access decision counts and prioritizes
`inspect_access_no_safe_recovery_route_pool_and_signed_policy` when no-safe
is active. Rebuild incidents now include `incident_source=access_decision`
entries with channel id and operator-facing severity/action, including
`access_no_safe_recovery` as a bad incident. Verification passed:
`go test ./internal/modules/cluster ./internal/platform/runtime ./internal/modules/nodeagent`,
web-admin `npm run build`, C18Z85 live smoke, and C18Z84 regression smoke.
Artifact:
`artifacts/c18z85-service-channel-access-decision-incident-smoke-result.json`.
- C18Z86 service-channel access-decision silence/acknowledgement is
implemented and deployed on docker-test as
`rap-backend:fabric-service-channel-0.2.261-c18z86`; node-agent remains
`rap-node-agent:0.2.256-c18z82` on `test-1/2/3`, and web-admin is
rebuilt/deployed to `rap_web_admin`. Rebuild alert silence requests now carry
`incident_source` and `channel_id`; `incident_source=access_decision`
no-safe incidents require `channel_id` and are stored with channel-scoped
route keys. Rebuild health and incident lists apply those silences, so an
acknowledged current-generation access no-safe incident is silenced and no
longer contributes to active bad count. Generation-change resurfacing is
covered in unit tests; live smoke proves the channel-scoped silence path.
Verification passed:
`go test ./internal/modules/cluster ./internal/platform/runtime ./internal/modules/nodeagent`,
web-admin `npm run build`, C18Z86 live smoke, and C18Z85 regression smoke.
Artifact:
`artifacts/c18z86-service-channel-access-decision-silence-smoke-result.json`.
- C18Z87 service-channel access-decision silence management is implemented and
deployed on docker-test as `rap-backend:fabric-service-channel-0.2.262-c18z87`;
node-agent remains `rap-node-agent:0.2.256-c18z82` on `test-1/2/3`, and
web-admin is rebuilt/deployed to `rap_web_admin`. Backend now exposes active
rebuild alert silences, enriches access-decision silences with
`incident_source`, `channel_id`, and `display_route_id`, and supports
unsilence by id. Web-admin shows an `Active rebuild silences` table with an
`unsilence` action. The live smoke proves the operator path:
access no-safe incident -> silence -> active silence listed -> unsilence ->
active bad incident restored. Verification passed:
`go test ./internal/modules/cluster ./internal/platform/runtime ./internal/modules/nodeagent`,
web-admin `npm run build`, C18Z87 live smoke, and C18Z86 regression smoke.
Artifact:
`artifacts/c18z87-service-channel-access-decision-unsilence-smoke-result.json`.
- C18Z88 service-channel access-decision resurface proof is implemented and
deployed on docker-test as `rap-backend:fabric-service-channel-0.2.263-c18z88`;
node-agent remains `rap-node-agent:0.2.256-c18z82` on `test-1/2/3`, and
web-admin is rebuilt/deployed to `rap_web_admin`. Access-decision incidents
now include resurface details (`alert_resurfaced_from_silence_id`,
`alert_resurfaced_previous_generation`, and
`alert_resurfaced_previous_until`) when a previously acknowledged
access-decision incident changes generation/route/channel and becomes active
again. Web-admin shows the previous generation/expiry beside resurfaced
incidents. The live smoke proves access no-safe -> silence current generation
-> route-decision generation changes -> incident resurfaces as active bad
with previous-generation metadata preserved. Verification passed:
`go test ./internal/modules/cluster ./internal/platform/runtime ./internal/modules/nodeagent`,
web-admin `npm run build`, C18Z88 live smoke, and C18Z87 regression smoke.
Artifact:
`artifacts/c18z88-service-channel-access-decision-resurface-smoke-result.json`.
- C18Z89 service-channel access-decision resurface action loop is implemented
and deployed on docker-test as `rap-backend:fabric-service-channel-0.2.264-c18z89`;
node-agent remains `rap-node-agent:0.2.256-c18z82` on `test-1/2/3`, and
web-admin is rebuilt/deployed to `rap_web_admin`. Resurfaced
access-decision incidents now include `alert_resurfaced_cause`,
`alert_resurfaced_previous_route_id`, and
`alert_resurfaced_previous_channel_id`. Web-admin shows the cause beside the
resurfaced action text. The live smoke proves the operator path:
access no-safe -> silence current generation -> generation changes and
resurfaces -> active-channel decision context matches the incident ->
re-acknowledge current generation -> incident returns to silenced state.
Verification passed:
`go test ./internal/modules/cluster ./internal/platform/runtime ./internal/modules/nodeagent`,
web-admin `npm run build`, C18Z89 live smoke, and C18Z88 regression smoke.
Artifact:
`artifacts/c18z89-service-channel-access-decision-resurface-action-smoke-result.json`.
- C18Z90 service-channel production data-plane contract is implemented and
deployed on docker-test as `rap-backend:fabric-service-channel-0.2.265-c18z90`;
node-agent remains `rap-node-agent:0.2.256-c18z82` on `test-1/2/3`, and
web-admin is rebuilt/deployed to `rap_web_admin`. Service-channel leases now
include a signed `data_plane` contract in the lease, authority payload,
introspection response, and lease-maintenance/admin list. The contract
declares backend API as control-plane transport, fabric service channel over
fabric routes as working/steady-state data transport, backend relay as
degraded fallback only, production forwarding required, and service-neutral
protocol-agnostic logical flow isolation. Web-admin shows data-plane/fallback
policy in service-channel leases. Verification passed:
`go test ./internal/modules/cluster ./internal/platform/runtime ./internal/modules/nodeagent`,
web-admin `npm run build`, C18Z90 live smoke, and C18Z89 regression smoke.
Artifact:
`artifacts/c18z90-service-channel-data-plane-contract-smoke-result.json`.
- C18Z91 node-agent data-plane contract consumption is implemented and
deployed on docker-test as `rap-node-agent:0.2.266-c18z91` on `test-1/2/3`
with backend still `rap-backend:fabric-service-channel-0.2.265-c18z90`.
Service-channel VPN packet ingress now parses signed/introspected
`data_plane`, validates the production contract, applies the preferred fabric
route, logs data-plane mode/transports/backend-relay policy/logical-flow
mode, and reports `data_plane_contract` plus last transport/policy fields in
heartbeat access telemetry. Verification passed:
`go test ./cmd/rap-node-agent ./internal/agent ./internal/mesh ./internal/vpnruntime ./internal/config`,
backend cluster tests, web-admin build, C18Z91 live smoke, and C18Z90
regression smoke. Artifact:
`artifacts/c18z91-node-agent-data-plane-contract-enforcement-smoke-result.json`.
- C18Z92 node-agent backend-fallback policy enforcement is implemented and
deployed on docker-test as `rap-node-agent:0.2.267-c18z92` on `test-1/2/3`.
If a signed data-plane contract has `backend_relay_policy=disabled`, the
service-channel runtime no longer proxies failed/missing fabric-route working
data through backend relay; it returns a visible service unavailable result.
The live smoke temporarily disables compat fallback in pool policy, issues a
no-route lease, verifies `backend_relay_policy=disabled`, posts to test-1,
and proves the node rejects with 503 instead of backend relay. Verification
passed: node-agent tests, C18Z92 live smoke, and C18Z91 regression smoke.
Artifact:
`artifacts/c18z92-node-agent-disabled-compat-fallback-smoke-result.json`.
- C18Z93 access-telemetry data-plane projection is implemented and deployed on
docker-test as `rap-backend:fabric-service-channel-0.2.268-c18z93`;
node-agent remains `rap-node-agent:0.2.267-c18z92` on `test-1/2/3`, and
web-admin is rebuilt/deployed to `rap_web_admin`. Backend access telemetry
now promotes node-reported `data_plane_contract` and last data-plane
mode/working transport/steady-state transport/backend relay policy/logical
flow mode to cluster, node, and active-channel diagnostics. Web-admin shows
summary chips plus channel/node table columns for data-plane adoption and
relay policy. Verification passed:
`go test ./internal/modules/cluster ./internal/platform/runtime ./internal/modules/nodeagent`,
web-admin `npm run build`, C18Z93 live smoke, C18Z92 regression smoke, and
C18Z91 regression smoke. Artifact:
`artifacts/c18z93-access-telemetry-data-plane-contract-smoke-result.json`.
- C18Z94 data-plane contract incident diagnostics are implemented and deployed
on docker-test as `rap-backend:fabric-service-channel-0.2.269-c18z94`;
node-agent remains `rap-node-agent:0.2.267-c18z92` on `test-1/2/3`, and
web-admin is rebuilt/deployed to `rap_web_admin`. Access/rebuild incident
diagnostics now include `incident_source=data_plane_contract` rows for
missing data-plane contract reports after accepted traffic, working/steady
transport mismatches, logical-flow mismatch, disabled backend relay observed,
and degraded/backend-relay policy violations. The smoke now proves disabled
backend relay is emitted as a bad incident with action
`restore_fabric_route_or_change_signed_backend_relay_policy_before_retry`.
Verification passed:
`go test ./internal/modules/cluster ./internal/platform/runtime ./internal/modules/nodeagent`,
web-admin `npm run build`, C18Z94 live smoke, C18Z93 regression smoke, C18Z92
regression smoke, and C18Z91 regression smoke. Artifact:
`artifacts/c18z94-data-plane-contract-incident-smoke-result.json`.
- C18Z95 node-agent blocked-fallback telemetry is implemented and deployed on
docker-test as backend `rap-backend:fabric-service-channel-0.2.270-c18z95`
and node-agent `rap-node-agent:0.2.270-c18z95` on `test-1/2/3`; web-admin is
rebuilt/deployed to `rap_web_admin`. Node-agent now reports
`compat_fallback_blocked`, `fabric_route_send_failure`, and last data-plane
violation status/reason in `fabric_service_channel_access_report`. Backend
access telemetry projects those fields to cluster, node, and active-channel
rows, and `data_plane_contract` incidents distinguish policy-blocked fallback
from real backend relay usage. Verification passed: node-agent tests,
backend tests, web-admin build, C18Z95 live smoke, and C18Z94/C18Z93/C18Z92
regressions. Artifact:
`artifacts/c18z95-node-agent-blocked-fallback-telemetry-smoke-result.json`.
- C18Z96 blocked-fallback rebuild feedback is implemented and deployed on
docker-test as backend `rap-backend:fabric-service-channel-0.2.281-c18z109`;
node-agent remains `rap-node-agent:0.2.270-c18z95` on `test-1/2/3`, and
web-admin remains deployed. Backend now converts heartbeat access reports
with `fabric_route_send_failed_compat_fallback_blocked` into durable fenced
`fabric_service_channel_route_feedback` for the active channel primary route.
The existing route rebuild planner then selects an authorized replacement
route when one exists. Verification passed: backend tests, node-agent tests,
web-admin build, C18Z96 live smoke, and C18Z95/C18Z93 regressions. Artifact:
`artifacts/c18z96-blocked-fallback-rebuild-feedback-smoke-result.json`.
- C18Z97 blocked-fallback feedback dedup is implemented and deployed on
docker-test as backend `rap-backend:fabric-service-channel-0.2.281-c18z109`.
Backend now suppresses repeated access-report-derived route feedback while an
active fenced/degraded observation from `fabric_service_channel_access_report`
already exists for the same cluster, reporter node, route, and service class.
This keeps repeated blocked-fallback send-failure heartbeats from refreshing
the same feedback and churning rebuild attempts. Verification passed:
backend tests, node-agent tests, C18Z97 live smoke, and C18Z96/C18Z95
regressions. Artifact:
`artifacts/c18z97-blocked-fallback-feedback-dedup-smoke-result.json`.
- C18Z98 blocked-fallback rebuild correlation is implemented and deployed on
docker-test as backend `rap-backend:fabric-service-channel-0.2.281-c18z109`;
web-admin is rebuilt/deployed to `rap_web_admin`. Backend now carries the
originating access-report route-feedback identity into replacement decisions
and rebuild-attempt ledger rows: `feedback_observation_id`,
`feedback_source`, feedback observed/expiry times, channel/resource ids, and
data-plane violation status/reason. Web-admin shows this correlation in
Route decisions and Rebuild ledger. Verification passed: backend tests,
node-agent tests, web-admin build, C18Z98 live smoke, and C18Z97/C18Z96/C18Z95
regressions. Artifact:
`artifacts/c18z98-blocked-fallback-rebuild-correlation-smoke-result.json`.
- C18Z99 rebuild correlation filters are implemented and deployed on
docker-test as backend `rap-backend:fabric-service-channel-0.2.281-c18z109`;
web-admin is rebuilt/deployed to `rap_web_admin`. The rebuild-attempt ledger
API now accepts `feedback_source`, `feedback_channel_id`, and
`feedback_violation_status` filters, and web-admin exposes them in the
rebuild ledger filter form. Verification passed: backend tests, node-agent
tests, web-admin build, C18Z99 live smoke, and C18Z98/C18Z97/C18Z96/C18Z95/
C18Z93 regressions. Artifact:
`artifacts/c18z99-rebuild-correlation-filter-smoke-result.json`.
- C18Z100 rebuild-health feedback breakdown is implemented and deployed on
docker-test as backend `rap-backend:fabric-service-channel-0.2.281-c18z109`;
web-admin is rebuilt/deployed to `rap_web_admin`. The rebuild-health summary
now returns `feedback_breakdowns` grouped by feedback source, feedback
channel id, and feedback violation status, with total/good/warn/bad/unknown
counts, active warn/bad counts, silenced count, latest observation time, and
affected reporter nodes/routes. Web-admin shows the breakdown in the Rebuild
health panel. Verification passed: backend tests, node-agent tests,
web-admin build, C18Z100 live smoke, and C18Z99/C18Z98/C18Z97/C18Z96/C18Z95/
C18Z93 regressions. Artifact:
`artifacts/c18z100-rebuild-health-feedback-breakdown-smoke-result.json`.
- C18Z101 rebuild-health feedback drilldown UI is implemented and deployed to
`rap_web_admin`; backend remains
`rap-backend:fabric-service-channel-0.2.281-c18z109`. Web-admin now shows
related incident context on rebuild-health feedback breakdown rows and an
`open ledger` action that switches to deep rebuild ledger with
`feedback_source`, `feedback_channel_id`, and `feedback_violation_status`
prefilled from the selected breakdown. Verification passed: web-admin build
and deployed asset/download checks.
- C18Z102 rebuild-health feedback drilldown audit breadcrumbs are implemented
and deployed on docker-test as backend
`rap-backend:fabric-service-channel-0.2.281-c18z109`; web-admin is rebuilt/
deployed to `rap_web_admin`. The existing rebuild investigation endpoint now
accepts feedback source/channel/violation drilldown payloads and records
`fabric.service_channel_rebuild_feedback_breakdown.investigation_opened`
cluster audit events before web-admin opens the filtered deep rebuild ledger.
Verification passed: backend tests, web-admin build, C18Z102 live smoke, and
C18Z100/C18Z99/C18Z98 regressions. Artifact:
`artifacts/c18z102-rebuild-health-feedback-drilldown-audit-smoke-result.json`.
- C18Z103 Fabric diagnostics drilldown audit visibility is implemented and
deployed to `rap_web_admin`; backend remains
`rap-backend:fabric-service-channel-0.2.281-c18z109`. Web-admin now filters
the loaded cluster audit list for rebuild incident and feedback-breakdown
investigation events and shows recent drilldowns in the Fabric diagnostics
panel with time, source, feedback filters, target reporter/route, actor, and
reason. Verification passed: web-admin build and deployed asset/download
checks.
- C18Z104 focused Fabric audit loading is implemented and deployed on
docker-test as backend `rap-backend:fabric-service-channel-0.2.281-c18z109`;
web-admin is rebuilt/deployed to `rap_web_admin`. The cluster audit API now
accepts repeated or comma-separated `event_type` filters plus `target_type`
filters, and Fabric diagnostics loads recent rebuild incident/feedback
breakdown investigation breadcrumbs with a dedicated filtered request instead
of depending on the generic latest-100 audit list. Verification passed:
backend tests, web-admin build, C18Z104 live smoke, and C18Z102/C18Z100
regressions. Artifact:
`artifacts/c18z104-focused-fabric-audit-smoke-result.json`.
- C18Z105 Fabric drilldown breadcrumb correlation UI is implemented and
deployed to `rap_web_admin`; backend remains
`rap-backend:fabric-service-channel-0.2.281-c18z109`. Recent investigation
rows in Fabric diagnostics now show whether each breadcrumb still matches a
current rebuild-health feedback breakdown or visible rebuild incident, and
provide an `open` action to jump back into the matching filtered ledger path.
Verification passed: web-admin build and deployed asset/download checks.
- C18Z106 server-side Fabric drilldown breadcrumb correlation is implemented
and deployed on docker-test as backend
`rap-backend:fabric-service-channel-0.2.281-c18z109`; web-admin is rebuilt/
deployed to `rap_web_admin`. Focused audit reads with
`correlation=fabric_diagnostics` now return `correlation_hints` with current
diagnostic status and matching rebuild-health feedback breakdown or rebuild
incident when present. Web-admin consumes those hints and keeps local matching
as fallback. The rebuild-health feedback breakdown window is raised to 100
groups after C18Z100 regression exposed the previous cap could hide fresh
failure classes on noisy test history. Verification passed: backend tests,
web-admin build, C18Z106 live smoke, and C18Z104/C18Z100 regressions.
Artifact: `artifacts/c18z106-audit-correlation-hints-smoke-result.json`.
- C18Z107 drilldown breadcrumb summary is implemented and deployed on
docker-test as backend `rap-backend:fabric-service-channel-0.2.281-c18z109`;
web-admin is rebuilt/deployed to `rap_web_admin`. Audit responses now include
compact `audit_summary` aggregates beside `audit_events`; focused Fabric
diagnostics uses them to show counts by current diagnostic status, feedback
source, feedback violation status, correlated/not-visible totals, and latest
time above the Recent investigations rows. Verification passed: backend
tests, web-admin build, C18Z107 live smoke, and C18Z106/C18Z104 regressions.
Artifact: `artifacts/c18z107-audit-correlation-summary-smoke-result.json`.
- C18Z108 dedicated Fabric diagnostics breadcrumbs are implemented and deployed
on docker-test as backend `rap-backend:fabric-service-channel-0.2.281-c18z109`;
web-admin is rebuilt/deployed to `rap_web_admin`. Backend exposes
`GET /clusters/{clusterID}/fabric/service-channels/rebuild-investigations/breadcrumbs`
returning `rebuild_investigation_breadcrumbs` with events and summary, so the
operator Recent investigations workflow no longer overloads the generic
cluster audit endpoint. Verification passed: backend tests, web-admin build,
C18Z108 live smoke, and C18Z107/C18Z106/C18Z100 regressions. Artifact:
`artifacts/c18z108-dedicated-breadcrumbs-smoke-result.json`.
- C18Z109 Fabric diagnostics breadcrumb freshness windows are implemented and
deployed on docker-test as backend
`rap-backend:fabric-service-channel-0.2.281-c18z109`; web-admin is rebuilt/
deployed to `rap_web_admin`. The dedicated breadcrumb endpoint accepts
`current_window_seconds` and `history_window_seconds`, annotates events with
`correlation_hints.breadcrumb_status` (`current`, `stale`, `expired`) plus
age/window seconds, returns current/stale/expired totals, and includes
`counts_by_breadcrumb_status` in summary. Web-admin shows freshness chips and
age in Recent investigations. Verification passed: backend tests, web-admin
build, C18Z109 live smoke, and C18Z108/C18Z107/C18Z106 regressions. Artifact:
`artifacts/c18z109-breadcrumb-freshness-window-smoke-result.json`.
- C19Q Remote Workspace mailbox guardrails are implemented and
runtime-smoke-proven on docker-test. The adapter-session mailbox handoff now
has unit and live coverage for invalid adapter session IDs, unknown sessions,
invalid limits, and bounded `drain=true&limit=N` partial drain semantics.
This remains probe-only and node-local: it does not enable RDP protocol
forwarding, desktop frame transport, Android work, or backend relay behavior.
Verification passed: `go test ./internal/mesh` in `agents/rap-node-agent` and
`scripts/fabric/c19q-remote-workspace-adapter-mailbox-guardrails-smoke.ps1`.
Artifact:
`artifacts/c19q-remote-workspace-adapter-mailbox-guardrails-smoke-result.json`.
- C19R Remote Workspace mailbox long-poll ergonomics are implemented and
runtime-smoke-proven on docker-test. The mailbox endpoint now accepts bounded
`wait_ms`, returns explicit `empty`, `waited`, `wait_timeout`, and `wait_ms`
fields, and wakes when a delayed mailbox event arrives before timeout.
Node-agent image `rap-node-agent:codex-service-supervisor-20260512s` is built
and deployed on `test-1/2/3`. Verification passed:
`go test ./internal/mesh`, C19R live smoke, and C19Q regression smoke.
Artifact:
`artifacts/c19r-remote-workspace-mailbox-long-poll-smoke-result.json`.
- C19S Remote Workspace mailbox telemetry is implemented and
runtime-smoke-proven on docker-test. Workload status and heartbeat telemetry
now expose mailbox read/wait/timeout/empty-read counters plus last mailbox
read metadata, so adapter consumer polling behavior is visible without
enabling desktop frame transport. Node-agent image
`rap-node-agent:codex-service-supervisor-20260512t` is built and deployed on
`test-1/2/3`. Verification passed: `go test ./internal/mesh`, C19S live
smoke, and C19R regression smoke. Artifact:
`artifacts/c19s-remote-workspace-mailbox-telemetry-smoke-result.json`.
- C19T Remote Workspace mailbox consumer checkpoint/ack metadata is implemented
and runtime-smoke-proven on docker-test. The mailbox endpoint now accepts a
validated `consumer_id` and optional `ack_sequence`, returns consumer
checkpoint/ack/lag/read metadata, and keeps bounded per-session node-local
consumer cursor state. Workload status and heartbeat telemetry expose
aggregate/current-session consumer read and ack counters. Node-agent image
`rap-node-agent:codex-service-supervisor-20260512u` is built and deployed on
`test-1/2/3`. Verification passed: `go test ./internal/mesh`, C19T live
smoke, and C19S regression smoke. Artifact:
`artifacts/c19t-remote-workspace-mailbox-consumer-checkpoint-smoke-result.json`.
- C19U Remote Workspace mailbox consumer lifecycle guardrails are implemented
and runtime-smoke-proven on docker-test. Consumers can pass
`reset_consumer=true` with a validated `consumer_id` to clear cursor state
before the current read is recorded. Mailbox responses expose consumer
count/capacity, created/reset/evicted lifecycle flags, and consumer
timestamps; workload status and heartbeat telemetry expose consumer reset and
eviction counters. Node-agent image
`rap-node-agent:codex-service-supervisor-20260512v` is built and deployed on
`test-1/2/3`. Verification passed: `go test ./internal/mesh`, C19U live
smoke, and C19T regression smoke. Artifact:
`artifacts/c19u-remote-workspace-mailbox-consumer-lifecycle-smoke-result.json`.
- C19V Remote Workspace mailbox consumer cursor inspection is implemented and
runtime-smoke-proven on docker-test. Active adapter sessions now expose a
read-only
`/mesh/v1/remote-workspace/adapter-sessions/{adapter_session_id}/mailbox/consumers`
endpoint with bounded cursor snapshots: consumer ids, checkpoint/ack
sequences, lag, read/ack totals, and timestamps. The endpoint is read-only and
does not increment mailbox reads, acks, resets, or drain events. Node-agent
image `rap-node-agent:codex-service-supervisor-20260512w` is built and
deployed on `test-1/2/3`. Verification passed: `go test ./internal/mesh`,
C19V live smoke, and C19U regression smoke. Artifact:
`artifacts/c19v-remote-workspace-mailbox-consumer-snapshot-smoke-result.json`.
- C19W Remote Workspace mailbox cursor-aware resume reads are implemented and
runtime-smoke-proven on docker-test. The mailbox endpoint now accepts
`after_sequence` for non-destructive reads, returns `skipped_count` and
`returned_count`, and long-polls for events newer than the requested sequence.
`after_sequence` with `drain=true` is rejected to keep resume reads separate
from destructive drains. Node-agent image
`rap-node-agent:codex-service-supervisor-20260512x` is built and deployed on
`test-1/2/3`. Verification passed: `go test ./internal/mesh`, C19W live
smoke, and C19V regression smoke. Artifact:
`artifacts/c19w-remote-workspace-mailbox-after-sequence-smoke-result.json`.
- C19X Remote Workspace mailbox consumer-aware resume is implemented and
runtime-smoke-proven on docker-test. Mailbox reads with `consumer_id` can pass
`resume_from=ack|checkpoint`; the node-agent resolves the stored cursor to
`after_sequence` before reading and returns `resume_from`/`resume_sequence`.
Guardrails reject mixing resume with manual `after_sequence`, drain, reset,
missing consumers, or invalid cursor names. Node-agent image
`rap-node-agent:codex-service-supervisor-20260512y` is built and deployed on
`test-1/2/3`. Verification passed: `go test ./internal/mesh`, C19X live
smoke, and C19W regression smoke. Artifact:
`artifacts/c19x-remote-workspace-mailbox-consumer-resume-smoke-result.json`.
- C19Y Remote Workspace mailbox resume telemetry is implemented and
runtime-smoke-proven on docker-test. Workload status and heartbeat telemetry
now expose resume/after-sequence read totals, returned/skipped totals, and the
last resume cursor/sequence/consumer plus returned/skipped counts for
operator diagnostics. Session snapshots include the same per-session resume
counters. Node-agent image
`rap-node-agent:codex-service-supervisor-20260512z` is built and deployed on
`test-1/2/3`. Verification passed: `go test ./internal/mesh`, C19Y live
smoke, C19X source smoke, and C19W regression smoke. Artifact:
`artifacts/c19y-remote-workspace-mailbox-resume-telemetry-smoke-result.json`.
- C19Z Remote Workspace adapter runtime readiness summary is implemented and
runtime-smoke-proven on docker-test. The sink report now includes compact
`adapter_runtime_readiness` diagnostics with session lifecycle state, mailbox
depth, consumer cursor, resume cursor, skipped/returned counts, and
ready/diagnostic status for operator handoff checks. Node-agent image
`rap-node-agent:codex-service-supervisor-20260512z1` is built and deployed on
`test-1/2/3`. Verification passed: `go test ./internal/mesh`, C19Z live
smoke, C19X source smoke, and C19Y regression smoke. Artifact:
`artifacts/c19z-remote-workspace-adapter-readiness-smoke-result.json`.
- C19Z1 Remote Workspace mailbox handoff preflight is implemented and
runtime-smoke-proven on docker-test. The node-agent now exposes read-only
`GET /mesh/v1/remote-workspace/adapter-sessions/{adapter_session_id}/mailbox/preflight`
for `consumer_id` plus `resume_from=ack|checkpoint`; it validates the cursor
and reports the expected next event window without reading, draining, acking,
or mutating consumer state. Node-agent image
`rap-node-agent:codex-service-supervisor-20260512z2` is built and deployed on
`test-1/2/3`. Verification passed: `go test ./internal/mesh`, C19Z1 live
smoke, C19X source smoke, and C19Z regression smoke. Artifact:
`artifacts/c19z1-remote-workspace-mailbox-preflight-smoke-result.json`.
- C19Z2 Remote Workspace mailbox preflight telemetry is implemented and
runtime-smoke-proven on docker-test. Workload status and heartbeat telemetry
now expose `mailbox_preflight_total`, ack/checkpoint preflight counters, and
last preflight session/consumer/cursor/window fields; readiness diagnostics
also carry the latest preflight summary. Node-agent image
`rap-node-agent:codex-service-supervisor-20260512z3` is built and deployed on
`test-1/2/3`. Verification passed: `go test ./internal/mesh`, C19Z2 live
smoke, C19Z1 source smoke, and C19Z1 regression smoke. Artifact:
`artifacts/c19z2-remote-workspace-mailbox-preflight-telemetry-smoke-result.json`.
- C19Z3 Remote Workspace mailbox stale-cursor preflight diagnostics are
implemented and runtime-smoke-proven on docker-test. Preflight responses now
report retained mailbox sequence bounds, `diagnostic_state`,
`stale_cursor`, and `missing_dropped_count` when a consumer cursor points
behind dropped bounded-mailbox events. Workload/heartbeat preflight telemetry
and readiness diagnostics mirror the stale-cursor state. Node-agent image
`rap-node-agent:codex-service-supervisor-20260512z4` is built and deployed on
`test-1/2/3`. Verification passed: `go test ./internal/mesh`, C19Z3 live
smoke, and C19Z2 regression smoke. Artifact:
`artifacts/c19z3-remote-workspace-mailbox-stale-preflight-smoke-result.json`.
- C19Z4 Remote Workspace mailbox preflight action hints are implemented and
runtime-smoke-proven on docker-test. Preflight responses now include
`recommended_action` and `action_hints`; stale cursor gaps recommend
`reset_consumer_and_resync` with hints to reset the consumer cursor, request a
full adapter resync, and resume from checkpoint after resync. The latest
action hints are mirrored in preflight telemetry and readiness diagnostics.
Node-agent image `rap-node-agent:codex-service-supervisor-20260512z5` is built
and deployed on `test-1/2/3`. Verification passed: `go test ./internal/mesh`,
C19Z4 live smoke, C19Z3 source smoke, and C19Z3 regression smoke. Artifact:
`artifacts/c19z4-remote-workspace-mailbox-preflight-action-hints-smoke-result.json`.
- C19Z5 Remote Workspace mailbox preflight remediation provenance is
implemented and runtime-smoke-proven on docker-test. Preflight responses,
telemetry, and readiness diagnostics now include `action_reason` and
structured `action_context` with cursor, retained sequence bounds,
dropped/missing counts, and expected window counters explaining why the action
hints were chosen. Node-agent image
`rap-node-agent:codex-service-supervisor-20260512z6` is built and deployed on
`test-1/2/3`. Verification passed: `go test ./internal/mesh`, C19Z5 live
smoke, C19Z4 source smoke, and C19Z4 regression smoke. Artifact:
`artifacts/c19z5-remote-workspace-mailbox-preflight-provenance-smoke-result.json`.
- C19Z6 Remote Workspace mailbox preflight operator summary is implemented and
runtime-smoke-proven on docker-test. Preflight responses, telemetry, and
readiness diagnostics now include `operator_summary` plus compact
`operator_summary_fields` with diagnostic state, recommended action, action
reason, resume cursor, retained bounds, missing dropped count, and expected
window counters. This keeps dashboard/handoff text derived from the same
read-only preflight state without mutating mailbox cursors. Node-agent image
`rap-node-agent:codex-service-supervisor-20260512z7` is built and deployed on
`test-1/2/3`. Verification passed: `go test ./internal/mesh`, C19Z6 live
smoke, C19Z5 source smoke, and C19Z5 regression smoke. Artifact:
`artifacts/c19z6-remote-workspace-mailbox-preflight-summary-smoke-result.json`.
- C19Z7 Remote Workspace mailbox preflight operator severity is implemented and
runtime-smoke-proven on docker-test. Preflight responses, telemetry, and
readiness diagnostics now include machine-sortable `operator_status` and
`operator_severity`, mirrored into `operator_summary_fields`; stale cursor
gaps classify as `resync_required` / `warn`, ready windows as
`ready_to_resume` / `ok`, and caught-up cursors as `caught_up` / `info`.
Node-agent image `rap-node-agent:codex-service-supervisor-20260512z8` is
built and deployed on `test-1/2/3`. Verification passed:
`go test ./internal/mesh`, C19Z7 live smoke, C19Z6 source smoke, and C19Z6
regression smoke. Artifact:
`artifacts/c19z7-remote-workspace-mailbox-preflight-severity-smoke-result.json`.
- C19Z8 Remote Workspace mailbox preflight readiness rollup is implemented and
runtime-smoke-proven on docker-test. `adapter_runtime_readiness` now preserves
all existing flat latest-preflight fields and also exposes a grouped
`last_preflight` object with observed time, consumer/cursor, expected window
counts, diagnostic state, action hints/provenance, operator summary/status/
severity, and summary fields for admin UI consumption. Node-agent image
`rap-node-agent:codex-service-supervisor-20260512z9` is built and deployed on
`test-1/2/3`. Verification passed: `go test ./internal/mesh`, C19Z8 live
smoke, C19Z3 source smoke with `-SkipClose`, and C19Z7 regression smoke.
Artifact:
`artifacts/c19z8-remote-workspace-mailbox-preflight-rollup-smoke-result.json`.
- C19Z9 Remote Workspace mailbox preflight retained-window rollup detail is
implemented and runtime-smoke-proven on docker-test. The readiness
`last_preflight` object now exposes `first_retained_sequence`,
`last_retained_sequence`, and `mailbox_dropped_total` alongside the expected
window, stale-cursor, action, and operator fields, so admin UI can explain why
a cursor is outside the retained bounded-mailbox window without reopening the
raw preflight response. Node-agent image
`rap-node-agent:codex-service-supervisor-20260512z10` is built and deployed on
`test-1/2/3`. Verification passed: `go test ./internal/mesh`, C19Z9 live
smoke, C19Z8 source smoke, and C19Z8 regression smoke. Artifact:
`artifacts/c19z9-remote-workspace-mailbox-preflight-retained-window-smoke-result.json`.
- C19Z10 Remote Workspace mailbox preflight remediation checklist is
implemented and runtime-smoke-proven on docker-test. The readiness
`last_preflight` object now includes `remediation_checklist`, a structured
operator checklist derived from diagnostic state/action hints. Stale cursor
gaps surface required unsatisfied steps for resetting the consumer cursor,
requesting full adapter resync, and resuming from checkpoint after resync;
ready windows surface a satisfied resume step. Node-agent image
`rap-node-agent:codex-service-supervisor-20260512z11` is built and deployed on
`test-1/2/3`. Verification passed: `go test ./internal/mesh`, C19Z10 live
smoke, C19Z9 source smoke, and C19Z9 regression smoke. Artifact:
`artifacts/c19z10-remote-workspace-mailbox-preflight-checklist-smoke-result.json`.
- C19Z11 Remote Workspace mailbox preflight checklist status is implemented and
runtime-smoke-proven on docker-test. The readiness `last_preflight` object now
includes `remediation_checklist_status` plus `remediation_checklist_counts`
with total, required, satisfied, and pending counts, so admin UI can show
`ready` or `action_required` without scanning the checklist array. Node-agent
image `rap-node-agent:codex-service-supervisor-20260512z12` is built and
deployed on `test-1/2/3`. Verification passed: `go test ./internal/mesh`,
C19Z11 live smoke, C19Z10 source smoke, and C19Z10 regression smoke. Artifact:
`artifacts/c19z11-remote-workspace-mailbox-preflight-checklist-status-smoke-result.json`.
- C19Z12 Remote Workspace mailbox preflight operator status counters are
implemented and runtime-smoke-proven on docker-test. Session readiness now
exposes `mailbox_preflight_operator_status_counts` and
`mailbox_preflight_operator_severity_counts`, and the grouped
`last_preflight` rollup mirrors them as `operator_status_counts` and
`operator_severity_counts`. This lets operators spot repeated
`resync_required` / `warn` preflights without storing a history log.
Node-agent image `rap-node-agent:codex-service-supervisor-20260512z13` is
built and deployed on `test-1/2/3`. Verification passed:
`go test ./internal/mesh`, C19Z12 live smoke, C19Z11 source smoke, and C19Z11
regression smoke. Artifact:
`artifacts/c19z12-remote-workspace-mailbox-preflight-status-counts-smoke-result.json`.
- C19Z13 Remote Workspace mailbox preflight attention status is implemented and
runtime-smoke-proven on docker-test. Session readiness now exposes
`preflight_attention_status`, mirrored in `last_preflight`, derived from
status/severity counters as `clean`, `needs_attention`,
`repeated_resync_required`, or `unknown`. This gives admin UI a sortable
preflight health value without interpreting count maps. Node-agent image
`rap-node-agent:codex-service-supervisor-20260512z14` is built and deployed on
`test-1/2/3`. Verification passed: `go test ./internal/mesh`, C19Z13 live
smoke, C19Z12 source smoke, and C19Z12 regression smoke. Artifact:
`artifacts/c19z13-remote-workspace-mailbox-preflight-attention-smoke-result.json`.
- C19Z14 Remote Workspace mailbox repeated-resync preflight proof is implemented
and runtime-smoke-proven on docker-test. Unit and live smoke coverage now
perform multiple stale preflight checks on the same active adapter session and
prove `preflight_attention_status=repeated_resync_required` with
`resync_required` / `warn` counters at 2 or higher. Node-agent image
`rap-node-agent:codex-service-supervisor-20260512z15` is built and deployed on
`test-1/2/3`. Verification passed: `go test ./internal/mesh`, C19Z14 live
smoke, C19Z3 source smoke with `-SkipClose`, and C19Z13 regression smoke.
Artifact:
`artifacts/c19z14-remote-workspace-mailbox-preflight-repeated-attention-smoke-result.json`.
- C19Z15 Remote Workspace mailbox preflight attention reason is implemented and
runtime-smoke-proven on docker-test. Session readiness and `last_preflight`
now expose `preflight_attention_reason` beside `preflight_attention_status`,
with reasons such as `no_resync_required_preflight_observed`,
`resync_required_preflight_observed`, and
`resync_required_preflight_repeated`, so admin UI can explain the status
without parsing counters. Node-agent image
`rap-node-agent:codex-service-supervisor-20260512z16` is built and deployed on
`test-1/2/3`. Verification passed: `go test ./internal/mesh`, C19Z15 live
smoke, C19Z14 source smoke, and C19Z14 regression smoke. Artifact:
`artifacts/c19z15-remote-workspace-mailbox-preflight-attention-reason-smoke-result.json`.
- C19Z16 Remote Workspace mailbox preflight attention reason coverage is
implemented and runtime-smoke-proven on docker-test. Unit coverage now proves
clean, single-resync, repeated-resync, and no-preflight reason/status
summaries, and live smoke proves the single stale-preflight reason
`resync_required_preflight_observed`. This is coverage-only on top of
`rap-node-agent:codex-service-supervisor-20260512z16`, which remains deployed
on `test-1/2/3`. Verification passed: `go test ./internal/mesh`, C19Z16 live
smoke, C19Z13 source smoke, and C19Z15 regression smoke. Artifact:
`artifacts/c19z16-remote-workspace-mailbox-preflight-attention-reason-coverage-smoke-result.json`.
- C19Z17 Remote Workspace mailbox preflight diagnostics contract marker is
implemented and runtime-smoke-proven on docker-test. The readiness
`last_preflight` rollup now includes `diagnostics_schema_version` and
`diagnostics_contract` entries for `retained_window`,
`remediation_checklist`, `attention`, and `operator_counts`, allowing admin UI
to gate rendering safely. Node-agent image
`rap-node-agent:codex-service-supervisor-20260512z17` is built and deployed on
`test-1/2/3`. Verification passed: `go test ./internal/mesh`, C19Z17 live
smoke, C19Z16 source smoke, and C19Z16 regression smoke. Artifact:
`artifacts/c19z17-remote-workspace-mailbox-preflight-contract-smoke-result.json`.
- C19Z18 Remote Workspace mailbox preflight diagnostics feature flags are
implemented and runtime-smoke-proven on docker-test. The readiness
`last_preflight` rollup now includes boolean `diagnostics_features` for
`retained_window`, `remediation_checklist`, `attention`, and
`operator_counts`, so UI and diagnostics clients can gate fields without
scanning the contract list. Node-agent image
`rap-node-agent:codex-service-supervisor-20260512z18` is built and deployed on
`test-1/2/3`. Verification passed: `go test ./internal/mesh`, C19Z18 live
smoke, and C19Z17 regression smoke. Artifact:
`artifacts/c19z18-remote-workspace-mailbox-preflight-feature-flags-smoke-result.json`.
- C19Z19 Remote Workspace mailbox preflight diagnostics compatibility proof is
complete on docker-test. This coverage-only layer verifies that the grouped
preflight diagnostics contract remains available in both forms:
`diagnostics_contract` string entries and matching boolean
`diagnostics_features` flags for retained-window, remediation-checklist,
attention, and operator-count diagnostics. No new runtime image was required;
the proof ran on
`rap-node-agent:codex-service-supervisor-20260512z18` deployed on
`test-1/2/3`. Verification passed: `go test ./internal/mesh` and C19Z19 live
smoke. Artifact:
`artifacts/c19z19-remote-workspace-mailbox-preflight-contract-compatibility-smoke-result.json`.
- C19Z20 Remote Workspace mailbox preflight absence proof is complete on
docker-test. Unit and live smoke coverage now prove that an active adapter
session before any mailbox preflight reports `mailbox_preflight_total=0`,
`preflight_attention_status=unknown`,
`preflight_attention_reason=no_preflight_observed`, and no grouped
`last_preflight` rollup. This lets admin UI distinguish "not observed yet"
from an observed clean diagnostics bundle. No new runtime image was required;
the proof ran on
`rap-node-agent:codex-service-supervisor-20260512z18` deployed on
`test-1/2/3`. Verification passed: `go test ./internal/mesh` and C19Z20 live
smoke. Artifact:
`artifacts/c19z20-remote-workspace-mailbox-preflight-absence-smoke-result.json`.
- C19Z21 Remote Workspace no-active-session readiness proof is implemented and
runtime-smoke-proven on docker-test. Readiness now reports the terminal state
from the terminal session ledger when the last adapter session is closed, so
`last_session_state=closed` instead of the last delivery state. Unit and live
smoke coverage prove `status=idle`, `ready=false`, `active_session_count=0`,
`diagnostic_state=last_session_terminal_or_expired`, no active
`adapter_session_id`, no grouped `last_preflight`, and the closed last session
id/state. Node-agent image
`rap-node-agent:codex-service-supervisor-20260512z21` is built and deployed on
`test-1/2/3`. Verification passed: `go test ./internal/mesh` and C19Z21 live
smoke. Artifact:
`artifacts/c19z21-remote-workspace-no-active-session-readiness-smoke-result.json`.
- C19Z22 Remote Workspace terminal-state readiness coverage is complete on
docker-test. Unit and live smoke coverage now prove the same no-active-session
readiness shape for `expire` and `reset` controls: idle/not-ready, zero active
sessions, no active `adapter_session_id`, no grouped `last_preflight`, and
terminal `last_session_state=expired` or `last_session_state=reset` from the
terminal-session ledger. Node-agent image
`rap-node-agent:codex-service-supervisor-20260512z22` is built and deployed on
`test-1/2/3`. Verification passed: `go test ./internal/mesh` and C19Z22 live
smoke. Artifact:
`artifacts/c19z22-remote-workspace-terminal-state-readiness-smoke-result.json`.
- C19Z23 Remote Workspace terminal-session summary metadata is implemented and
runtime-smoke-proven on docker-test. When readiness has no active adapter
session but the last adapter session is terminal, it now includes
`terminal_session_summary` with `adapter_session_id`, `session_state`,
`reason`, and `controlled_at`, while retaining the existing flat
compatibility fields. Node-agent image
`rap-node-agent:codex-service-supervisor-20260512z23` is built and deployed on
`test-1/2/3`. Verification passed: `go test ./internal/mesh` and C19Z23 live
smoke. Artifact:
`artifacts/c19z23-remote-workspace-terminal-session-summary-smoke-result.json`.
- C19Z24 Remote Workspace terminal-session summary contract marker is
implemented and runtime-smoke-proven on docker-test. The grouped
`terminal_session_summary` now includes
`schema_version=rap.remote_workspace_adapter_terminal_session_summary.v1` and
`summary_contract` entries for `adapter_session_id`, `session_state`,
`reason`, and `controlled_at`, allowing admin UI to gate the block safely.
Node-agent image `rap-node-agent:codex-service-supervisor-20260512z24` is
built and deployed on `test-1/2/3`. Verification passed:
`go test ./internal/mesh` and C19Z24 live smoke. Artifact:
`artifacts/c19z24-remote-workspace-terminal-summary-contract-smoke-result.json`.
- C19Z25 Remote Workspace terminal-session summary feature flags are
implemented and runtime-smoke-proven on docker-test. The grouped
`terminal_session_summary` now includes boolean `summary_features` for
`adapter_session_id`, `session_state`, `reason`, and `controlled_at`,
mirroring the preflight diagnostics contract/feature pattern. Node-agent image
`rap-node-agent:codex-service-supervisor-20260512z25` is built and deployed on
`test-1/2/3`. Verification passed: `go test ./internal/mesh` and C19Z25 live
smoke. Artifact:
`artifacts/c19z25-remote-workspace-terminal-summary-features-smoke-result.json`.
- C19Z26 Remote Workspace terminal-session summary compatibility proof is
complete on docker-test. This coverage-only layer verifies that
`summary_contract` and boolean `summary_features` stay consistent for
`adapter_session_id`, `session_state`, `reason`, and `controlled_at` across
workload and telemetry reports. No new runtime image was required; the proof
ran on `rap-node-agent:codex-service-supervisor-20260512z25` deployed on
`test-1/2/3`. Verification passed: `go test ./internal/mesh` and C19Z26 live
smoke. Artifact:
`artifacts/c19z26-remote-workspace-terminal-summary-compatibility-smoke-result.json`.
- C19Z27 Remote Workspace terminal-session summary absence proof is complete on
docker-test. Unit and live smoke coverage now verify that a fresh adapter
runtime before any session or terminal history reports
`diagnostic_state=waiting_for_session`, zero active/terminal sessions, no
`last_adapter_session_id`, no `last_session_state`, no grouped
`terminal_session_summary`, and no `last_preflight`. No new runtime image was
required; the proof ran on
`rap-node-agent:codex-service-supervisor-20260512z25` deployed on
`test-1/2/3` after a clean runtime restart. Verification passed:
`go test ./internal/mesh` and C19Z27 live smoke. Artifact:
`artifacts/c19z27-remote-workspace-terminal-summary-absence-smoke-result.json`.
- C19Z28 Remote Workspace no-session readiness summary is implemented and
runtime-smoke-proven on docker-test. Fresh adapter runtime readiness now
includes grouped `no_session_summary` with
`schema_version=rap.remote_workspace_adapter_no_session_summary.v1`,
`summary_contract` entries for `status`, `diagnostic_state`,
`active_session_count`, and `terminal_session_count`, and matching idle
waiting-for-session values. The terminal summary absence contract remains
intact for empty runtime state. Node-agent image
`rap-node-agent:codex-service-supervisor-20260513z28` is built and deployed
on `test-1/2/3`. Verification passed: `go test ./internal/mesh`, C19Z28 live
smoke, and C19Z27 regression smoke. Artifact:
`artifacts/c19z28-remote-workspace-no-session-summary-smoke-result.json`.
- C19Z29 Remote Workspace no-session summary feature flags are implemented and
runtime-smoke-proven on docker-test. The grouped `no_session_summary` now
includes boolean `summary_features` for `status`, `diagnostic_state`,
`active_session_count`, and `terminal_session_count`, mirroring the terminal
summary and preflight diagnostics contract/feature pattern. Node-agent image
`rap-node-agent:codex-service-supervisor-20260513z29` is built and deployed
on `test-1/2/3`. Verification passed: `go test ./internal/mesh`, C19Z29 live
smoke, and C19Z28 regression smoke. Artifact:
`artifacts/c19z29-remote-workspace-no-session-summary-features-smoke-result.json`.
- C19Z30 Remote Workspace no-session summary compatibility proof is complete
on docker-test. This coverage-only layer verifies that `summary_contract`
entries and boolean `summary_features` stay aligned for `status`,
`diagnostic_state`, `active_session_count`, and `terminal_session_count`
across workload and telemetry reports. No new runtime image was required; the
proof ran on `rap-node-agent:codex-service-supervisor-20260513z29` deployed
on `test-1/2/3`. Verification passed: `go test ./internal/mesh` and C19Z30
live smoke. Artifact:
`artifacts/c19z30-remote-workspace-no-session-summary-compatibility-smoke-result.json`.
- C19Z31 Remote Workspace terminal-history no-session summary absence proof is
complete on docker-test. This focused live-smoke layer verifies that once a
session reaches terminal states (`expired` and `reset`), readiness switches
to grouped `terminal_session_summary` and does not include grouped
`no_session_summary` in either workload or telemetry reports. No new runtime
image was required; the proof ran on
`rap-node-agent:codex-service-supervisor-20260513z29` deployed on
`test-1/2/3`. Verification passed: C19Z31 live smoke. Artifact:
`artifacts/c19z31-remote-workspace-terminal-history-no-session-summary-absence-smoke-result.json`.
- C19Z32 Remote Workspace readiness summary exclusivity proof is complete on
docker-test. Unit and live smoke coverage now verify that grouped
`no_session_summary` and `terminal_session_summary` are mutually exclusive
across fresh, active, and terminal readiness states: fresh has only
`no_session_summary`, active has neither grouped summary, and terminal has
only `terminal_session_summary`. No new runtime image was required; the proof
ran on `rap-node-agent:codex-service-supervisor-20260513z29` after a clean
runtime restart. Verification passed: `go test ./internal/mesh` and C19Z32
live smoke. Artifact:
`artifacts/c19z32-remote-workspace-readiness-summary-exclusivity-smoke-result.json`.
- C19Z33 Remote Workspace readiness state matrix artifact is complete on
docker-test. The live smoke now generates a compact six-row
fresh/active/terminal x workload/telemetry matrix with only the admin-facing
`adapter_runtime_readiness` fields and summary-presence booleans, avoiding
the large nested source smoke payload in the handoff artifact. No new runtime
image was required; the proof ran on
`rap-node-agent:codex-service-supervisor-20260513z29` after a clean runtime
restart. Verification passed: C19Z33 live smoke. Artifact:
`artifacts/c19z33-remote-workspace-readiness-state-matrix-smoke-result.json`.
- C19Z34 Remote Workspace probe-to-runtime gate artifact is complete on
docker-test. The live smoke now records that the current runtime remains
`execution_mode=contract_probe`, `probe_only=true`, and
`payload_traffic=none` across the readiness matrix, lists the contracts ready
for admin/runtime handoff, and lists the remaining gates before real RDP
frame transport can be enabled. No new runtime image was required; the proof
ran on `rap-node-agent:codex-service-supervisor-20260513z29` after a clean
runtime restart. Verification passed: C19Z34 live smoke. Artifact:
`artifacts/c19z34-remote-workspace-probe-to-runtime-gate-smoke-result.json`.
- C19Z35 Remote Workspace real-adapter supervision scaffold is implemented and
runtime-smoke-proven on docker-test. The `rdp-worker` contract-probe workload
status now includes disabled-by-default
`real_adapter_supervision` schema
`rap.remote_workspace_real_adapter_supervision.v1`, future config env names,
status contract fields, and guardrails. The active execution mode remains
`contract_probe`, the future real adapter path reports disabled/blocked when
requested, and payload traffic remains `none`. Node-agent image
`rap-node-agent:codex-service-supervisor-20260513z35` is built and deployed
on `test-1/2/3`. Verification passed:
`go test ./internal/supervisor ./internal/mesh` and C19Z35 live smoke.
Artifact:
`artifacts/c19z35-remote-workspace-real-adapter-supervision-scaffold-smoke-result.json`.
- C19Z36 Remote Workspace real-adapter supervision compatibility proof is
complete on docker-test. Unit and live smoke coverage now verify that the
disabled scaffold keeps `enabled=false`, `activation_state`,
`execution_mode`, `payload_traffic=none`, `process_model`, `config_env`,
`status_contract`, and guardrails aligned in workload status. No new runtime
image was required; the proof ran on
`rap-node-agent:codex-service-supervisor-20260513z35` deployed on
`test-1/2/3`. Verification passed:
`go test ./internal/supervisor ./internal/mesh` and C19Z36 live smoke.
Artifact:
`artifacts/c19z36-remote-workspace-real-adapter-supervision-compatibility-smoke-result.json`.
- C19Z37 Remote Workspace disabled real-adapter config projection is
implemented and runtime-smoke-proven on docker-test. Node-agent config now
reads `RAP_REMOTE_WORKSPACE_REAL_ADAPTER_ENABLED`,
`RAP_REMOTE_WORKSPACE_REAL_ADAPTER_COMMAND`,
`RAP_REMOTE_WORKSPACE_REAL_ADAPTER_ARGS_JSON`, and
`RAP_REMOTE_WORKSPACE_REAL_ADAPTER_WORKDIR`, passes the sanitized shape into
supervisor status, and exposes
`rap.remote_workspace_real_adapter_config_projection.v1` under the disabled
`real_adapter_supervision` contract. The projection reports
`enabled_requested`, command/args/workdir presence, args JSON shape, and
`raw_values_redacted=true`; raw command/args/workdir values are not exposed.
Even with `RAP_REMOTE_WORKSPACE_REAL_ADAPTER_ENABLED=true`, the contract
keeps `enabled=false`, `activation_allowed=false`, and
`payload_traffic=none`. Node-agent image
`rap-node-agent:codex-service-supervisor-20260513z37` is built and deployed
on `test-1/2/3`. Verification passed:
`go test ./internal/config ./internal/supervisor ./internal/mesh`,
`git diff --check`, and C19Z37 live smoke. Artifact:
`artifacts/c19z37-remote-workspace-real-adapter-config-projection-smoke-result.json`.
- C19Z38 Remote Workspace real-adapter config projection compatibility proof is
complete on docker-test. Unit coverage now verifies default/empty config,
requested array args, object args, and opaque args shapes. Live smoke assigns
the native `rdp-worker` contract probe to `test-1` and `test-2`: `test-1`
runs with future real-adapter env and proves requested presence/`json_array`
shape, while `test-2` runs without those env values and proves
`enabled_requested=false`, absent command/args/workdir, and `args_json_shape`
`absent`. Both paths keep `enabled=false`, `activation_allowed=false`,
`raw_values_redacted=true`, and `payload_traffic=none`. Verification passed:
`go test ./internal/supervisor` and C19Z38 live smoke. Artifact:
`artifacts/c19z38-remote-workspace-real-adapter-config-projection-compatibility-smoke-result.json`.
- C19Z39 Remote Workspace real-adapter activation decision contract is
implemented and runtime-smoke-proven on docker-test. The disabled
`real_adapter_supervision` contract now includes
`activation_decision` schema
`rap.remote_workspace_real_adapter_activation_decision.v1`, with
`decision=blocked`, `reason=real_runtime_stage_not_enabled`,
`activation_allowed=false`, `payload_traffic=none`, `enabled_requested`
mirrored from config, and explicit required/missing gates:
`real_runtime_stage_enabled`, `fabric_service_channel_runtime_ready`,
`adapter_process_supervisor_enabled`, and
`payload_forwarding_contract_enabled`. Live smoke proves both requested
(`test-1`) and default/empty (`test-2`) paths remain blocked. Node-agent
image `rap-node-agent:codex-service-supervisor-20260513z39` is built and
deployed on `test-1/2/3`. Verification passed: `go test
./internal/supervisor` and C19Z39 live smoke. Artifact:
`artifacts/c19z39-remote-workspace-real-adapter-activation-decision-smoke-result.json`.
- C19Z40 Remote Workspace real-adapter handoff report is complete on
docker-test. Unit coverage now verifies that config projection and activation
decision stay aligned for default and requested config. The live smoke emits
a compact two-row handoff artifact for requested (`test-1`) and default
(`test-2`) nodes, proving `contract_probe` remains active, the supervision
scaffold is compatible, projection is compatible, activation decision is
blocked, missing gates are explicit, and projection/decision fields are
aligned. No new runtime image was required; the proof ran on
`rap-node-agent:codex-service-supervisor-20260513z39`. Verification passed:
`go test ./internal/supervisor` and C19Z40 live smoke. Artifact:
`artifacts/c19z40-remote-workspace-real-adapter-handoff-report-smoke-result.json`.
- C19Z41 Remote Workspace real-adapter feature flags are implemented and
runtime-smoke-proven on docker-test. The disabled
`real_adapter_supervision` contract now includes a `features` map with
booleans for `config_projection`, `activation_decision`, `missing_gates`,
and `raw_values_redacted`; `status_contract` includes `features` so UI and
automation can gate rendering without parsing contract lists. Node-agent
image `rap-node-agent:codex-service-supervisor-20260513z41` is built and
deployed on `test-1/2/3`. Verification passed:
`go test ./internal/supervisor` and C19Z41 live smoke. Artifact:
`artifacts/c19z41-remote-workspace-real-adapter-feature-flags-smoke-result.json`.
- C19Z42 Remote Workspace real-adapter handoff v2 report is complete on
docker-test. The live smoke folds C19Z41 `features` into the compact
requested/default handoff rows from C19Z40 and proves scaffold compatibility,
config projection compatibility, blocked activation decision compatibility,
feature flag compatibility, explicit missing gates, and
projection/decision/features alignment in one artifact. No new runtime image
was required; the proof ran on
`rap-node-agent:codex-service-supervisor-20260513z41`. Verification passed:
C19Z42 live smoke. Artifact:
`artifacts/c19z42-remote-workspace-real-adapter-handoff-v2-smoke-result.json`.
- C19Z43 Remote Workspace real-adapter desired-workload precedence proof is
complete on docker-test. Unit and live smoke coverage now verify that when a
native `rdp-worker` desired workload requests both `adapter_contract_probe`
and `real_adapter_supervision`, the safe contract-probe path retains
precedence: reported state remains `running`, `execution_mode=contract_probe`,
the disabled real-adapter branch is not selected, activation decision remains
`blocked`, and payload traffic remains `none`. No new runtime image was
required; the proof ran on
`rap-node-agent:codex-service-supervisor-20260513z41`. Verification passed:
`go test ./internal/supervisor` and C19Z43 live smoke. Artifact:
`artifacts/c19z43-remote-workspace-real-adapter-precedence-smoke-result.json`.
- C19Z44 Remote Workspace real-adapter-only desired-workload disabled proof is
complete on docker-test. Unit and live smoke coverage now verify the inverse
negative path: when a native `rdp-worker` desired workload requests only
`real_adapter_supervision=true` without `adapter_contract_probe`, the status
remains `degraded`, `execution_mode=real_adapter_supervision_disabled`,
traffic is `blocked`, `payload_traffic=none`, config projection and
activation decision mirror `enabled_requested=true`, activation remains
`blocked`, missing gates remain explicit, and feature flags stay visible. No
new runtime image was required; the proof ran on
`rap-node-agent:codex-service-supervisor-20260513z41`. Verification passed:
`go test ./internal/supervisor` and C19Z44 live smoke. Artifact:
`artifacts/c19z44-remote-workspace-real-adapter-only-disabled-smoke-result.json`.
- C19Z45 Remote Workspace real-adapter desired-workload mode matrix is complete
on docker-test. The live smoke emits a compact three-row matrix for
`probe_only`, `real_adapter_only`, and `probe_and_real_adapter` desired config
modes. It proves expected reported state, execution mode, traffic,
`payload_traffic=none`, `enabled=false`, activation decision `blocked`,
`activation_allowed=false`, projected `enabled_requested=true`, and feature
visibility across all three rows. No new runtime image was required; the
proof ran on `rap-node-agent:codex-service-supervisor-20260513z41`.
Verification passed: C19Z45 live smoke. Artifact:
`artifacts/c19z45-remote-workspace-real-adapter-mode-matrix-smoke-result.json`.
- C19Z46 Remote Workspace real-adapter mode matrix compatibility proof is
complete on docker-test. The C19Z45 matrix rows now include explicit
`missing_gates_visible` and `feature_flags_visible` booleans, and C19Z46
validates the row contract fields plus expected values for `probe_only`,
`real_adapter_only`, and `probe_and_real_adapter`. No new runtime image was
required; the proof ran on
`rap-node-agent:codex-service-supervisor-20260513z41`. Verification passed:
C19Z46 live smoke. Artifact:
`artifacts/c19z46-remote-workspace-real-adapter-mode-matrix-compatibility-smoke-result.json`.
- C19Z47 Remote Workspace disabled process-supervisor preconditions contract is
implemented and runtime-smoke-proven on docker-test. The disabled
`real_adapter_supervision` status now includes
`process_supervisor_preconditions` schema
`rap.remote_workspace_real_adapter_process_supervisor_preconditions.v1` with
`process_start_allowed=false`, `reason=disabled_until_real_runtime_stage`,
sanitized command/args/workdir presence booleans, required checks, and
matching missing checks. Features now include
`process_supervisor_preconditions` and
`process_supervisor_start_disabled`. Node-agent image
`rap-node-agent:codex-service-supervisor-20260513z47` is built and deployed
on `test-1/2/3`. Verification passed: `go test ./internal/supervisor` and
C19Z47 live smoke. Artifact:
`artifacts/c19z47-remote-workspace-real-adapter-process-preconditions-smoke-result.json`.
- C19Z48 Remote Workspace process-supervisor preconditions compatibility proof
is complete on docker-test. The live smoke uses C19Z47 as source and verifies
required fields, requested/default config shapes, required/missing checks,
and `process_start_allowed=false` for both requested and default nodes. No
new runtime image was required; the proof ran on
`rap-node-agent:codex-service-supervisor-20260513z47`. Verification passed:
C19Z48 live smoke. Artifact:
`artifacts/c19z48-remote-workspace-real-adapter-process-preconditions-compatibility-smoke-result.json`.
- C19Z49 Remote Workspace real-adapter handoff v3 report is complete on
docker-test. The compact requested/default handoff rows now include
process-supervisor preconditions alongside scaffold, config projection,
activation decision, feature flags, missing gates, and alignment checks. It
proves preconditions compatibility, `process_start_allowed=false`, and
alignment between feature flags, preconditions, and blocked activation
decision. No new runtime image was required; the proof ran on
`rap-node-agent:codex-service-supervisor-20260513z47`. Verification passed:
C19Z49 live smoke. Artifact:
`artifacts/c19z49-remote-workspace-real-adapter-handoff-v3-smoke-result.json`.
- C19Z50 Remote Workspace real-adapter mode matrix v2 is complete on
docker-test. The three-row desired-workload mode matrix now includes
process-supervisor preconditions for `probe_only`, `real_adapter_only`, and
`probe_and_real_adapter`, proving `process_start_allowed=false`, missing
precondition checks are visible, process-start-disabled feature is visible,
activation remains blocked, and payload traffic remains `none` for every
mode. No new runtime image was required; the proof ran on
`rap-node-agent:codex-service-supervisor-20260513z47`. Verification passed:
C19Z50 live smoke. Artifact:
`artifacts/c19z50-remote-workspace-real-adapter-mode-matrix-v2-smoke-result.json`.
- C19Z51 Remote Workspace real-adapter mode matrix v2 compatibility proof is
complete on docker-test. The live smoke uses C19Z50 as source and validates
the row contract fields plus expected values for `probe_only`,
`real_adapter_only`, and `probe_and_real_adapter`, including blocked
activation, `process_start_allowed=false`, precondition visibility, missing
checks visibility, process-start-disabled feature visibility, and
`payload_traffic=none`. No new runtime image was required; the proof ran on
`rap-node-agent:codex-service-supervisor-20260513z47`. Verification passed:
C19Z51 live smoke. Artifact:
`artifacts/c19z51-remote-workspace-real-adapter-mode-matrix-v2-compatibility-smoke-result.json`.
- C19Z52 Remote Workspace disabled process-health-probe contract is implemented
and runtime-smoke-proven on docker-test. The disabled
`real_adapter_supervision` status now includes `process_health_probe` schema
`rap.remote_workspace_real_adapter_process_health_probe.v1` with
`health_probe_enabled=false`, `reason=disabled_until_real_runtime_stage`,
`payload_traffic=none`, `probe_model=external_process_health`, required
signals, and matching missing signals. Features now include
`process_health_probe` and `process_health_probe_disabled`. Node-agent image
`rap-node-agent:codex-service-supervisor-20260513z52` is built and deployed
on `test-1/2/3`. Verification passed: `go test ./internal/supervisor` and
C19Z52 live smoke. Artifact:
`artifacts/c19z52-remote-workspace-real-adapter-process-health-probe-smoke-result.json`.
- C19Z53 Remote Workspace process-health-probe compatibility proof is complete
on docker-test. The live smoke uses C19Z52 as source and verifies required
fields, requested/default health probe forms, required/missing signals,
`health_probe_enabled=false`, and `payload_traffic=none` in both forms. No
new runtime image was required; the proof ran on
`rap-node-agent:codex-service-supervisor-20260513z52`. Verification passed:
C19Z53 live smoke. Artifact:
`artifacts/c19z53-remote-workspace-real-adapter-process-health-probe-compatibility-smoke-result.json`.
- C19Z54 Remote Workspace real-adapter handoff v4 report is complete on
docker-test. The compact requested/default handoff rows now include
process-health-probe visibility alongside the supervision scaffold, config
projection, activation decision, feature flags, process-supervisor
preconditions, required env, missing gates, missing precondition checks, and
missing health signals. It proves `health_probe_enabled=false`,
`payload_traffic=none`, health-probe-disabled feature visibility, and
alignment across all disabled real-adapter contracts. No new runtime image
was required; the proof ran on
`rap-node-agent:codex-service-supervisor-20260513z52`. Verification passed:
C19Z54 live smoke. Artifact:
`artifacts/c19z54-remote-workspace-real-adapter-handoff-v4-smoke-result.json`.
- C19Z55 Remote Workspace real-adapter mode matrix v3 is complete on
docker-test. The three-row desired-workload matrix now includes
process-health-probe visibility for `probe_only`, `real_adapter_only`, and
`probe_and_real_adapter`, proving `health_probe_enabled=false`, missing
health signals are visible, health-probe-disabled feature is visible,
process start remains disabled, activation remains blocked, and
`payload_traffic=none` for every mode. No new runtime image was required; the
proof ran on `rap-node-agent:codex-service-supervisor-20260513z52`.
Verification passed: C19Z55 live smoke. Artifact:
`artifacts/c19z55-remote-workspace-real-adapter-mode-matrix-v3-smoke-result.json`.
- C19Z56 Remote Workspace real-adapter mode matrix v3 compatibility proof is
complete on docker-test. The live smoke uses C19Z55 as source and validates
the row contract fields plus expected values for `probe_only`,
`real_adapter_only`, and `probe_and_real_adapter`, including blocked
activation, `process_start_allowed=false`, precondition visibility, missing
checks visibility, `health_probe_enabled=false`, health-probe visibility,
missing health-signal visibility, health-probe-disabled feature visibility,
and `payload_traffic=none`. No new runtime image was required; the proof ran
on `rap-node-agent:codex-service-supervisor-20260513z52`. Verification
passed: C19Z56 live smoke. Artifact:
`artifacts/c19z56-remote-workspace-real-adapter-mode-matrix-v3-compatibility-smoke-result.json`.
- C19Z57 Remote Workspace disabled real-adapter readiness/handoff summary is
complete on docker-test. The live smoke uses C19Z54 handoff v4 and C19Z56
mode matrix v3 compatibility as source proofs, then emits a compact
`rap.remote_workspace_real_adapter_disabled_runtime_readiness_summary.v1`
operator summary plus a 10-item checklist covering handoff completeness,
mode matrix compatibility, requested/default config visibility, desired
workload modes, blocked activation, disabled process start, disabled health
probes, `payload_traffic=none`, missing gates visibility, and missing
health-signal visibility. No new runtime image was required; the proof ran
on `rap-node-agent:codex-service-supervisor-20260513z52`. Verification
passed: C19Z57 live smoke. Artifact:
`artifacts/c19z57-remote-workspace-real-adapter-readiness-handoff-summary-smoke-result.json`.
- C19Z58 Remote Workspace disabled real-adapter readiness/handoff summary
compatibility proof is complete on docker-test. The live smoke uses C19Z57
as source and validates the summary contract fields, expected disabled
values, checklist counts, checklist item fields, and the full 10-item
checklist name/value set. It keeps `readiness_state=blocked_until_real_runtime_stage`,
`operator_action=keep_real_adapter_disabled`, `process_start_allowed=false`,
`health_probe_enabled=false`, and `payload_traffic=none`. No new runtime
image was required; the proof ran on
`rap-node-agent:codex-service-supervisor-20260513z52`. Verification passed:
C19Z58 live smoke. Artifact:
`artifacts/c19z58-remote-workspace-real-adapter-readiness-handoff-summary-compatibility-smoke-result.json`.
- C19Z59 Remote Workspace disabled real-adapter operator action map is complete
on docker-test. The live smoke uses C19Z58 as source and emits
`rap.remote_workspace_real_adapter_disabled_runtime_operator_action_map.v1`
with stable action keys: `keep_real_adapter_disabled`,
`review_real_runtime_stage_gates`, `validate_real_adapter_config_projection`,
`prepare_process_supervisor_preconditions`,
`prepare_process_health_probe_signals`, and
`keep_payload_forwarding_disabled`. Each action is derived from passed
readiness checklist items and explicitly keeps activation blocked,
`allows_process_start=false`, and `allows_payload_traffic=false`. No new
runtime image was required; the proof ran on
`rap-node-agent:codex-service-supervisor-20260513z52`. Verification passed:
C19Z59 live smoke. Artifact:
`artifacts/c19z59-remote-workspace-real-adapter-disabled-action-map-smoke-result.json`.
- C19Z60 Remote Workspace disabled real-adapter operator action map
compatibility proof is complete on docker-test. The live smoke uses C19Z59
as source and validates the action map fields, expected disabled values,
action count, required action fields, all six action keys, severity values,
non-empty reasons, derived checklist references, and guardrails that keep
activation blocked with `allows_process_start=false` and
`allows_payload_traffic=false`. No new runtime image was required; the proof
ran on `rap-node-agent:codex-service-supervisor-20260513z52`. Verification
passed: C19Z60 live smoke. Artifact:
`artifacts/c19z60-remote-workspace-real-adapter-disabled-action-map-compatibility-smoke-result.json`.
- C19Z61 Remote Workspace disabled real-adapter admin handoff bundle is
complete on docker-test. The live smoke uses C19Z60 as source and emits
`rap.remote_workspace_real_adapter_admin_handoff_bundle.v1`, grouping the
readiness summary, operator checklist, and operator action map into one
compact admin-facing report. It proves required bundle fields and sections,
checklist/action counts, `admin_status=not_ready`,
`admin_action=keep_real_adapter_disabled`, activation blocked,
`process_start_allowed=false`, `health_probe_enabled=false`, and
`payload_traffic=none`. No new runtime image was required; the proof ran on
`rap-node-agent:codex-service-supervisor-20260513z52`. Verification passed:
C19Z61 live smoke. Artifact:
`artifacts/c19z61-remote-workspace-real-adapter-admin-handoff-bundle-smoke-result.json`.
- C19Z62 Remote Workspace disabled real-adapter admin handoff bundle
compatibility proof is complete on docker-test. The live smoke uses C19Z61
as source and validates the bundle fields, required sections, count fields,
guardrail fields, admin values, nested readiness summary, checklist, and
operator action map. It keeps `admin_status=not_ready`,
`admin_action=keep_real_adapter_disabled`, activation blocked,
`process_start_allowed=false`, `health_probe_enabled=false`, and
`payload_traffic=none`. No new runtime image was required; the proof ran on
`rap-node-agent:codex-service-supervisor-20260513z52`. Verification passed:
C19Z62 live smoke. Artifact:
`artifacts/c19z62-remote-workspace-real-adapter-admin-handoff-bundle-compatibility-smoke-result.json`.
- C19Z63 Remote Workspace disabled real-adapter admin handoff digest is
complete on docker-test. The live smoke uses C19Z62 as source and emits
`rap.remote_workspace_real_adapter_admin_handoff_digest.v1` with stable
compact display rows for runtime stage, operator action, activation, process
start, health probe, payload traffic, checklist, and actions. It proves
`admin_status=not_ready`, `admin_action=keep_real_adapter_disabled`,
`runtime_stage=blocked_until_real_runtime_stage`, activation blocked,
process start disabled, health probe disabled, `payload_traffic=none`, and
preserved guardrails. No new runtime image was required; the proof ran on
`rap-node-agent:codex-service-supervisor-20260513z52`. Verification passed:
C19Z63 live smoke. Artifact:
`artifacts/c19z63-remote-workspace-real-adapter-admin-handoff-digest-smoke-result.json`.
- C19Z64 Remote Workspace disabled real-adapter admin handoff digest
compatibility proof is complete on docker-test. The live smoke uses C19Z63
as source and validates digest fields, expected admin values, all eight
display rows (`runtime_stage`, `operator_action`, `activation`,
`process_start`, `health_probe`, `payload_traffic`, `checklist`, `actions`),
row fields, states, values, severity, and preserved guardrails. No new
runtime image was required; the proof ran on
`rap-node-agent:codex-service-supervisor-20260513z52`. Verification passed:
C19Z64 live smoke. Artifact:
`artifacts/c19z64-remote-workspace-real-adapter-admin-handoff-digest-compatibility-smoke-result.json`.
- C19Z65 Remote Workspace disabled real-adapter admin handoff digest rollup is
complete on docker-test. The live smoke uses C19Z64 as source and emits
`rap.remote_workspace_real_adapter_admin_handoff_digest_rollup.v1` with
counts by severity (`warn=2`, `info=6`), counts by state (`blocked=3`,
`disabled=3`, `required=1`, `complete=1`), `primary_action=keep_real_adapter_disabled`,
`admin_status=not_ready`, and a guardrail summary that keeps activation
blocked, process start disabled, health probe disabled, and
`payload_traffic=none`. No new runtime image was required; the proof ran on
`rap-node-agent:codex-service-supervisor-20260513z52`. Verification passed:
C19Z65 live smoke. Artifact:
`artifacts/c19z65-remote-workspace-real-adapter-admin-handoff-digest-rollup-smoke-result.json`.
- C19Z66 Remote Workspace disabled real-adapter admin handoff digest rollup
compatibility proof is complete on docker-test. The live smoke uses C19Z65
as source and validates rollup fields, expected disabled admin values,
severity counts (`warn=2`, `info=6`), state counts (`blocked=3`,
`disabled=3`, `required=1`, `complete=1`), and guardrail summary fields that
keep activation blocked, process start disabled, health probe disabled, and
`payload_traffic=none`. No new runtime image was required; the proof ran on
`rap-node-agent:codex-service-supervisor-20260513z52`. Verification passed:
C19Z66 live smoke. Artifact:
`artifacts/c19z66-remote-workspace-real-adapter-admin-handoff-digest-rollup-compatibility-smoke-result.json`.
- C19Z67 Remote Workspace disabled real-adapter admin handoff full-chain
summary is complete on docker-test. The live smoke uses C19Z66 as source and
emits `rap.remote_workspace_real_adapter_admin_handoff_full_chain_summary.v1`
listing the proven contract chain from C19Z54 handoff v4 through C19Z66
digest rollup compatibility. It validates 13 passed stages, artifact links,
`runtime_effect=contract_only_no_runtime_enablement`, `admin_status=not_ready`,
`primary_action=keep_real_adapter_disabled`, and guardrails that keep
activation blocked, process start disabled, health probe disabled, and
`payload_traffic=none`. No new runtime image was required; the proof ran on
`rap-node-agent:codex-service-supervisor-20260513z52`. Verification passed:
C19Z67 live smoke. Artifact:
`artifacts/c19z67-remote-workspace-real-adapter-admin-handoff-full-chain-summary-smoke-result.json`.
- C19Z68 Remote Workspace disabled real-adapter admin handoff full-chain
summary compatibility proof is complete on docker-test. The live smoke uses
C19Z67 as source and validates full-chain summary fields, expected disabled
admin values, all 13 stage keys, required stage fields, artifact references,
`status=passed`, `runtime_effect=contract_only_no_runtime_enablement`, and
guardrails that keep activation blocked, process start disabled, health probe
disabled, and `payload_traffic=none`. No new runtime image was required; the
proof ran on `rap-node-agent:codex-service-supervisor-20260513z52`.
Verification passed: C19Z68 live smoke. Artifact:
`artifacts/c19z68-remote-workspace-real-adapter-admin-handoff-full-chain-summary-compatibility-smoke-result.json`.
- C19Z69 Remote Workspace disabled real-adapter admin handoff release marker is
complete on docker-test. The live smoke uses C19Z68 as source and emits
`rap.remote_workspace_real_adapter_admin_handoff_release_marker.v1` with
`release_status=contract_only_ready_for_admin_handoff`,
`release_marker=c19z69_disabled_real_adapter_admin_handoff_contract_only`,
`real_runtime_stage=blocked`,
`runtime_effect=contract_only_no_runtime_enablement`,
`admin_status=not_ready`, `primary_action=keep_real_adapter_disabled`, and
`proven_stage_count=13`. Guardrails continue to keep activation blocked,
process start disabled, health probe disabled, and `payload_traffic=none`.
No new runtime image was required; the proof ran on
`rap-node-agent:codex-service-supervisor-20260513z52`. Verification passed:
C19Z69 live smoke. Artifact:
`artifacts/c19z69-remote-workspace-real-adapter-admin-handoff-release-marker-smoke-result.json`.
- C19Z70 Remote Workspace disabled real-adapter admin handoff release marker
compatibility proof is complete on docker-test. The compatibility smoke uses
C19Z69 as source and validates the release marker fields, expected
contract-only values, `real_runtime_stage=blocked`,
`runtime_effect=contract_only_no_runtime_enablement`,
`admin_status=not_ready`, `primary_action=keep_real_adapter_disabled`,
`proven_stage_count=13`, and guardrails that keep activation blocked,
process start disabled, health probe disabled, and `payload_traffic=none`.
No new runtime image was required; the proof ran on
`rap-node-agent:codex-service-supervisor-20260513z52`. Verification passed:
C19Z70 live smoke. Artifact:
`artifacts/c19z70-remote-workspace-real-adapter-admin-handoff-release-marker-compatibility-smoke-result.json`.
- C19Z71 Remote Workspace disabled real-adapter admin handoff package index is
complete on docker-test. The live smoke uses C19Z70 as source and emits
`rap.remote_workspace_real_adapter_admin_handoff_package_index.v1` with
`package_status=closed_contract_only`,
`package_marker=c19z71_disabled_real_adapter_admin_handoff_package_closed_contract_only`,
`covered_stage_range=C19Z54-C19Z70`, `covered_stage_count=17`,
`proven_full_chain_stage_count=13`, `latest_compatibility_stage=C19Z70`,
`real_runtime_stage=blocked`,
`runtime_effect=contract_only_no_runtime_enablement`,
`admin_status=not_ready`, and `primary_action=keep_real_adapter_disabled`.
Guardrails continue to keep activation blocked, process start disabled,
health probe disabled, and `payload_traffic=none`. No new runtime image was
required; the proof ran on
`rap-node-agent:codex-service-supervisor-20260513z52`. Verification passed:
C19Z71 live smoke. Artifact:
`artifacts/c19z71-remote-workspace-real-adapter-admin-handoff-package-index-smoke-result.json`.
- C19Z72 Remote Workspace disabled real-adapter admin handoff package index
compatibility proof is complete on docker-test. The compatibility smoke uses
C19Z71 as source and validates the package index fields, expected
contract-only values, closeout notes, `covered_stage_range=C19Z54-C19Z70`,
`covered_stage_count=17`, `proven_full_chain_stage_count=13`,
`latest_compatibility_stage=C19Z70`, `real_runtime_stage=blocked`, and
guardrails that keep activation blocked, process start disabled, health probe
disabled, and `payload_traffic=none`. No new runtime image was required; the
proof ran on `rap-node-agent:codex-service-supervisor-20260513z52`.
Verification passed: C19Z72 live smoke. Artifact:
`artifacts/c19z72-remote-workspace-real-adapter-admin-handoff-package-index-compatibility-smoke-result.json`.
- C19Z73 Remote Workspace real-adapter runtime gate phase boundary is complete
on docker-test. The live smoke uses C19Z72 as source and emits
`rap.remote_workspace_real_adapter_runtime_gate_phase_boundary.v1` to mark
the C19Z54-C19Z72 admin handoff as closed contract-only while starting the
next phase as `real_adapter_runtime_gate_preflight` with
`next_phase_status=design_only_not_enabled`,
`real_runtime_gate_state=blocked`,
`activation_policy=explicit_operator_enablement_required`,
`runtime_effect=contract_only_no_runtime_enablement`, and
`operator_default_action=keep_real_adapter_disabled`. Required preflight
steps cover explicit operator enablement, binary path validation, service
account/permissions, process supervisor limits, health probe signals, and
payload forwarding gate validation. Guardrails continue to keep activation
blocked, process start disabled, health probe disabled, and
`payload_traffic=none`. No new runtime image was required; the proof ran on
`rap-node-agent:codex-service-supervisor-20260513z52`. Verification passed:
C19Z73 live smoke. Artifact:
`artifacts/c19z73-remote-workspace-real-adapter-runtime-gate-phase-boundary-smoke-result.json`.
- C19Z74 Remote Workspace real-adapter runtime gate phase boundary
compatibility proof is complete on docker-test. The compatibility smoke uses
C19Z73 as source and validates the boundary fields, required preflight steps,
`previous_package_status=closed_contract_only`,
`next_phase_name=real_adapter_runtime_gate_preflight`,
`next_phase_status=design_only_not_enabled`,
`real_runtime_gate_state=blocked`,
`activation_policy=explicit_operator_enablement_required`,
`runtime_effect=contract_only_no_runtime_enablement`,
`operator_default_action=keep_real_adapter_disabled`, and guardrails that
keep activation blocked, process start disabled, health probe disabled, and
`payload_traffic=none`. No new runtime image was required; the proof ran on
`rap-node-agent:codex-service-supervisor-20260513z52`. Verification passed:
C19Z74 live smoke. Artifact:
`artifacts/c19z74-remote-workspace-real-adapter-runtime-gate-phase-boundary-compatibility-smoke-result.json`.
- C19Z75 Remote Workspace real-adapter runtime gate preflight checklist is
complete on docker-test. The live smoke uses C19Z74 as source and emits
`rap.remote_workspace_real_adapter_runtime_gate_preflight_checklist.v1` with
`preflight_status=blocked_required_items_missing`,
`runtime_gate_state=blocked`,
`activation_policy=explicit_operator_enablement_required`,
`operator_default_action=keep_real_adapter_disabled`, six required preflight
items, `satisfied_item_count=0`, `blocked_item_count=6`,
`allows_process_start=false`, and `allows_payload_traffic=false`. Each item
remains `status=not_satisfied`, `required=true`,
`blocks_runtime_gate=true`, with
`evidence=contract_only_preflight_not_provided`. Guardrails continue to keep
activation blocked, process start disabled, health probe disabled, and
`payload_traffic=none`. No new runtime image was required; the proof ran on
`rap-node-agent:codex-service-supervisor-20260513z52`. Verification passed:
C19Z75 live smoke. Artifact:
`artifacts/c19z75-remote-workspace-real-adapter-runtime-gate-preflight-checklist-smoke-result.json`.
- C19Z76 Remote Workspace real-adapter runtime gate preflight checklist
compatibility proof is complete on docker-test. The compatibility smoke uses
C19Z75 as source and validates checklist fields, six required item keys,
item fields, `status=not_satisfied`, `required=true`,
`blocks_runtime_gate=true`, `evidence=contract_only_preflight_not_provided`,
`preflight_status=blocked_required_items_missing`,
`runtime_gate_state=blocked`,
`activation_policy=explicit_operator_enablement_required`,
`operator_default_action=keep_real_adapter_disabled`,
`satisfied_item_count=0`, `blocked_item_count=6`,
`allows_process_start=false`, `allows_payload_traffic=false`, and guardrails
that keep activation blocked, process start disabled, health probe disabled,
and `payload_traffic=none`. No new runtime image was required; the proof ran
on `rap-node-agent:codex-service-supervisor-20260513z52`. Verification
passed: C19Z76 live smoke. Artifact:
`artifacts/c19z76-remote-workspace-real-adapter-runtime-gate-preflight-checklist-compatibility-smoke-result.json`.
- C19Z77 Remote Workspace real-adapter runtime gate preflight status summary is
complete on docker-test. The live smoke uses C19Z76 as source and emits
`rap.remote_workspace_real_adapter_runtime_gate_preflight_status_summary.v1`
with `summary_status=blocked_all_required_items_missing`,
`runtime_gate_state=blocked`, `required_item_count=6`,
`satisfied_item_count=0`, `blocked_item_count=6`,
`not_satisfied_item_count=6`, all six preflight keys listed as
`blocking_item_keys`, `operator_default_action=keep_real_adapter_disabled`,
`allows_process_start=false`, and `allows_payload_traffic=false`.
Guardrails continue to keep activation blocked, process start disabled,
health probe disabled, and `payload_traffic=none`. No new runtime image was
required; the proof ran on
`rap-node-agent:codex-service-supervisor-20260513z52`. Verification passed:
C19Z77 live smoke. Artifact:
`artifacts/c19z77-remote-workspace-real-adapter-runtime-gate-preflight-status-summary-smoke-result.json`.
- C19Z78 Remote Workspace real-adapter runtime gate preflight status summary
compatibility proof is complete on docker-test. The compatibility smoke uses
C19Z77 as source and validates summary fields,
`summary_status=blocked_all_required_items_missing`,
`runtime_gate_state=blocked`, `required_item_count=6`,
`satisfied_item_count=0`, `blocked_item_count=6`,
`not_satisfied_item_count=6`, all six preflight keys listed as
`blocking_item_keys`, `operator_default_action=keep_real_adapter_disabled`,
`allows_process_start=false`, `allows_payload_traffic=false`, and guardrails
that keep activation blocked, process start disabled, health probe disabled,
and `payload_traffic=none`. No new runtime image was required; the proof ran
on `rap-node-agent:codex-service-supervisor-20260513z52`. Verification
passed: C19Z78 live smoke. Artifact:
`artifacts/c19z78-remote-workspace-real-adapter-runtime-gate-preflight-status-summary-compatibility-smoke-result.json`.
- C19Z79 Remote Workspace real-adapter runtime gate preflight action hints are
complete on docker-test. The live smoke uses C19Z78 as source and emits
`rap.remote_workspace_real_adapter_runtime_gate_preflight_action_hints.v1`
with `hint_status=blocked_operator_preflight_actions_required`,
`runtime_gate_state=blocked`,
`operator_default_action=keep_real_adapter_disabled`, six action hints, and
`allows_process_start=false`, `allows_payload_traffic=false`. Required hints
cover explicit operator gate enablement, real adapter binary path validation,
service account/permissions validation, process supervisor limits validation,
health probe signal contract validation, and payload forwarding gate
validation. Every hint keeps `blocks_runtime_gate=true` and
`allows_runtime=false`. Guardrails continue to keep activation blocked,
process start disabled, health probe disabled, and `payload_traffic=none`.
No new runtime image was required; the proof ran on
`rap-node-agent:codex-service-supervisor-20260513z52`. Verification passed:
C19Z79 live smoke. Artifact:
`artifacts/c19z79-remote-workspace-real-adapter-runtime-gate-preflight-action-hints-smoke-result.json`.
- C19Z80 Remote Workspace real-adapter runtime gate preflight action hints
compatibility proof is complete on docker-test. The compatibility smoke uses
C19Z79 as source and validates hints fields, six hint keys, hint fields,
`hint_status=blocked_operator_preflight_actions_required`,
`runtime_gate_state=blocked`,
`operator_default_action=keep_real_adapter_disabled`,
`hint_count=6`, `allows_process_start=false`,
`allows_payload_traffic=false`, and every hint with
`blocks_runtime_gate=true` and `allows_runtime=false`. Guardrails continue to
keep activation blocked, process start disabled, health probe disabled, and
`payload_traffic=none`. No new runtime image was required; the proof ran on
`rap-node-agent:codex-service-supervisor-20260513z52`. Verification passed:
C19Z80 live smoke. Artifact:
`artifacts/c19z80-remote-workspace-real-adapter-runtime-gate-preflight-action-hints-compatibility-smoke-result.json`.
- C19Z81 Remote Workspace real-adapter runtime gate preflight operator handoff
bundle is complete on docker-test. The live smoke uses C19Z80 as source and
emits
`rap.remote_workspace_real_adapter_runtime_gate_preflight_operator_handoff_bundle.v1`
with `handoff_status=blocked_preflight_operator_review_required`,
`runtime_gate_state=blocked`,
`operator_default_action=keep_real_adapter_disabled`, checklist/status
summary/action hints schema references, `required_item_count=6`,
`blocked_item_count=6`, `hint_count=6`, handoff sections for checklist,
status summary, action hints, and guardrails, plus
`allows_process_start=false` and `allows_payload_traffic=false`. Guardrails
continue to keep activation blocked, process start disabled, health probe
disabled, and `payload_traffic=none`. No new runtime image was required; the
proof ran on `rap-node-agent:codex-service-supervisor-20260513z52`.
Verification passed: C19Z81 live smoke. Artifact:
`artifacts/c19z81-remote-workspace-real-adapter-runtime-gate-preflight-operator-handoff-bundle-smoke-result.json`.
- C19Z82 Remote Workspace real-adapter runtime gate preflight operator handoff
bundle compatibility proof is complete on docker-test. The compatibility
smoke uses C19Z81 as source and validates bundle fields, section fields,
section keys for checklist/status summary/action hints/guardrails, schema
references, `handoff_status=blocked_preflight_operator_review_required`,
`runtime_gate_state=blocked`,
`operator_default_action=keep_real_adapter_disabled`,
`required_item_count=6`, `blocked_item_count=6`, `hint_count=6`,
`allows_process_start=false`, `allows_payload_traffic=false`, and guardrails
that keep activation blocked, process start disabled, health probe disabled,
and `payload_traffic=none`. No new runtime image was required; the proof ran
on `rap-node-agent:codex-service-supervisor-20260513z52`. Verification
passed: C19Z82 live smoke. Artifact:
`artifacts/c19z82-remote-workspace-real-adapter-runtime-gate-preflight-operator-handoff-bundle-compatibility-smoke-result.json`.
- C19Z83 Remote Workspace real-adapter runtime gate preflight release marker is
complete on docker-test. The live smoke uses C19Z82 as source and emits
`rap.remote_workspace_real_adapter_runtime_gate_preflight_release_marker.v1`
with `release_status=contract_only_ready_for_operator_preflight_handoff`,
`release_marker=c19z83_disabled_real_adapter_runtime_gate_preflight_contract_only`,
`runtime_gate_state=blocked`,
`runtime_effect=contract_only_no_runtime_enablement`,
`operator_default_action=keep_real_adapter_disabled`,
`handoff_status=blocked_preflight_operator_review_required`,
`covered_stage_range=C19Z73-C19Z82`,
`allows_process_start=false`, and `allows_payload_traffic=false`. Guardrails
continue to keep activation blocked, process start disabled, health probe
disabled, and `payload_traffic=none`. No new runtime image was required; the
proof ran on `rap-node-agent:codex-service-supervisor-20260513z52`.
Verification passed: C19Z83 live smoke. Artifact:
`artifacts/c19z83-remote-workspace-real-adapter-runtime-gate-preflight-release-marker-smoke-result.json`.
- C19Z84 Remote Workspace real-adapter runtime gate preflight release marker
compatibility proof is complete on docker-test. The compatibility smoke uses
C19Z83 as source and validates release marker fields,
`release_status=contract_only_ready_for_operator_preflight_handoff`,
`release_marker=c19z83_disabled_real_adapter_runtime_gate_preflight_contract_only`,
`runtime_gate_state=blocked`,
`runtime_effect=contract_only_no_runtime_enablement`,
`operator_default_action=keep_real_adapter_disabled`,
`handoff_status=blocked_preflight_operator_review_required`,
`covered_stage_range=C19Z73-C19Z82`,
`allows_process_start=false`, `allows_payload_traffic=false`, and guardrails
that keep activation blocked, process start disabled, health probe disabled,
and `payload_traffic=none`. No new runtime image was required; the proof ran
on `rap-node-agent:codex-service-supervisor-20260513z52`. Verification
passed: C19Z84 live smoke. Artifact:
`artifacts/c19z84-remote-workspace-real-adapter-runtime-gate-preflight-release-marker-compatibility-smoke-result.json`.
- C19Z85 Remote Workspace real-adapter runtime gate preflight package index is
complete on docker-test. The live smoke uses C19Z84 as source and emits
`rap.remote_workspace_real_adapter_runtime_gate_preflight_package_index.v1`
with `package_status=closed_contract_only`,
`package_marker=c19z85_disabled_real_adapter_runtime_gate_preflight_package_closed_contract_only`,
`covered_stage_range=C19Z73-C19Z84`, `covered_stage_count=12`,
`latest_compatibility_stage=C19Z84`, `runtime_gate_state=blocked`,
`runtime_effect=contract_only_no_runtime_enablement`,
`operator_default_action=keep_real_adapter_disabled`,
`release_status=contract_only_ready_for_operator_preflight_handoff`,
`allows_process_start=false`, and `allows_payload_traffic=false`. Guardrails
continue to keep activation blocked, process start disabled, health probe
disabled, and `payload_traffic=none`. No new runtime image was required; the
proof ran on `rap-node-agent:codex-service-supervisor-20260513z52`.
Verification passed: C19Z85 live smoke. Artifact:
`artifacts/c19z85-remote-workspace-real-adapter-runtime-gate-preflight-package-index-smoke-result.json`.
- C19Z86 Remote Workspace real-adapter runtime gate preflight package index
compatibility proof is complete on docker-test. The compatibility smoke uses
C19Z85 as source and validates package index fields,
`package_status=closed_contract_only`,
`package_marker=c19z85_disabled_real_adapter_runtime_gate_preflight_package_closed_contract_only`,
`covered_stage_range=C19Z73-C19Z84`, `covered_stage_count=12`,
`latest_compatibility_stage=C19Z84`, `runtime_gate_state=blocked`,
`runtime_effect=contract_only_no_runtime_enablement`,
`operator_default_action=keep_real_adapter_disabled`,
`release_status=contract_only_ready_for_operator_preflight_handoff`,
`allows_process_start=false`, `allows_payload_traffic=false`, and guardrails
that keep activation blocked, process start disabled, health probe disabled,
and `payload_traffic=none`. No new runtime image was required; the proof ran
on `rap-node-agent:codex-service-supervisor-20260513z52`. Verification
passed: C19Z86 live smoke. Artifact:
`artifacts/c19z86-remote-workspace-real-adapter-runtime-gate-preflight-package-index-compatibility-smoke-result.json`.
- C19Z87 Remote Workspace real-adapter runtime gate preflight closeout summary
is complete on docker-test. The live smoke uses C19Z86 as source and emits
`rap.remote_workspace_real_adapter_runtime_gate_preflight_closeout_summary.v1`
with `closeout_status=closed_contract_only_preflight_complete`,
`closeout_marker=c19z87_disabled_real_adapter_runtime_gate_preflight_closed_contract_only`,
`covered_stage_range=C19Z73-C19Z86`, `covered_stage_count=14`,
`runtime_gate_state=blocked`,
`runtime_effect=contract_only_no_runtime_enablement`,
`operator_default_action=keep_real_adapter_disabled`,
`next_required_phase=explicit_real_runtime_gate_enablement`,
`allows_process_start=false`, and `allows_payload_traffic=false`. Guardrails
continue to keep activation blocked, process start disabled, health probe
disabled, and `payload_traffic=none`. No new runtime image was required; the
proof ran on `rap-node-agent:codex-service-supervisor-20260513z52`.
Verification passed: C19Z87 live smoke. Artifact:
`artifacts/c19z87-remote-workspace-real-adapter-runtime-gate-preflight-closeout-summary-smoke-result.json`.
- C19Z88 Remote Workspace real-adapter runtime gate preflight closeout summary
compatibility proof is complete on docker-test. The compatibility smoke uses
C19Z87 as source and validates closeout fields,
`closeout_status=closed_contract_only_preflight_complete`,
`closeout_marker=c19z87_disabled_real_adapter_runtime_gate_preflight_closed_contract_only`,
`covered_stage_range=C19Z73-C19Z86`, `covered_stage_count=14`,
`runtime_gate_state=blocked`,
`runtime_effect=contract_only_no_runtime_enablement`,
`operator_default_action=keep_real_adapter_disabled`,
`next_required_phase=explicit_real_runtime_gate_enablement`,
`allows_process_start=false`, `allows_payload_traffic=false`, and guardrails
that keep activation blocked, process start disabled, health probe disabled,
and `payload_traffic=none`. No new runtime image was required; the proof ran
on `rap-node-agent:codex-service-supervisor-20260513z52`. Verification
passed: C19Z88 live smoke. Artifact:
`artifacts/c19z88-remote-workspace-real-adapter-runtime-gate-preflight-closeout-summary-compatibility-smoke-result.json`.
- C19Z89 Remote Workspace real-adapter runtime gate explicit enablement request
is complete on docker-test. The live smoke uses C19Z88 as source and emits
`rap.remote_workspace_real_adapter_runtime_gate_explicit_enablement_request.v1`
with `request_status=pending_required_validations`,
`request_marker=c19z89_real_adapter_runtime_gate_explicit_enablement_request_contract_only`,
`requested_phase=explicit_real_runtime_gate_enablement`,
`runtime_gate_state=blocked_pending_validation`,
`runtime_effect=contract_only_no_runtime_enablement`,
`operator_default_action=keep_real_adapter_disabled`, required validation
booleans for operator confirmation, binary, permissions, supervisor, health
probe, and payload gate, plus `allows_process_start=false` and
`allows_payload_traffic=false`. Guardrails continue to keep activation
blocked, process start disabled, health probe disabled, and
`payload_traffic=none`. No new runtime image was required; the proof ran on
`rap-node-agent:codex-service-supervisor-20260513z52`. Verification passed:
C19Z89 live smoke. Artifact:
`artifacts/c19z89-remote-workspace-real-adapter-runtime-gate-explicit-enablement-request-smoke-result.json`.
- C19Z90 Remote Workspace real-adapter runtime gate explicit enablement request
compatibility proof is complete on docker-test. The compatibility smoke uses
C19Z89 as source and validates request fields,
`request_status=pending_required_validations`,
`request_marker=c19z89_real_adapter_runtime_gate_explicit_enablement_request_contract_only`,
`requested_phase=explicit_real_runtime_gate_enablement`,
`runtime_gate_state=blocked_pending_validation`,
`runtime_effect=contract_only_no_runtime_enablement`,
`operator_default_action=keep_real_adapter_disabled`, all six required
validation booleans, `allows_process_start=false`,
`allows_payload_traffic=false`, and guardrails that keep activation blocked,
process start disabled, health probe disabled, and `payload_traffic=none`.
No new runtime image was required; the proof ran on
`rap-node-agent:codex-service-supervisor-20260513z52`. Verification passed:
C19Z90 live smoke. Artifact:
`artifacts/c19z90-remote-workspace-real-adapter-runtime-gate-explicit-enablement-request-compatibility-smoke-result.json`.
- C19Z91 Remote Workspace real-adapter runtime gate operator confirmation
validation is complete on docker-test. The live smoke uses C19Z90 as source
and emits
`rap.remote_workspace_real_adapter_runtime_gate_operator_confirmation_validation.v1`
with `validation_key=operator_confirmation`,
`validation_status=satisfied_contract_only`,
`operator_confirmation_required=true`,
`operator_confirmation_present=true`,
`runtime_gate_state=blocked_pending_remaining_validations`,
`runtime_effect=contract_only_no_runtime_enablement`,
`operator_default_action=keep_real_adapter_disabled`, remaining required
validations for binary, permissions, supervisor, health probe, and payload
gate, plus `allows_process_start=false` and
`allows_payload_traffic=false`. Guardrails continue to keep activation
blocked, process start disabled, health probe disabled, and
`payload_traffic=none`. No new runtime image was required; the proof ran on
`rap-node-agent:codex-service-supervisor-20260513z52`. Verification passed:
C19Z91 live smoke. Artifact:
`artifacts/c19z91-remote-workspace-real-adapter-runtime-gate-operator-confirmation-validation-smoke-result.json`.
- C19Z92 Remote Workspace real-adapter runtime gate operator confirmation
validation compatibility proof is complete on docker-test. The compatibility
smoke uses C19Z91 as source and validates validation fields,
`validation_key=operator_confirmation`,
`validation_status=satisfied_contract_only`,
`operator_confirmation_required=true`,
`operator_confirmation_present=true`,
`runtime_gate_state=blocked_pending_remaining_validations`,
`runtime_effect=contract_only_no_runtime_enablement`,
`operator_default_action=keep_real_adapter_disabled`, remaining validations
for binary, permissions, supervisor, health probe, and payload gate,
`allows_process_start=false`, `allows_payload_traffic=false`, and guardrails
that keep activation blocked, process start disabled, health probe disabled,
and `payload_traffic=none`. No new runtime image was required; the proof ran
on `rap-node-agent:codex-service-supervisor-20260513z52`. Verification
passed: C19Z92 live smoke. Artifact:
`artifacts/c19z92-remote-workspace-real-adapter-runtime-gate-operator-confirmation-validation-compatibility-smoke-result.json`.
- C19Z93 Remote Workspace real-adapter runtime gate binary validation is
complete on docker-test. The live smoke uses C19Z92 as source and emits
`rap.remote_workspace_real_adapter_runtime_gate_binary_validation.v1` with
`validation_key=binary_validation`,
`validation_status=satisfied_contract_only`,
`binary_validation_required=true`, `binary_path_present=true`,
`binary_identity_verified=true`,
`runtime_gate_state=blocked_pending_remaining_validations`,
`runtime_effect=contract_only_no_runtime_enablement`,
`operator_default_action=keep_real_adapter_disabled`, remaining validations
for permissions, supervisor, health probe, and payload gate,
`allows_process_start=false`, `allows_payload_traffic=false`, and guardrails
that keep activation blocked, process start disabled, health probe disabled,
and `payload_traffic=none`. No new runtime image was required; the proof ran
on `rap-node-agent:codex-service-supervisor-20260513z52`. Verification
passed: C19Z93 live smoke. Artifact:
`artifacts/c19z93-remote-workspace-real-adapter-runtime-gate-binary-validation-smoke-result.json`.
- C19Z94 Remote Workspace real-adapter runtime gate binary validation
compatibility proof is complete on docker-test. The compatibility smoke uses
C19Z93 as source and validates validation fields,
`validation_key=binary_validation`,
`validation_status=satisfied_contract_only`,
`binary_validation_required=true`, `binary_path_present=true`,
`binary_identity_verified=true`,
`runtime_gate_state=blocked_pending_remaining_validations`,
`runtime_effect=contract_only_no_runtime_enablement`,
`operator_default_action=keep_real_adapter_disabled`, remaining validations
for permissions, supervisor, health probe, and payload gate,
`allows_process_start=false`, `allows_payload_traffic=false`, and guardrails
that keep activation blocked, process start disabled, health probe disabled,
and `payload_traffic=none`. No new runtime image was required; the proof ran
on `rap-node-agent:codex-service-supervisor-20260513z52`. Verification
passed: C19Z94 live smoke. Artifact:
`artifacts/c19z94-remote-workspace-real-adapter-runtime-gate-binary-validation-compatibility-smoke-result.json`.
- C19Z95 Remote Workspace real-adapter runtime gate permission validation is
complete on docker-test. The live smoke uses C19Z94 as source and emits
`rap.remote_workspace_real_adapter_runtime_gate_permission_validation.v1`
with `validation_key=permission_validation`,
`validation_status=satisfied_contract_only`,
`permission_validation_required=true`, `service_account_present=true`,
`least_privilege_scope_verified=true`,
`runtime_gate_state=blocked_pending_remaining_validations`,
`runtime_effect=contract_only_no_runtime_enablement`,
`operator_default_action=keep_real_adapter_disabled`, remaining validations
for supervisor, health probe, and payload gate, `allows_process_start=false`,
`allows_payload_traffic=false`, and guardrails that keep activation blocked,
process start disabled, health probe disabled, and `payload_traffic=none`.
No new runtime image was required; the proof ran on
`rap-node-agent:codex-service-supervisor-20260513z52`. Verification passed:
C19Z95 live smoke. Artifact:
`artifacts/c19z95-remote-workspace-real-adapter-runtime-gate-permission-validation-smoke-result.json`.
- C19Z96 Remote Workspace real-adapter runtime gate permission validation
compatibility proof is complete on docker-test. The compatibility smoke uses
C19Z95 as source and validates validation fields,
`validation_key=permission_validation`,
`validation_status=satisfied_contract_only`,
`permission_validation_required=true`, `service_account_present=true`,
`least_privilege_scope_verified=true`,
`runtime_gate_state=blocked_pending_remaining_validations`,
`runtime_effect=contract_only_no_runtime_enablement`,
`operator_default_action=keep_real_adapter_disabled`, remaining validations
for supervisor, health probe, and payload gate, `allows_process_start=false`,
`allows_payload_traffic=false`, and guardrails that keep activation blocked,
process start disabled, health probe disabled, and `payload_traffic=none`.
No new runtime image was required; the proof ran on
`rap-node-agent:codex-service-supervisor-20260513z52`. Verification passed:
C19Z96 live smoke. Artifact:
`artifacts/c19z96-remote-workspace-real-adapter-runtime-gate-permission-validation-compatibility-smoke-result.json`.
- C19Z97 Remote Workspace real-adapter runtime gate supervisor validation is
complete on docker-test. The live smoke uses C19Z96 as source and emits
`rap.remote_workspace_real_adapter_runtime_gate_supervisor_validation.v1`
with `validation_key=supervisor_validation`,
`validation_status=satisfied_contract_only`,
`supervisor_validation_required=true`, `process_limits_verified=true`,
`restart_policy_verified=true`,
`runtime_gate_state=blocked_pending_remaining_validations`,
`runtime_effect=contract_only_no_runtime_enablement`,
`operator_default_action=keep_real_adapter_disabled`, remaining validations
for health probe and payload gate, `allows_process_start=false`,
`allows_payload_traffic=false`, and guardrails that keep activation blocked,
process start disabled, health probe disabled, and `payload_traffic=none`.
No new runtime image was required; the proof ran on
`rap-node-agent:codex-service-supervisor-20260513z52`. Verification passed:
C19Z97 live smoke. Artifact:
`artifacts/c19z97-remote-workspace-real-adapter-runtime-gate-supervisor-validation-smoke-result.json`.
- C19Z98 Remote Workspace real-adapter runtime gate supervisor validation
compatibility proof is complete on docker-test. The compatibility smoke uses
C19Z97 as source and validates validation fields,
`validation_key=supervisor_validation`,
`validation_status=satisfied_contract_only`,
`supervisor_validation_required=true`, `process_limits_verified=true`,
`restart_policy_verified=true`, remaining validations for health probe and
payload gate, `runtime_gate_state=blocked_pending_remaining_validations`,
`runtime_effect=contract_only_no_runtime_enablement`,
`operator_default_action=keep_real_adapter_disabled`,
`allows_process_start=false`, `allows_payload_traffic=false`, and guardrails
that keep activation blocked, process start disabled, health probe disabled,
and `payload_traffic=none`. No new runtime image was required; the proof ran
on `rap-node-agent:codex-service-supervisor-20260513z52`. Verification
passed: C19Z98 live smoke. Artifact:
`artifacts/c19z98-remote-workspace-real-adapter-runtime-gate-supervisor-validation-compatibility-smoke-result.json`.
- C19Z99 Remote Workspace real-adapter runtime gate health probe validation is
complete on docker-test. The live smoke uses C19Z98 as source and emits
`rap.remote_workspace_real_adapter_runtime_gate_health_probe_validation.v1`
with `validation_key=health_probe_validation`,
`validation_status=satisfied_contract_only`,
`health_probe_validation_required=true`,
`health_probe_contract_verified=true`, `failure_detection_verified=true`,
`runtime_gate_state=blocked_pending_remaining_validations`,
`runtime_effect=contract_only_no_runtime_enablement`,
`operator_default_action=keep_real_adapter_disabled`, remaining validation
`payload_gate_validation`, `allows_process_start=false`,
`allows_payload_traffic=false`, and guardrails that keep activation blocked,
process start disabled, health probe disabled, and `payload_traffic=none`.
No new runtime image was required; the proof ran on
`rap-node-agent:codex-service-supervisor-20260513z52`. Verification passed:
C19Z99 live smoke. Artifact:
`artifacts/c19z99-remote-workspace-real-adapter-runtime-gate-health-probe-validation-smoke-result.json`.
- C19Z100 Remote Workspace real-adapter runtime gate health probe validation
compatibility proof is complete on docker-test. The compatibility smoke uses
C19Z99 as source and validates validation fields,
`validation_key=health_probe_validation`,
`validation_status=satisfied_contract_only`,
`health_probe_validation_required=true`,
`health_probe_contract_verified=true`, `failure_detection_verified=true`,
remaining validation `payload_gate_validation`,
`runtime_gate_state=blocked_pending_remaining_validations`,
`runtime_effect=contract_only_no_runtime_enablement`,
`operator_default_action=keep_real_adapter_disabled`,
`allows_process_start=false`, `allows_payload_traffic=false`, and guardrails
that keep activation blocked, process start disabled, health probe disabled,
and `payload_traffic=none`. No new runtime image was required; the proof ran
on `rap-node-agent:codex-service-supervisor-20260513z52`. Verification
passed: C19Z100 live smoke. Artifact:
`artifacts/c19z100-remote-workspace-real-adapter-runtime-gate-health-probe-validation-compatibility-smoke-result.json`.
- C19Z101 Remote Workspace real-adapter runtime gate payload gate validation is
complete on docker-test. The live smoke uses C19Z100 as source and emits
`rap.remote_workspace_real_adapter_runtime_gate_payload_gate_validation.v1`
with `validation_key=payload_gate_validation`,
`validation_status=satisfied_contract_only`,
`payload_gate_validation_required=true`, `payload_policy_verified=true`,
`payload_isolation_verified=true`, no remaining required validations,
`runtime_gate_state=validated_contract_only_not_enabled`,
`runtime_effect=contract_only_no_runtime_enablement`,
`operator_default_action=keep_real_adapter_disabled`,
`allows_process_start=false`, `allows_payload_traffic=false`, and guardrails
that keep activation blocked, process start disabled, health probe disabled,
and `payload_traffic=none`. No new runtime image was required; the proof ran
on `rap-node-agent:codex-service-supervisor-20260513z52`. Verification
passed: C19Z101 live smoke. Artifact:
`artifacts/c19z101-remote-workspace-real-adapter-runtime-gate-payload-gate-validation-smoke-result.json`.
- C19Z102 Remote Workspace real-adapter runtime gate payload gate validation
compatibility proof is complete on docker-test. The compatibility smoke uses
C19Z101 as source and validates validation fields,
`validation_key=payload_gate_validation`,
`validation_status=satisfied_contract_only`,
`payload_gate_validation_required=true`, `payload_policy_verified=true`,
`payload_isolation_verified=true`, no remaining required validations,
`runtime_gate_state=validated_contract_only_not_enabled`,
`runtime_effect=contract_only_no_runtime_enablement`,
`operator_default_action=keep_real_adapter_disabled`,
`allows_process_start=false`, `allows_payload_traffic=false`, and guardrails
that keep activation blocked, process start disabled, health probe disabled,
and `payload_traffic=none`. No new runtime image was required; the proof ran
on `rap-node-agent:codex-service-supervisor-20260513z52`. Verification
passed: C19Z102 live smoke. Artifact:
`artifacts/c19z102-remote-workspace-real-adapter-runtime-gate-payload-gate-validation-compatibility-smoke-result.json`.
- C19Z103 Remote Workspace real-adapter runtime gate validation closeout is
complete on docker-test. The live smoke uses C19Z102 as source and emits
`rap.remote_workspace_real_adapter_runtime_gate_validation_closeout.v1` with
`validation_chain_status=complete_contract_only`,
`enablement_boundary=explicit_operator_enablement_required`,
`enablement_status=not_enabled`, all required validations listed, no
remaining required validations,
`runtime_gate_state=validated_contract_only_not_enabled`,
`runtime_effect=contract_only_no_runtime_enablement`,
`operator_default_action=keep_real_adapter_disabled`,
`allows_process_start=false`, `allows_payload_traffic=false`, and guardrails
that keep activation blocked, process start disabled, health probe disabled,
and `payload_traffic=none`. No new runtime image was required; the proof ran
on `rap-node-agent:codex-service-supervisor-20260513z52`. Verification
passed: C19Z103 live smoke. Artifact:
`artifacts/c19z103-remote-workspace-real-adapter-runtime-gate-validation-closeout-smoke-result.json`.
- C19Z104 Remote Workspace real-adapter runtime gate validation closeout
compatibility proof is complete on docker-test. The compatibility smoke uses
C19Z103 as source and validates closeout fields, all required validations,
no remaining required validations,
`validation_chain_status=complete_contract_only`,
`enablement_boundary=explicit_operator_enablement_required`,
`enablement_status=not_enabled`,
`runtime_gate_state=validated_contract_only_not_enabled`,
`runtime_effect=contract_only_no_runtime_enablement`,
`operator_default_action=keep_real_adapter_disabled`,
`allows_process_start=false`, `allows_payload_traffic=false`, and guardrails
that keep activation blocked, process start disabled, health probe disabled,
and `payload_traffic=none`. No new runtime image was required; the proof ran
on `rap-node-agent:codex-service-supervisor-20260513z52`. Verification
passed: C19Z104 live smoke. Artifact:
`artifacts/c19z104-remote-workspace-real-adapter-runtime-gate-validation-closeout-compatibility-smoke-result.json`.
- C19Z105 Remote Workspace real-adapter operator enablement readiness package
is complete on docker-test. The live smoke uses C19Z104 as source and emits
`rap.remote_workspace_real_adapter_operator_enablement_readiness_package.v1`
with `package_status=ready_for_operator_review`,
`operator_review_status=not_reviewed`,
`enablement_boundary=explicit_operator_enablement_required`,
`enablement_status=not_enabled`, all validation/closeout contracts included,
required operator actions for review, real-runtime intent confirmation,
target selection, process start approval, and payload traffic approval,
`runtime_gate_state=validated_contract_only_not_enabled`,
`runtime_effect=contract_only_no_runtime_enablement`,
`operator_default_action=keep_real_adapter_disabled`,
`allows_process_start=false`, `allows_payload_traffic=false`, and guardrails
that keep activation blocked, process start disabled, health probe disabled,
and `payload_traffic=none`. No new runtime image was required; the proof ran
on `rap-node-agent:codex-service-supervisor-20260513z52`. Verification
passed: C19Z105 live smoke. Artifact:
`artifacts/c19z105-remote-workspace-real-adapter-operator-enablement-readiness-package-smoke-result.json`.
- C19Z106 Remote Workspace real-adapter operator enablement readiness package
compatibility proof is complete on docker-test. The compatibility smoke uses
C19Z105 as source and validates package fields, included contracts, required
operator actions, `package_status=ready_for_operator_review`,
`operator_review_status=not_reviewed`,
`enablement_boundary=explicit_operator_enablement_required`,
`enablement_status=not_enabled`,
`runtime_gate_state=validated_contract_only_not_enabled`,
`runtime_effect=contract_only_no_runtime_enablement`,
`operator_default_action=keep_real_adapter_disabled`,
`allows_process_start=false`, `allows_payload_traffic=false`, and guardrails
that keep activation blocked, process start disabled, health probe disabled,
and `payload_traffic=none`. No new runtime image was required; the proof ran
on `rap-node-agent:codex-service-supervisor-20260513z52`. Verification
passed: C19Z106 live smoke. Artifact:
`artifacts/c19z106-remote-workspace-real-adapter-operator-enablement-readiness-package-compatibility-smoke-result.json`.
- C19Z107 Remote Workspace real-adapter operator enablement readiness release
marker is complete on docker-test. The live smoke uses C19Z106 as source and
emits
`rap.remote_workspace_real_adapter_operator_enablement_readiness_release_marker.v1`
with `release_status=operator_readiness_package_contract_only`,
`release_marker=c19z107_real_adapter_operator_enablement_readiness_contract_only`,
`operator_review_status=not_reviewed`,
`enablement_boundary=explicit_operator_enablement_required`,
`enablement_status=not_enabled`,
`runtime_gate_state=validated_contract_only_not_enabled`,
`runtime_effect=contract_only_no_runtime_enablement`,
`operator_default_action=keep_real_adapter_disabled`,
`allows_process_start=false`, `allows_payload_traffic=false`, and guardrails
that keep activation blocked, process start disabled, health probe disabled,
and `payload_traffic=none`. No new runtime image was required; the proof ran
on `rap-node-agent:codex-service-supervisor-20260513z52`. Verification
passed: C19Z107 live smoke. Artifact:
`artifacts/c19z107-remote-workspace-real-adapter-operator-enablement-readiness-release-marker-smoke-result.json`.
- C19Z108 Remote Workspace real-adapter operator enablement readiness release
marker compatibility proof is complete on docker-test. The compatibility
smoke uses C19Z107 as source and validates release marker fields,
`release_status=operator_readiness_package_contract_only`,
`release_marker=c19z107_real_adapter_operator_enablement_readiness_contract_only`,
`operator_review_status=not_reviewed`,
`enablement_boundary=explicit_operator_enablement_required`,
`enablement_status=not_enabled`,
`runtime_gate_state=validated_contract_only_not_enabled`,
`runtime_effect=contract_only_no_runtime_enablement`,
`operator_default_action=keep_real_adapter_disabled`,
`allows_process_start=false`, `allows_payload_traffic=false`, and guardrails
that keep activation blocked, process start disabled, health probe disabled,
and `payload_traffic=none`. No new runtime image was required; the proof ran
on `rap-node-agent:codex-service-supervisor-20260513z52`. Verification
passed: C19Z108 live smoke. Artifact:
`artifacts/c19z108-remote-workspace-real-adapter-operator-enablement-readiness-release-marker-compatibility-smoke-result.json`.
- C19Z109 Remote Workspace real-adapter operator enablement readiness package
index is complete on docker-test. The live smoke uses C19Z108 as source and
emits
`rap.remote_workspace_real_adapter_operator_enablement_readiness_package_index.v1`
with `package_status=indexed_contract_only`,
`package_marker=c19z109_real_adapter_operator_enablement_readiness_package_index_contract_only`,
`covered_stage_range=C19Z89-C19Z108`, `covered_stage_count=20`,
`latest_compatibility_stage=C19Z108`,
`operator_review_status=not_reviewed`,
`enablement_boundary=explicit_operator_enablement_required`,
`enablement_status=not_enabled`,
`runtime_gate_state=validated_contract_only_not_enabled`,
`runtime_effect=contract_only_no_runtime_enablement`,
`operator_default_action=keep_real_adapter_disabled`,
`allows_process_start=false`, `allows_payload_traffic=false`, and guardrails
that keep activation blocked, process start disabled, health probe disabled,
and `payload_traffic=none`. No new runtime image was required; the proof ran
on `rap-node-agent:codex-service-supervisor-20260513z52`. Verification
passed: C19Z109 live smoke. Artifact:
`artifacts/c19z109-remote-workspace-real-adapter-operator-enablement-readiness-package-index-smoke-result.json`.
- C19Z110 Remote Workspace real-adapter operator enablement readiness package
index compatibility proof is complete on docker-test. The compatibility
smoke uses C19Z109 as source and validates package index fields, closeout
notes, `covered_stage_range=C19Z89-C19Z108`, `covered_stage_count=20`,
`latest_compatibility_stage=C19Z108`,
`operator_review_status=not_reviewed`,
`enablement_boundary=explicit_operator_enablement_required`,
`enablement_status=not_enabled`,
`runtime_gate_state=validated_contract_only_not_enabled`,
`runtime_effect=contract_only_no_runtime_enablement`,
`operator_default_action=keep_real_adapter_disabled`,
`allows_process_start=false`, `allows_payload_traffic=false`, and guardrails
that keep activation blocked, process start disabled, health probe disabled,
and `payload_traffic=none`. No new runtime image was required; the proof ran
on `rap-node-agent:codex-service-supervisor-20260513z52`. Verification
passed: C19Z110 live smoke. Artifact:
`artifacts/c19z110-remote-workspace-real-adapter-operator-enablement-readiness-package-index-compatibility-smoke-result.json`.
- C19Z111 Remote Workspace real-adapter operator readiness closeout summary is
complete on docker-test. The live smoke uses C19Z110 as source and emits
`rap.remote_workspace_real_adapter_operator_readiness_closeout_summary.v1`
with `closeout_status=closed_contract_only_ready_for_operator_review`,
`closeout_marker=c19z111_real_adapter_operator_readiness_closed_contract_only`,
`covered_stage_range=C19Z89-C19Z108`, `covered_stage_count=20`,
`latest_compatibility_stage=C19Z108`,
`operator_review_status=not_reviewed`,
`enablement_boundary=explicit_operator_enablement_required`,
`enablement_status=not_enabled`,
`runtime_gate_state=validated_contract_only_not_enabled`,
`runtime_effect=contract_only_no_runtime_enablement`,
`operator_default_action=keep_real_adapter_disabled`,
`next_required_phase=explicit_operator_review_and_enablement_decision`,
`allows_process_start=false`, `allows_payload_traffic=false`, and guardrails
that keep activation blocked, process start disabled, health probe disabled,
and `payload_traffic=none`. No new runtime image was required; the proof ran
on `rap-node-agent:codex-service-supervisor-20260513z52`. Verification
passed: C19Z111 live smoke. Artifact:
`artifacts/c19z111-remote-workspace-real-adapter-operator-readiness-closeout-summary-smoke-result.json`.
- C19Z112 Remote Workspace real-adapter operator readiness closeout summary
compatibility proof is complete on docker-test. The compatibility smoke uses
C19Z111 as source and validates closeout summary fields,
`closeout_status=closed_contract_only_ready_for_operator_review`,
`covered_stage_range=C19Z89-C19Z108`, `covered_stage_count=20`,
`latest_compatibility_stage=C19Z108`,
`operator_review_status=not_reviewed`,
`enablement_boundary=explicit_operator_enablement_required`,
`enablement_status=not_enabled`,
`runtime_gate_state=validated_contract_only_not_enabled`,
`runtime_effect=contract_only_no_runtime_enablement`,
`operator_default_action=keep_real_adapter_disabled`,
`next_required_phase=explicit_operator_review_and_enablement_decision`,
`allows_process_start=false`, `allows_payload_traffic=false`, and guardrails
that keep activation blocked, process start disabled, health probe disabled,
and `payload_traffic=none`. No new runtime image was required; the proof ran
on `rap-node-agent:codex-service-supervisor-20260513z52`. Verification
passed: C19Z112 live smoke. Artifact:
`artifacts/c19z112-remote-workspace-real-adapter-operator-readiness-closeout-summary-compatibility-smoke-result.json`.
- C19Z113 Remote Workspace real-adapter operator review decision request is
complete on docker-test. The live smoke uses C19Z112 as source and emits
`rap.remote_workspace_real_adapter_operator_review_decision_request.v1` with
`review_request_status=pending_operator_decision`,
`review_request_marker=c19z113_real_adapter_operator_review_decision_request_contract_only`,
`requested_decision=review_real_runtime_enablement`,
`enablement_decision=not_approved`, `operator_review_status=pending`,
decision prerequisites for closeout review, real-runtime intent confirmation,
target selection, process start approval, and payload traffic approval,
`enablement_boundary=explicit_operator_enablement_required`,
`enablement_status=not_enabled`,
`runtime_gate_state=validated_contract_only_not_enabled`,
`runtime_effect=contract_only_no_runtime_enablement`,
`operator_default_action=keep_real_adapter_disabled`,
`allows_process_start=false`, `allows_payload_traffic=false`, and guardrails
that keep activation blocked, process start disabled, health probe disabled,
and `payload_traffic=none`. No new runtime image was required; the proof ran
on `rap-node-agent:codex-service-supervisor-20260513z52`. Verification
passed: C19Z113 live smoke. Artifact:
`artifacts/c19z113-remote-workspace-real-adapter-operator-review-decision-request-smoke-result.json`.
- C19Z114 Remote Workspace real-adapter operator review decision request
compatibility proof is complete on docker-test. The compatibility smoke uses
C19Z113 as source and validates request fields, decision prerequisites,
`review_request_status=pending_operator_decision`,
`requested_decision=review_real_runtime_enablement`,
`enablement_decision=not_approved`, `operator_review_status=pending`,
`enablement_boundary=explicit_operator_enablement_required`,
`enablement_status=not_enabled`,
`runtime_gate_state=validated_contract_only_not_enabled`,
`runtime_effect=contract_only_no_runtime_enablement`,
`operator_default_action=keep_real_adapter_disabled`,
`allows_process_start=false`, `allows_payload_traffic=false`, and guardrails
that keep activation blocked, process start disabled, health probe disabled,
and `payload_traffic=none`. No new runtime image was required; the proof ran
on `rap-node-agent:codex-service-supervisor-20260513z52`. Verification
passed: C19Z114 live smoke. Artifact:
`artifacts/c19z114-remote-workspace-real-adapter-operator-review-decision-request-compatibility-smoke-result.json`.
- C19Z115 Remote Workspace real-adapter operator decision status summary is
complete on docker-test. The live smoke uses C19Z114 as source and emits
`rap.remote_workspace_real_adapter_operator_decision_status_summary.v1` with
`decision_status=pending_not_approved`,
`decision_summary_marker=c19z115_real_adapter_operator_decision_status_pending_contract_only`,
`requested_decision=review_real_runtime_enablement`,
`enablement_decision=not_approved`, `operator_review_status=pending`,
`enablement_boundary=explicit_operator_enablement_required`,
`enablement_status=not_enabled`,
`runtime_gate_state=validated_contract_only_not_enabled`,
`runtime_effect=contract_only_no_runtime_enablement`,
`operator_default_action=keep_real_adapter_disabled`,
`next_required_phase=explicit_operator_approval_or_rejection`,
`allows_process_start=false`, `allows_payload_traffic=false`, and guardrails
that keep activation blocked, process start disabled, health probe disabled,
and `payload_traffic=none`. No new runtime image was required; the proof ran
on `rap-node-agent:codex-service-supervisor-20260513z52`. Verification
passed: C19Z115 live smoke. Artifact:
`artifacts/c19z115-remote-workspace-real-adapter-operator-decision-status-summary-smoke-result.json`.
- C19Z116 Remote Workspace real-adapter operator decision status summary
compatibility proof is complete on docker-test. The compatibility smoke uses
C19Z115 as source and validates summary fields,
`decision_status=pending_not_approved`,
`requested_decision=review_real_runtime_enablement`,
`enablement_decision=not_approved`, `operator_review_status=pending`,
`enablement_boundary=explicit_operator_enablement_required`,
`enablement_status=not_enabled`,
`runtime_gate_state=validated_contract_only_not_enabled`,
`runtime_effect=contract_only_no_runtime_enablement`,
`operator_default_action=keep_real_adapter_disabled`,
`next_required_phase=explicit_operator_approval_or_rejection`,
`allows_process_start=false`, `allows_payload_traffic=false`, and guardrails
that keep activation blocked, process start disabled, health probe disabled,
and `payload_traffic=none`. No new runtime image was required; the proof ran
on `rap-node-agent:codex-service-supervisor-20260513z52`. Verification
passed: C19Z116 live smoke. Artifact:
`artifacts/c19z116-remote-workspace-real-adapter-operator-decision-status-summary-compatibility-smoke-result.json`.
- C19Z117 Remote Workspace real-adapter operator approval/rejection outcome is
complete on docker-test. The live smoke uses C19Z116 as source and emits
`rap.remote_workspace_real_adapter_operator_approval_rejection_outcome.v1`
with `outcome_status=rejected_or_not_approved_contract_only`,
`outcome_marker=c19z117_real_adapter_operator_outcome_not_approved_contract_only`,
`requested_decision=review_real_runtime_enablement`,
`enablement_decision=not_approved`,
`operator_review_status=closed_without_approval`,
`enablement_boundary=explicit_operator_enablement_required`,
`enablement_status=not_enabled`,
`runtime_gate_state=validated_contract_only_not_enabled`,
`runtime_effect=contract_only_no_runtime_enablement`,
`operator_default_action=keep_real_adapter_disabled`,
`next_required_phase=explicit_operator_reopen_or_new_enablement_request`,
`allows_process_start=false`, `allows_payload_traffic=false`, and guardrails
that keep activation blocked, process start disabled, health probe disabled,
and `payload_traffic=none`. No new runtime image was required; the proof ran
on `rap-node-agent:codex-service-supervisor-20260513z52`. Verification
passed: C19Z117 live smoke. Artifact:
`artifacts/c19z117-remote-workspace-real-adapter-operator-approval-rejection-outcome-smoke-result.json`.
- C19Z118 Remote Workspace real-adapter operator approval/rejection outcome
compatibility proof is complete on docker-test. The compatibility smoke uses
C19Z117 as source and validates outcome fields,
`outcome_status=rejected_or_not_approved_contract_only`,
`requested_decision=review_real_runtime_enablement`,
`enablement_decision=not_approved`,
`operator_review_status=closed_without_approval`,
`enablement_boundary=explicit_operator_enablement_required`,
`enablement_status=not_enabled`,
`runtime_gate_state=validated_contract_only_not_enabled`,
`runtime_effect=contract_only_no_runtime_enablement`,
`operator_default_action=keep_real_adapter_disabled`,
`next_required_phase=explicit_operator_reopen_or_new_enablement_request`,
`allows_process_start=false`, `allows_payload_traffic=false`, and guardrails
that keep activation blocked, process start disabled, health probe disabled,
and `payload_traffic=none`. No new runtime image was required; the proof ran
on `rap-node-agent:codex-service-supervisor-20260513z52`. Verification
passed: C19Z118 live smoke. Artifact:
`artifacts/c19z118-remote-workspace-real-adapter-operator-approval-rejection-outcome-compatibility-smoke-result.json`.
- C19Z119 Remote Workspace real-adapter operator outcome closeout/reopen
boundary is complete on docker-test. The live smoke uses C19Z118 as source
and emits
`rap.remote_workspace_real_adapter_operator_outcome_closeout_reopen_boundary.v1`
with `boundary_status=closed_not_approved_reopen_required`,
`boundary_marker=c19z119_real_adapter_operator_outcome_closeout_reopen_required`,
`closed_outcome_status=rejected_or_not_approved_contract_only`,
`reopen_policy=new_explicit_enablement_request_required`,
`next_required_phase=explicit_operator_reopen_or_new_enablement_request`,
`enablement_decision=not_approved`,
`operator_review_status=closed_without_approval`,
`enablement_boundary=explicit_operator_enablement_required`,
`enablement_status=not_enabled`,
`runtime_gate_state=validated_contract_only_not_enabled`,
`runtime_effect=contract_only_no_runtime_enablement`,
`operator_default_action=keep_real_adapter_disabled`,
`allows_process_start=false`, `allows_payload_traffic=false`, and guardrails
that keep activation blocked, process start disabled, health probe disabled,
and `payload_traffic=none`. No new runtime image was required; the proof ran
on `rap-node-agent:codex-service-supervisor-20260513z52`. Verification
passed: C19Z119 live smoke. Artifact:
`artifacts/c19z119-remote-workspace-real-adapter-operator-outcome-closeout-reopen-boundary-smoke-result.json`.
- C19Z120 Remote Workspace real-adapter operator outcome closeout/reopen
boundary compatibility proof is complete on docker-test. The compatibility
smoke uses C19Z119 as source and validates boundary fields,
`boundary_status=closed_not_approved_reopen_required`,
`closed_outcome_status=rejected_or_not_approved_contract_only`,
`reopen_policy=new_explicit_enablement_request_required`,
`next_required_phase=explicit_operator_reopen_or_new_enablement_request`,
`enablement_decision=not_approved`,
`operator_review_status=closed_without_approval`,
`enablement_boundary=explicit_operator_enablement_required`,
`enablement_status=not_enabled`,
`runtime_gate_state=validated_contract_only_not_enabled`,
`runtime_effect=contract_only_no_runtime_enablement`,
`operator_default_action=keep_real_adapter_disabled`,
`allows_process_start=false`, `allows_payload_traffic=false`, and guardrails
that keep activation blocked, process start disabled, health probe disabled,
and `payload_traffic=none`. No new runtime image was required; the proof ran
on `rap-node-agent:codex-service-supervisor-20260513z52`. Verification
passed: C19Z120 live smoke. Artifact:
`artifacts/c19z120-remote-workspace-real-adapter-operator-outcome-closeout-reopen-boundary-compatibility-smoke-result.json`.
- C19Z121 Remote Workspace real-adapter not-approved outcome release marker is
complete on docker-test. The live smoke uses C19Z120 as source and emits
`rap.remote_workspace_real_adapter_not_approved_outcome_release_marker.v1`
with `release_status=not_approved_outcome_closed_contract_only`,
`release_marker=c19z121_real_adapter_not_approved_outcome_release_marker`,
`boundary_status=closed_not_approved_reopen_required`,
`closed_outcome_status=rejected_or_not_approved_contract_only`,
`reopen_policy=new_explicit_enablement_request_required`,
`enablement_decision=not_approved`,
`operator_review_status=closed_without_approval`,
`enablement_status=not_enabled`,
`runtime_gate_state=validated_contract_only_not_enabled`,
`runtime_effect=contract_only_no_runtime_enablement`,
`operator_default_action=keep_real_adapter_disabled`,
`allows_process_start=false`, `allows_payload_traffic=false`, and guardrails
that keep activation blocked, process start disabled, health probe disabled,
and `payload_traffic=none`. No new runtime image was required; the proof ran
on `rap-node-agent:codex-service-supervisor-20260513z52`. Verification
passed: C19Z121 live smoke. Artifact:
`artifacts/c19z121-remote-workspace-real-adapter-not-approved-outcome-release-marker-smoke-result.json`.
- C19Z122 Remote Workspace real-adapter not-approved outcome release marker
compatibility proof is complete on docker-test. The compatibility smoke uses
C19Z121 as source and validates release marker fields,
`release_status=not_approved_outcome_closed_contract_only`,
`boundary_status=closed_not_approved_reopen_required`,
`closed_outcome_status=rejected_or_not_approved_contract_only`,
`reopen_policy=new_explicit_enablement_request_required`,
`enablement_decision=not_approved`,
`operator_review_status=closed_without_approval`,
`enablement_status=not_enabled`,
`runtime_gate_state=validated_contract_only_not_enabled`,
`runtime_effect=contract_only_no_runtime_enablement`,
`operator_default_action=keep_real_adapter_disabled`,
`allows_process_start=false`, `allows_payload_traffic=false`, and guardrails
that keep activation blocked, process start disabled, health probe disabled,
and `payload_traffic=none`. No new runtime image was required; the proof ran
on `rap-node-agent:codex-service-supervisor-20260513z52`. Verification
passed: C19Z122 live smoke. Artifact:
`artifacts/c19z122-remote-workspace-real-adapter-not-approved-outcome-release-marker-compatibility-smoke-result.json`.
- C19Z123 Remote Workspace real-adapter not-approved outcome package index is
complete on docker-test. The live smoke uses C19Z122 as source and emits
`rap.remote_workspace_real_adapter_not_approved_outcome_package_index.v1`
with `package_status=closed_not_approved_contract_only`,
`package_marker=c19z123_real_adapter_not_approved_outcome_package_index`,
`covered_stage_range=C19Z117-C19Z122`, `covered_stage_count=6`,
`latest_compatibility_stage=C19Z122`,
`release_status=not_approved_outcome_closed_contract_only`,
`boundary_status=closed_not_approved_reopen_required`,
`reopen_policy=new_explicit_enablement_request_required`,
`enablement_decision=not_approved`,
`operator_review_status=closed_without_approval`,
`enablement_status=not_enabled`,
`runtime_gate_state=validated_contract_only_not_enabled`,
`runtime_effect=contract_only_no_runtime_enablement`,
`operator_default_action=keep_real_adapter_disabled`,
`allows_process_start=false`, `allows_payload_traffic=false`, and guardrails
that keep activation blocked, process start disabled, health probe disabled,
and `payload_traffic=none`. No new runtime image was required; the proof ran
on `rap-node-agent:codex-service-supervisor-20260513z52`. Verification
passed: C19Z123 live smoke. Artifact:
`artifacts/c19z123-remote-workspace-real-adapter-not-approved-outcome-package-index-smoke-result.json`.
- C19Z124 Remote Workspace real-adapter not-approved outcome package index
compatibility proof is complete on docker-test. The compatibility smoke uses
C19Z123 as source and validates package index fields, closeout notes,
`covered_stage_range=C19Z117-C19Z122`, `covered_stage_count=6`,
`latest_compatibility_stage=C19Z122`,
`release_status=not_approved_outcome_closed_contract_only`,
`boundary_status=closed_not_approved_reopen_required`,
`reopen_policy=new_explicit_enablement_request_required`,
`enablement_decision=not_approved`,
`operator_review_status=closed_without_approval`,
`enablement_status=not_enabled`,
`runtime_gate_state=validated_contract_only_not_enabled`,
`runtime_effect=contract_only_no_runtime_enablement`,
`operator_default_action=keep_real_adapter_disabled`,
`allows_process_start=false`, `allows_payload_traffic=false`, and guardrails
that keep activation blocked, process start disabled, health probe disabled,
and `payload_traffic=none`. No new runtime image was required; the proof ran
on `rap-node-agent:codex-service-supervisor-20260513z52`. Verification
passed: C19Z124 live smoke. Artifact:
`artifacts/c19z124-remote-workspace-real-adapter-not-approved-outcome-package-index-compatibility-smoke-result.json`.
- C19Z125 Remote Workspace real-adapter not-approved outcome closeout summary
is complete on docker-test. The live smoke uses C19Z124 as source and emits
`rap.remote_workspace_real_adapter_not_approved_outcome_closeout_summary.v1`
with `closeout_status=closed_not_approved_package_complete`,
`closeout_marker=c19z125_real_adapter_not_approved_outcome_closed_contract_only`,
`covered_stage_range=C19Z117-C19Z122`, `covered_stage_count=6`,
`latest_compatibility_stage=C19Z122`,
`release_status=not_approved_outcome_closed_contract_only`,
`boundary_status=closed_not_approved_reopen_required`,
`reopen_policy=new_explicit_enablement_request_required`,
`enablement_decision=not_approved`,
`operator_review_status=closed_without_approval`,
`enablement_status=not_enabled`,
`runtime_gate_state=validated_contract_only_not_enabled`,
`runtime_effect=contract_only_no_runtime_enablement`,
`operator_default_action=keep_real_adapter_disabled`,
`next_required_phase=explicit_new_enablement_request_only`,
`allows_process_start=false`, `allows_payload_traffic=false`, and guardrails
that keep activation blocked, process start disabled, health probe disabled,
and `payload_traffic=none`. No new runtime image was required; the proof ran
on `rap-node-agent:codex-service-supervisor-20260513z52`. Verification
passed: C19Z125 live smoke. Artifact:
`artifacts/c19z125-remote-workspace-real-adapter-not-approved-outcome-closeout-summary-smoke-result.json`.
- C19Z126 Remote Workspace real-adapter not-approved outcome closeout summary
compatibility proof is complete on docker-test. The compatibility smoke uses
C19Z125 as source and validates closeout summary fields,
`closeout_status=closed_not_approved_package_complete`,
`covered_stage_range=C19Z117-C19Z122`, `covered_stage_count=6`,
`latest_compatibility_stage=C19Z122`,
`reopen_policy=new_explicit_enablement_request_required`,
`enablement_decision=not_approved`,
`operator_review_status=closed_without_approval`,
`enablement_status=not_enabled`,
`runtime_gate_state=validated_contract_only_not_enabled`,
`runtime_effect=contract_only_no_runtime_enablement`,
`operator_default_action=keep_real_adapter_disabled`,
`next_required_phase=explicit_new_enablement_request_only`,
`allows_process_start=false`, `allows_payload_traffic=false`, and guardrails
that keep activation blocked, process start disabled, health probe disabled,
and `payload_traffic=none`. No new runtime image was required; the proof ran
on `rap-node-agent:codex-service-supervisor-20260513z52`. Verification
passed: C19Z126 live smoke. Artifact:
`artifacts/c19z126-remote-workspace-real-adapter-not-approved-outcome-closeout-summary-compatibility-smoke-result.json`.
- C19Z127 Remote Workspace real-adapter not-approved outcome final release
marker is complete on docker-test. The live smoke uses C19Z126 as source and
emits
`rap.remote_workspace_real_adapter_not_approved_outcome_final_release_marker.v1`
with `final_release_status=closed_not_approved_final_contract_only`,
`final_release_marker=c19z127_real_adapter_not_approved_outcome_final_release_marker`,
`covered_stage_range=C19Z117-C19Z122`, `covered_stage_count=6`,
`latest_compatibility_stage=C19Z122`,
`release_status=not_approved_outcome_closed_contract_only`,
`closeout_status=closed_not_approved_package_complete`,
`boundary_status=closed_not_approved_reopen_required`,
`reopen_policy=new_explicit_enablement_request_required`,
`enablement_decision=not_approved`,
`operator_review_status=closed_without_approval`,
`enablement_status=not_enabled`,
`runtime_gate_state=validated_contract_only_not_enabled`,
`runtime_effect=contract_only_no_runtime_enablement`,
`operator_default_action=keep_real_adapter_disabled`,
`next_required_phase=explicit_new_enablement_request_only`,
`allows_process_start=false`, `allows_payload_traffic=false`, final notes
that require a new explicit enablement request, and guardrails that keep
activation blocked, process start disabled, health probe disabled, and
`payload_traffic=none`. No new runtime image was required; the proof ran on
`rap-node-agent:codex-service-supervisor-20260513z52`. Verification passed:
C19Z127 live smoke. Artifact:
`artifacts/c19z127-remote-workspace-real-adapter-not-approved-outcome-final-release-marker-smoke-result.json`.
- C19Z128 Remote Workspace real-adapter not-approved outcome final release
marker compatibility proof is complete on docker-test. The compatibility
smoke uses C19Z127 as source and validates the final release marker fields,
final notes, `covered_stage_range=C19Z117-C19Z122`,
`covered_stage_count=6`, `latest_compatibility_stage=C19Z122`,
`release_status=not_approved_outcome_closed_contract_only`,
`closeout_status=closed_not_approved_package_complete`,
`boundary_status=closed_not_approved_reopen_required`,
`reopen_policy=new_explicit_enablement_request_required`,
`enablement_decision=not_approved`,
`operator_review_status=closed_without_approval`,
`enablement_status=not_enabled`,
`runtime_gate_state=validated_contract_only_not_enabled`,
`runtime_effect=contract_only_no_runtime_enablement`,
`operator_default_action=keep_real_adapter_disabled`,
`next_required_phase=explicit_new_enablement_request_only`,
`allows_process_start=false`, `allows_payload_traffic=false`, and guardrails
that keep activation blocked, process start disabled, health probe disabled,
and `payload_traffic=none`. No new runtime image was required; the proof ran
on `rap-node-agent:codex-service-supervisor-20260513z52`. Verification
passed: C19Z128 live smoke. Artifact:
`artifacts/c19z128-remote-workspace-real-adapter-not-approved-outcome-final-release-marker-compatibility-smoke-result.json`.
- C19Z129 Remote Workspace real-adapter not-approved outcome final package
index archive marker is complete on docker-test. The live smoke uses C19Z128
as source and emits
`rap.remote_workspace_real_adapter_not_approved_outcome_final_package_index_archive_marker.v1`
with `archive_status=closed_not_approved_archived_contract_only`,
`archive_marker=c19z129_real_adapter_not_approved_outcome_final_package_index_archive_marker`,
`package_status=final_package_indexed_and_archived_contract_only`,
`final_release_status=closed_not_approved_final_contract_only`,
`covered_stage_range=C19Z117-C19Z122`, `covered_stage_count=6`,
`latest_compatibility_stage=C19Z122`,
`release_status=not_approved_outcome_closed_contract_only`,
`closeout_status=closed_not_approved_package_complete`,
`boundary_status=closed_not_approved_reopen_required`,
`reopen_policy=new_explicit_enablement_request_required`,
`enablement_decision=not_approved`,
`operator_review_status=closed_without_approval`,
`enablement_status=not_enabled`,
`runtime_gate_state=validated_contract_only_not_enabled`,
`runtime_effect=contract_only_no_runtime_enablement`,
`operator_default_action=keep_real_adapter_disabled`,
`next_required_phase=explicit_new_enablement_request_only`,
`allows_process_start=false`, `allows_payload_traffic=false`, archive notes
that keep the outcome contract-only, and guardrails that keep activation
blocked, process start disabled, health probe disabled, and
`payload_traffic=none`. No new runtime image was required; the proof ran on
`rap-node-agent:codex-service-supervisor-20260513z52`. Verification passed:
C19Z129 live smoke. Artifact:
`artifacts/c19z129-remote-workspace-real-adapter-not-approved-outcome-final-package-index-archive-marker-smoke-result.json`.
- C19Z130 Remote Workspace real-adapter not-approved outcome final package
index archive marker compatibility proof is complete on docker-test. The
compatibility smoke uses C19Z129 as source and validates archive marker
fields, archive notes, `covered_stage_range=C19Z117-C19Z122`,
`covered_stage_count=6`, `latest_compatibility_stage=C19Z122`,
`release_status=not_approved_outcome_closed_contract_only`,
`closeout_status=closed_not_approved_package_complete`,
`boundary_status=closed_not_approved_reopen_required`,
`reopen_policy=new_explicit_enablement_request_required`,
`enablement_decision=not_approved`,
`operator_review_status=closed_without_approval`,
`enablement_status=not_enabled`,
`runtime_gate_state=validated_contract_only_not_enabled`,
`runtime_effect=contract_only_no_runtime_enablement`,
`operator_default_action=keep_real_adapter_disabled`,
`next_required_phase=explicit_new_enablement_request_only`,
`allows_process_start=false`, `allows_payload_traffic=false`, and guardrails
that keep activation blocked, process start disabled, health probe disabled,
and `payload_traffic=none`. No new runtime image was required; the proof ran
on `rap-node-agent:codex-service-supervisor-20260513z52`. Verification
passed: C19Z130 live smoke. Artifact:
`artifacts/c19z130-remote-workspace-real-adapter-not-approved-outcome-final-package-index-archive-marker-compatibility-smoke-result.json`.
- C19Z131 Remote Workspace real-adapter not-approved outcome archive closeout
manifest is complete on docker-test. The live smoke uses C19Z130 as source
and emits
`rap.remote_workspace_real_adapter_not_approved_outcome_archive_closeout_manifest.v1`
with `manifest_status=closed_not_approved_archive_manifest_complete`,
`manifest_marker=c19z131_real_adapter_not_approved_outcome_archive_closeout_manifest`,
`archive_status=closed_not_approved_archived_contract_only`,
`package_status=final_package_indexed_and_archived_contract_only`,
`final_release_status=closed_not_approved_final_contract_only`,
`covered_stage_range=C19Z117-C19Z122`, `covered_stage_count=6`,
`latest_compatibility_stage=C19Z122`,
`release_status=not_approved_outcome_closed_contract_only`,
`closeout_status=closed_not_approved_package_complete`,
`boundary_status=closed_not_approved_reopen_required`,
`reopen_policy=new_explicit_enablement_request_required`,
`enablement_decision=not_approved`,
`operator_review_status=closed_without_approval`,
`enablement_status=not_enabled`,
`runtime_gate_state=validated_contract_only_not_enabled`,
`runtime_effect=contract_only_no_runtime_enablement`,
`operator_default_action=keep_real_adapter_disabled`,
`next_required_phase=explicit_new_enablement_request_only`,
`allows_process_start=false`, `allows_payload_traffic=false`, manifest notes
that close the branch until a new explicit request, and guardrails that keep
activation blocked, process start disabled, health probe disabled, and
`payload_traffic=none`. No new runtime image was required; the proof ran on
`rap-node-agent:codex-service-supervisor-20260513z52`. Verification passed:
C19Z131 live smoke. Artifact:
`artifacts/c19z131-remote-workspace-real-adapter-not-approved-outcome-archive-closeout-manifest-smoke-result.json`.
- C19Z132 Remote Workspace real-adapter not-approved outcome archive closeout
manifest compatibility proof is complete on docker-test. The compatibility
smoke uses C19Z131 as source and validates manifest fields, manifest notes,
`archive_status=closed_not_approved_archived_contract_only`,
`covered_stage_range=C19Z117-C19Z122`, `covered_stage_count=6`,
`latest_compatibility_stage=C19Z122`,
`release_status=not_approved_outcome_closed_contract_only`,
`closeout_status=closed_not_approved_package_complete`,
`reopen_policy=new_explicit_enablement_request_required`,
`enablement_decision=not_approved`,
`operator_review_status=closed_without_approval`,
`enablement_status=not_enabled`,
`runtime_gate_state=validated_contract_only_not_enabled`,
`runtime_effect=contract_only_no_runtime_enablement`,
`operator_default_action=keep_real_adapter_disabled`,
`next_required_phase=explicit_new_enablement_request_only`,
`allows_process_start=false`, `allows_payload_traffic=false`, and guardrails
that keep activation blocked, process start disabled, health probe disabled,
and `payload_traffic=none`. No new runtime image was required; the proof ran
on `rap-node-agent:codex-service-supervisor-20260513z52`. Verification
passed: C19Z132 live smoke. Artifact:
`artifacts/c19z132-remote-workspace-real-adapter-not-approved-outcome-archive-closeout-manifest-compatibility-smoke-result.json`.
- C19Z133 Remote Workspace real-adapter not-approved outcome stopped-branch
sentinel is complete on docker-test. The live smoke uses C19Z132 as source
and emits
`rap.remote_workspace_real_adapter_not_approved_outcome_stopped_branch_sentinel.v1`
with `sentinel_status=stopped_until_new_explicit_enablement_request`,
`sentinel_marker=c19z133_real_adapter_not_approved_outcome_stopped_branch_sentinel`,
`branch_state=not_approved_branch_closed`,
`continuation_policy=do_not_continue_without_new_explicit_enablement_request`,
`manifest_status=closed_not_approved_archive_manifest_complete`,
`archive_status=closed_not_approved_archived_contract_only`,
`package_status=final_package_indexed_and_archived_contract_only`,
`final_release_status=closed_not_approved_final_contract_only`,
`covered_stage_range=C19Z117-C19Z122`, `covered_stage_count=6`,
`latest_compatibility_stage=C19Z122`,
`release_status=not_approved_outcome_closed_contract_only`,
`closeout_status=closed_not_approved_package_complete`,
`reopen_policy=new_explicit_enablement_request_required`,
`enablement_decision=not_approved`,
`operator_review_status=closed_without_approval`,
`enablement_status=not_enabled`,
`runtime_gate_state=validated_contract_only_not_enabled`,
`runtime_effect=contract_only_no_runtime_enablement`,
`operator_default_action=keep_real_adapter_disabled`,
`next_required_phase=explicit_new_enablement_request_only`,
`allows_process_start=false`, `allows_payload_traffic=false`, sentinel notes
that stop the not-approved branch, and guardrails that keep activation
blocked, process start disabled, health probe disabled, and
`payload_traffic=none`. No new runtime image was required; the proof ran on
`rap-node-agent:codex-service-supervisor-20260513z52`. Verification passed:
C19Z133 live smoke. Artifact:
`artifacts/c19z133-remote-workspace-real-adapter-not-approved-outcome-stopped-branch-sentinel-smoke-result.json`.
- C19Z134 Remote Workspace real-adapter not-approved outcome stopped-branch
sentinel compatibility proof is complete on docker-test. The compatibility
smoke uses C19Z133 as source and validates sentinel fields, sentinel notes,
`sentinel_status=stopped_until_new_explicit_enablement_request`,
`branch_state=not_approved_branch_closed`,
`continuation_policy=do_not_continue_without_new_explicit_enablement_request`,
`reopen_policy=new_explicit_enablement_request_required`,
`enablement_decision=not_approved`,
`operator_review_status=closed_without_approval`,
`enablement_status=not_enabled`,
`runtime_gate_state=validated_contract_only_not_enabled`,
`runtime_effect=contract_only_no_runtime_enablement`,
`operator_default_action=keep_real_adapter_disabled`,
`next_required_phase=explicit_new_enablement_request_only`,
`allows_process_start=false`, `allows_payload_traffic=false`, and guardrails
that keep activation blocked, process start disabled, health probe disabled,
and `payload_traffic=none`. No new runtime image was required; the proof ran
on `rap-node-agent:codex-service-supervisor-20260513z52`. Verification
passed: C19Z134 live smoke. Artifact:
`artifacts/c19z134-remote-workspace-real-adapter-not-approved-outcome-stopped-branch-sentinel-compatibility-smoke-result.json`.
- C19Z135 Remote Workspace real-adapter not-approved outcome no-continuation
guard is complete on docker-test. The live smoke uses C19Z134 as source and
emits
`rap.remote_workspace_real_adapter_not_approved_outcome_no_continuation_guard.v1`
with `guard_status=no_continuation_without_new_explicit_enablement_request`,
`guard_marker=c19z135_real_adapter_not_approved_outcome_no_continuation_guard`,
`branch_state=not_approved_branch_closed`,
`continuation_policy=do_not_continue_without_new_explicit_enablement_request`,
`next_allowed_entrypoint=new_explicit_enablement_request_only`,
`blocks_not_approved_extension=true`,
`sentinel_status=stopped_until_new_explicit_enablement_request`,
`reopen_policy=new_explicit_enablement_request_required`,
`enablement_decision=not_approved`,
`operator_review_status=closed_without_approval`,
`enablement_status=not_enabled`,
`runtime_gate_state=validated_contract_only_not_enabled`,
`runtime_effect=contract_only_no_runtime_enablement`,
`operator_default_action=keep_real_adapter_disabled`,
`next_required_phase=explicit_new_enablement_request_only`,
`allows_process_start=false`, `allows_payload_traffic=false`, and guardrails
that keep activation blocked, process start disabled, health probe disabled,
and `payload_traffic=none`. No new runtime image was required; the proof ran
on `rap-node-agent:codex-service-supervisor-20260513z52`. Verification
passed: C19Z135 live smoke. Artifact:
`artifacts/c19z135-remote-workspace-real-adapter-not-approved-outcome-no-continuation-guard-smoke-result.json`.
- C19Z136 Remote Workspace real-adapter not-approved outcome no-continuation
guard compatibility proof is complete on docker-test. The compatibility
smoke uses C19Z135 as source and validates guard fields, guard notes,
`guard_status=no_continuation_without_new_explicit_enablement_request`,
`next_allowed_entrypoint=new_explicit_enablement_request_only`,
`blocks_not_approved_extension=true`,
`sentinel_status=stopped_until_new_explicit_enablement_request`,
`reopen_policy=new_explicit_enablement_request_required`,
`enablement_status=not_enabled`,
`runtime_gate_state=validated_contract_only_not_enabled`,
`runtime_effect=contract_only_no_runtime_enablement`,
`operator_default_action=keep_real_adapter_disabled`,
`next_required_phase=explicit_new_enablement_request_only`,
`allows_process_start=false`, `allows_payload_traffic=false`, and guardrails
that keep activation blocked, process start disabled, health probe disabled,
and `payload_traffic=none`. No new runtime image was required; the proof ran
on `rap-node-agent:codex-service-supervisor-20260513z52`. Verification
passed: C19Z136 live smoke. Artifact:
`artifacts/c19z136-remote-workspace-real-adapter-not-approved-outcome-no-continuation-guard-compatibility-smoke-result.json`.
- C19Z137 Remote Workspace real-adapter not-approved outcome continuation
block enforcement is complete on docker-test. The live smoke uses C19Z136 as
source and emits
`rap.remote_workspace_real_adapter_not_approved_outcome_continuation_block_enforcement.v1`
with `enforcement_status=blocked_continuation_enforced`,
`attempted_action=continue_not_approved_branch_without_new_explicit_enablement_request`,
`attempt_allowed=false`, `block_reason=new_explicit_enablement_request_required`,
`next_allowed_entrypoint=new_explicit_enablement_request_only`,
`blocks_not_approved_extension=true`,
`guard_status=no_continuation_without_new_explicit_enablement_request`,
`branch_state=not_approved_branch_closed`,
`continuation_policy=do_not_continue_without_new_explicit_enablement_request`,
`reopen_policy=new_explicit_enablement_request_required`,
`enablement_status=not_enabled`,
`runtime_gate_state=validated_contract_only_not_enabled`,
`runtime_effect=contract_only_no_runtime_enablement`,
`allows_process_start=false`, `allows_payload_traffic=false`, and guardrails
that keep activation blocked, process start disabled, health probe disabled,
and `payload_traffic=none`. No new runtime image was required; the proof ran
on `rap-node-agent:codex-service-supervisor-20260513z52`. Verification
passed: C19Z137 live smoke. Artifact:
`artifacts/c19z137-remote-workspace-real-adapter-not-approved-outcome-continuation-block-enforcement-smoke-result.json`.
- C19Z138 Remote Workspace real-adapter not-approved outcome continuation
block enforcement compatibility proof is complete on docker-test. The
compatibility smoke uses C19Z137 as source and validates enforcement fields,
enforcement notes, `attempt_allowed=false`,
`block_reason=new_explicit_enablement_request_required`,
`next_allowed_entrypoint=new_explicit_enablement_request_only`,
`blocks_not_approved_extension=true`,
`guard_status=no_continuation_without_new_explicit_enablement_request`,
`enablement_status=not_enabled`,
`runtime_gate_state=validated_contract_only_not_enabled`,
`runtime_effect=contract_only_no_runtime_enablement`,
`allows_process_start=false`, `allows_payload_traffic=false`, and guardrails
that keep activation blocked, process start disabled, health probe disabled,
and `payload_traffic=none`. No new runtime image was required; the proof ran
on `rap-node-agent:codex-service-supervisor-20260513z52`. Verification
passed: C19Z138 live smoke. Artifact:
`artifacts/c19z138-remote-workspace-real-adapter-not-approved-outcome-continuation-block-enforcement-compatibility-smoke-result.json`.
- C19Z139 Remote Workspace real-adapter not-approved outcome continuation
block audit record is complete on docker-test. The live smoke uses C19Z138
as source and emits
`rap.remote_workspace_real_adapter_not_approved_outcome_continuation_block_audit_record.v1`
with `audit_status=blocked_continuation_audit_recorded`,
`audit_event_type=not_approved_continuation_block`,
`attempted_action=continue_not_approved_branch_without_new_explicit_enablement_request`,
`attempt_allowed=false`, `block_reason=new_explicit_enablement_request_required`,
`next_allowed_entrypoint=new_explicit_enablement_request_only`,
`blocks_not_approved_extension=true`,
`branch_state=not_approved_branch_closed`,
`continuation_policy=do_not_continue_without_new_explicit_enablement_request`,
`enablement_status=not_enabled`,
`runtime_gate_state=validated_contract_only_not_enabled`,
`runtime_effect=contract_only_no_runtime_enablement`,
`allows_process_start=false`, `allows_payload_traffic=false`, and guardrails
that keep activation blocked, process start disabled, health probe disabled,
and `payload_traffic=none`. No new runtime image was required; the proof ran
on `rap-node-agent:codex-service-supervisor-20260513z52`. Verification
passed: C19Z139 live smoke. Artifact:
`artifacts/c19z139-remote-workspace-real-adapter-not-approved-outcome-continuation-block-audit-record-smoke-result.json`.
- C19Z140 Remote Workspace real-adapter not-approved outcome continuation
block audit record compatibility proof is complete on docker-test. The
compatibility smoke uses C19Z139 as source and validates audit fields, audit
notes, `audit_status=blocked_continuation_audit_recorded`,
`attempt_allowed=false`, `block_reason=new_explicit_enablement_request_required`,
`next_allowed_entrypoint=new_explicit_enablement_request_only`,
`blocks_not_approved_extension=true`, `enablement_status=not_enabled`,
`runtime_gate_state=validated_contract_only_not_enabled`,
`runtime_effect=contract_only_no_runtime_enablement`,
`allows_process_start=false`, `allows_payload_traffic=false`, and guardrails
that keep activation blocked, process start disabled, health probe disabled,
and `payload_traffic=none`. No new runtime image was required; the proof ran
on `rap-node-agent:codex-service-supervisor-20260513z52`. Verification
passed: C19Z140 live smoke. Artifact:
`artifacts/c19z140-remote-workspace-real-adapter-not-approved-outcome-continuation-block-audit-record-compatibility-smoke-result.json`.
- C19Z141 Remote Workspace real-adapter not-approved outcome continuation
block audit rollup is complete on docker-test. The live smoke uses C19Z140
as source and emits
`rap.remote_workspace_real_adapter_not_approved_outcome_continuation_block_audit_rollup.v1`
with `rollup_status=blocked_continuation_audit_rollup_complete`,
`operator_status=not_approved_branch_closed_new_request_required`,
`audit_status=blocked_continuation_audit_recorded`,
`attempt_allowed=false`, `block_reason=new_explicit_enablement_request_required`,
`next_allowed_entrypoint=new_explicit_enablement_request_only`,
`blocks_not_approved_extension=true`,
`branch_state=not_approved_branch_closed`,
`continuation_policy=do_not_continue_without_new_explicit_enablement_request`,
`enablement_status=not_enabled`,
`runtime_gate_state=validated_contract_only_not_enabled`,
`runtime_effect=contract_only_no_runtime_enablement`,
`allows_process_start=false`, `allows_payload_traffic=false`, and guardrails
that keep activation blocked, process start disabled, health probe disabled,
and `payload_traffic=none`. No new runtime image was required; the proof ran
on `rap-node-agent:codex-service-supervisor-20260513z52`. Verification
passed: C19Z141 live smoke. Artifact:
`artifacts/c19z141-remote-workspace-real-adapter-not-approved-outcome-continuation-block-audit-rollup-smoke-result.json`.
- C19Z142 Remote Workspace real-adapter not-approved outcome continuation
block audit rollup compatibility proof is complete on docker-test. The
compatibility smoke uses C19Z141 as source and validates rollup fields,
rollup notes, `operator_status=not_approved_branch_closed_new_request_required`,
`attempt_allowed=false`, `block_reason=new_explicit_enablement_request_required`,
`next_allowed_entrypoint=new_explicit_enablement_request_only`,
`blocks_not_approved_extension=true`, `enablement_status=not_enabled`,
`runtime_gate_state=validated_contract_only_not_enabled`,
`runtime_effect=contract_only_no_runtime_enablement`,
`allows_process_start=false`, `allows_payload_traffic=false`, and guardrails
that keep activation blocked, process start disabled, health probe disabled,
and `payload_traffic=none`. No new runtime image was required; the proof ran
on `rap-node-agent:codex-service-supervisor-20260513z52`. Verification
passed: C19Z142 live smoke. Artifact:
`artifacts/c19z142-remote-workspace-real-adapter-not-approved-outcome-continuation-block-audit-rollup-compatibility-smoke-result.json`.
- C19Z143 Remote Workspace real-adapter not-approved outcome operator stop
summary is complete on docker-test. The live smoke uses C19Z142 as source and
emits
`rap.remote_workspace_real_adapter_not_approved_outcome_operator_stop_summary.v1`
with `summary_status=operator_stop_summary_complete`,
`operator_status=not_approved_branch_closed_new_request_required`,
`operator_action=keep_real_adapter_disabled_until_new_explicit_enablement_request`,
`operator_message=not_approved_branch_closed_new_request_required`,
`attempt_allowed=false`, `block_reason=new_explicit_enablement_request_required`,
`next_allowed_entrypoint=new_explicit_enablement_request_only`,
`blocks_not_approved_extension=true`,
`branch_state=not_approved_branch_closed`,
`continuation_policy=do_not_continue_without_new_explicit_enablement_request`,
`enablement_status=not_enabled`,
`runtime_gate_state=validated_contract_only_not_enabled`,
`runtime_effect=contract_only_no_runtime_enablement`,
`allows_process_start=false`, `allows_payload_traffic=false`, and guardrails
that keep activation blocked, process start disabled, health probe disabled,
and `payload_traffic=none`. No new runtime image was required; the proof ran
on `rap-node-agent:codex-service-supervisor-20260513z52`. Verification
passed: C19Z143 live smoke. Artifact:
`artifacts/c19z143-remote-workspace-real-adapter-not-approved-outcome-operator-stop-summary-smoke-result.json`.
- C19Z144 Remote Workspace real-adapter not-approved outcome operator stop
summary compatibility proof is complete on docker-test. The compatibility
smoke uses C19Z143 as source and validates summary fields, summary notes,
`operator_status=not_approved_branch_closed_new_request_required`,
`operator_action=keep_real_adapter_disabled_until_new_explicit_enablement_request`,
`attempt_allowed=false`, `block_reason=new_explicit_enablement_request_required`,
`next_allowed_entrypoint=new_explicit_enablement_request_only`,
`blocks_not_approved_extension=true`, `enablement_status=not_enabled`,
`runtime_gate_state=validated_contract_only_not_enabled`,
`runtime_effect=contract_only_no_runtime_enablement`,
`allows_process_start=false`, `allows_payload_traffic=false`, and guardrails
that keep activation blocked, process start disabled, health probe disabled,
and `payload_traffic=none`. No new runtime image was required; the proof ran
on `rap-node-agent:codex-service-supervisor-20260513z52`. Verification
passed: C19Z144 live smoke. Artifact:
`artifacts/c19z144-remote-workspace-real-adapter-not-approved-outcome-operator-stop-summary-compatibility-smoke-result.json`.
- C19Z145 Remote Workspace real-adapter not-approved outcome operator stop
handoff is complete on docker-test. The live smoke uses C19Z144 as source and
emits
`rap.remote_workspace_real_adapter_not_approved_outcome_operator_stop_handoff.v1`
with `handoff_status=operator_stop_handoff_complete`,
`operator_status=not_approved_branch_closed_new_request_required`,
`operator_action=keep_real_adapter_disabled_until_new_explicit_enablement_request`,
`operator_message=not_approved_branch_closed_new_request_required`,
`display_severity=blocked`,
`next_allowed_entrypoint=new_explicit_enablement_request_only`,
`attempt_allowed=false`, `block_reason=new_explicit_enablement_request_required`,
`blocks_not_approved_extension=true`,
`branch_state=not_approved_branch_closed`,
`continuation_policy=do_not_continue_without_new_explicit_enablement_request`,
`enablement_status=not_enabled`,
`runtime_gate_state=validated_contract_only_not_enabled`,
`runtime_effect=contract_only_no_runtime_enablement`,
`allows_process_start=false`, `allows_payload_traffic=false`, and guardrails
that keep activation blocked, process start disabled, health probe disabled,
and `payload_traffic=none`. No new runtime image was required; the proof ran
on `rap-node-agent:codex-service-supervisor-20260513z52`. Verification
passed: C19Z145 live smoke. Artifact:
`artifacts/c19z145-remote-workspace-real-adapter-not-approved-outcome-operator-stop-handoff-smoke-result.json`.
- C19Z146 Remote Workspace real-adapter not-approved outcome operator stop
handoff compatibility proof is complete on docker-test. The compatibility
smoke uses C19Z145 as source and validates handoff fields, handoff notes,
`operator_status=not_approved_branch_closed_new_request_required`,
`operator_action=keep_real_adapter_disabled_until_new_explicit_enablement_request`,
`display_severity=blocked`,
`attempt_allowed=false`, `block_reason=new_explicit_enablement_request_required`,
`next_allowed_entrypoint=new_explicit_enablement_request_only`,
`blocks_not_approved_extension=true`, `enablement_status=not_enabled`,
`runtime_gate_state=validated_contract_only_not_enabled`,
`runtime_effect=contract_only_no_runtime_enablement`,
`allows_process_start=false`, `allows_payload_traffic=false`, and guardrails
that keep activation blocked, process start disabled, health probe disabled,
and `payload_traffic=none`. No new runtime image was required; the proof ran
on `rap-node-agent:codex-service-supervisor-20260513z52`. Verification
passed: C19Z146 live smoke. Artifact:
`artifacts/c19z146-remote-workspace-real-adapter-not-approved-outcome-operator-stop-handoff-compatibility-smoke-result.json`.
- C19Z147 Remote Workspace real-adapter not-approved outcome operator stop
handoff digest is complete on docker-test. The live smoke uses C19Z146 as
source and emits
`rap.remote_workspace_real_adapter_not_approved_outcome_operator_stop_handoff_digest.v1`
with `digest_status=operator_stop_handoff_digest_complete`,
`operator_status=not_approved_branch_closed_new_request_required`,
`operator_action=keep_real_adapter_disabled_until_new_explicit_enablement_request`,
`display_severity=blocked`,
`next_allowed_entrypoint=new_explicit_enablement_request_only`,
`attempt_allowed=false`, `block_reason=new_explicit_enablement_request_required`,
`blocks_not_approved_extension=true`,
`enablement_status=not_enabled`,
`runtime_gate_state=validated_contract_only_not_enabled`,
`runtime_effect=contract_only_no_runtime_enablement`,
`allows_process_start=false`, `allows_payload_traffic=false`, and guardrails
that keep activation blocked, process start disabled, health probe disabled,
and `payload_traffic=none`. No new runtime image was required; the proof ran
on `rap-node-agent:codex-service-supervisor-20260513z52`. Verification
passed: C19Z147 live smoke. Artifact:
`artifacts/c19z147-remote-workspace-real-adapter-not-approved-outcome-operator-stop-handoff-digest-smoke-result.json`.
- C19Z148 Remote Workspace real-adapter not-approved outcome operator stop
handoff digest compatibility proof is complete on docker-test. The
compatibility smoke uses C19Z147 as source and validates digest fields,
digest notes, `operator_status=not_approved_branch_closed_new_request_required`,
`operator_action=keep_real_adapter_disabled_until_new_explicit_enablement_request`,
`display_severity=blocked`,
`attempt_allowed=false`, `block_reason=new_explicit_enablement_request_required`,
`next_allowed_entrypoint=new_explicit_enablement_request_only`,
`blocks_not_approved_extension=true`, `enablement_status=not_enabled`,
`runtime_gate_state=validated_contract_only_not_enabled`,
`runtime_effect=contract_only_no_runtime_enablement`,
`allows_process_start=false`, `allows_payload_traffic=false`, and guardrails
that keep activation blocked, process start disabled, health probe disabled,
and `payload_traffic=none`. No new runtime image was required; the proof ran
on `rap-node-agent:codex-service-supervisor-20260513z52`. Verification
passed: C19Z148 live smoke. Artifact:
`artifacts/c19z148-remote-workspace-real-adapter-not-approved-outcome-operator-stop-handoff-digest-compatibility-smoke-result.json`.
- C19Z149 Remote Workspace real-adapter not-approved outcome operator stop
status snapshot is complete on docker-test. The live smoke uses C19Z148 as
source and emits
`rap.remote_workspace_real_adapter_not_approved_outcome_operator_stop_status_snapshot.v1`
with `snapshot_status=operator_stop_status_snapshot_complete`,
`operator_status=not_approved_branch_closed_new_request_required`,
`operator_action=keep_real_adapter_disabled_until_new_explicit_enablement_request`,
`display_severity=blocked`,
`next_allowed_entrypoint=new_explicit_enablement_request_only`,
`attempt_allowed=false`, `block_reason=new_explicit_enablement_request_required`,
`blocks_not_approved_extension=true`,
`enablement_status=not_enabled`,
`runtime_gate_state=validated_contract_only_not_enabled`,
`runtime_effect=contract_only_no_runtime_enablement`,
`allows_process_start=false`, `allows_payload_traffic=false`, and guardrails
that keep activation blocked, process start disabled, health probe disabled,
and `payload_traffic=none`. No new runtime image was required; the proof ran
on `rap-node-agent:codex-service-supervisor-20260513z52`. Verification
passed: C19Z149 live smoke. Artifact:
`artifacts/c19z149-remote-workspace-real-adapter-not-approved-outcome-operator-stop-status-snapshot-smoke-result.json`.
- C19Z150 Remote Workspace real-adapter not-approved outcome operator stop
status snapshot compatibility proof is complete on docker-test. The
compatibility smoke uses C19Z149 as source and validates snapshot fields,
snapshot notes, `operator_status=not_approved_branch_closed_new_request_required`,
`operator_action=keep_real_adapter_disabled_until_new_explicit_enablement_request`,
`display_severity=blocked`,
`attempt_allowed=false`, `block_reason=new_explicit_enablement_request_required`,
`next_allowed_entrypoint=new_explicit_enablement_request_only`,
`blocks_not_approved_extension=true`, `enablement_status=not_enabled`,
`runtime_gate_state=validated_contract_only_not_enabled`,
`runtime_effect=contract_only_no_runtime_enablement`,
`allows_process_start=false`, `allows_payload_traffic=false`, and guardrails
that keep activation blocked, process start disabled, health probe disabled,
and `payload_traffic=none`. No new runtime image was required; the proof ran
on `rap-node-agent:codex-service-supervisor-20260513z52`. Verification
passed: C19Z150 live smoke. Artifact:
`artifacts/c19z150-remote-workspace-real-adapter-not-approved-outcome-operator-stop-status-snapshot-compatibility-smoke-result.json`.
- C19Z151 Remote Workspace real-adapter not-approved outcome operator stop
status snapshot index is complete on docker-test. The live smoke uses C19Z150
as source and emits
`rap.remote_workspace_real_adapter_not_approved_outcome_operator_stop_status_snapshot_index.v1`
with `index_status=operator_stop_status_snapshot_index_complete`,
`indexed_snapshot_status=operator_stop_status_snapshot_complete`,
`operator_status=not_approved_branch_closed_new_request_required`,
`operator_action=keep_real_adapter_disabled_until_new_explicit_enablement_request`,
`display_severity=blocked`,
`next_allowed_entrypoint=new_explicit_enablement_request_only`,
`attempt_allowed=false`, `block_reason=new_explicit_enablement_request_required`,
`blocks_not_approved_extension=true`,
`enablement_status=not_enabled`,
`runtime_gate_state=validated_contract_only_not_enabled`,
`runtime_effect=contract_only_no_runtime_enablement`,
`allows_process_start=false`, `allows_payload_traffic=false`, and guardrails
that keep activation blocked, process start disabled, health probe disabled,
and `payload_traffic=none`. No new runtime image was required; the proof ran
on `rap-node-agent:codex-service-supervisor-20260513z52`. Verification
passed: C19Z151 live smoke. Artifact:
`artifacts/c19z151-remote-workspace-real-adapter-not-approved-outcome-operator-stop-status-snapshot-index-smoke-result.json`.
- C19Z152 Remote Workspace real-adapter not-approved outcome operator stop
status snapshot index compatibility proof is complete on docker-test. The
compatibility smoke uses C19Z151 as source and validates index fields, index
notes, `operator_status=not_approved_branch_closed_new_request_required`,
`operator_action=keep_real_adapter_disabled_until_new_explicit_enablement_request`,
`display_severity=blocked`,
`attempt_allowed=false`, `block_reason=new_explicit_enablement_request_required`,
`next_allowed_entrypoint=new_explicit_enablement_request_only`,
`blocks_not_approved_extension=true`, `enablement_status=not_enabled`,
`runtime_gate_state=validated_contract_only_not_enabled`,
`runtime_effect=contract_only_no_runtime_enablement`,
`allows_process_start=false`, `allows_payload_traffic=false`, and guardrails
that keep activation blocked, process start disabled, health probe disabled,
and `payload_traffic=none`. No new runtime image was required; the proof ran
on `rap-node-agent:codex-service-supervisor-20260513z52`. Verification
passed: C19Z152 live smoke. Artifact:
`artifacts/c19z152-remote-workspace-real-adapter-not-approved-outcome-operator-stop-status-snapshot-index-compatibility-smoke-result.json`.
- C19Z153 Remote Workspace real-adapter not-approved outcome operator stop
status catalog is complete on docker-test. The live smoke uses C19Z152 as
source and emits
`rap.remote_workspace_real_adapter_not_approved_outcome_operator_stop_status_catalog.v1`
with `catalog_status=operator_stop_status_catalog_complete`,
`catalog_entry_type=blocked_not_approved_operator_stop`,
`operator_status=not_approved_branch_closed_new_request_required`,
`operator_action=keep_real_adapter_disabled_until_new_explicit_enablement_request`,
`display_severity=blocked`,
`next_allowed_entrypoint=new_explicit_enablement_request_only`,
`attempt_allowed=false`, `block_reason=new_explicit_enablement_request_required`,
`blocks_not_approved_extension=true`,
`enablement_status=not_enabled`,
`runtime_gate_state=validated_contract_only_not_enabled`,
`runtime_effect=contract_only_no_runtime_enablement`,
`allows_process_start=false`, `allows_payload_traffic=false`, and guardrails
that keep activation blocked, process start disabled, health probe disabled,
and `payload_traffic=none`. No new runtime image was required; the proof ran
on `rap-node-agent:codex-service-supervisor-20260513z52`. Verification
passed: C19Z153 live smoke. Artifact:
`artifacts/c19z153-remote-workspace-real-adapter-not-approved-outcome-operator-stop-status-catalog-smoke-result.json`.
- C19Z154 Remote Workspace real-adapter not-approved outcome operator stop
status catalog compatibility proof is complete on docker-test. The
compatibility smoke uses C19Z153 as source and validates catalog fields,
catalog notes, `catalog_entry_type=blocked_not_approved_operator_stop`,
`operator_status=not_approved_branch_closed_new_request_required`,
`operator_action=keep_real_adapter_disabled_until_new_explicit_enablement_request`,
`display_severity=blocked`,
`attempt_allowed=false`, `block_reason=new_explicit_enablement_request_required`,
`next_allowed_entrypoint=new_explicit_enablement_request_only`,
`blocks_not_approved_extension=true`, `enablement_status=not_enabled`,
`runtime_gate_state=validated_contract_only_not_enabled`,
`runtime_effect=contract_only_no_runtime_enablement`,
`allows_process_start=false`, `allows_payload_traffic=false`, and guardrails
that keep activation blocked, process start disabled, health probe disabled,
and `payload_traffic=none`. No new runtime image was required; the proof ran
on `rap-node-agent:codex-service-supervisor-20260513z52`. Verification
passed: C19Z154 live smoke. Artifact:
`artifacts/c19z154-remote-workspace-real-adapter-not-approved-outcome-operator-stop-status-catalog-compatibility-smoke-result.json`.
- C19Z155 Remote Workspace real-adapter not-approved outcome operator stop
status catalog release marker is complete on docker-test. The live smoke uses
C19Z154 as source and emits
`rap.remote_workspace_real_adapter_not_approved_outcome_operator_stop_status_catalog_release_marker.v1`
with `release_status=operator_stop_status_catalog_released_contract_only`,
`catalog_status=operator_stop_status_catalog_complete`,
`catalog_entry_type=blocked_not_approved_operator_stop`,
`operator_status=not_approved_branch_closed_new_request_required`,
`operator_action=keep_real_adapter_disabled_until_new_explicit_enablement_request`,
`display_severity=blocked`,
`next_allowed_entrypoint=new_explicit_enablement_request_only`,
`attempt_allowed=false`, `block_reason=new_explicit_enablement_request_required`,
`blocks_not_approved_extension=true`,
`enablement_status=not_enabled`,
`runtime_gate_state=validated_contract_only_not_enabled`,
`runtime_effect=contract_only_no_runtime_enablement`,
`allows_process_start=false`, `allows_payload_traffic=false`, and guardrails
that keep activation blocked, process start disabled, health probe disabled,
and `payload_traffic=none`. No new runtime image was required; the proof ran
on `rap-node-agent:codex-service-supervisor-20260513z52`. Verification
passed: C19Z155 live smoke. Artifact:
`artifacts/c19z155-remote-workspace-real-adapter-not-approved-outcome-operator-stop-status-catalog-release-marker-smoke-result.json`.
- C19Z156 Remote Workspace real-adapter not-approved outcome operator stop
status catalog release marker compatibility proof is complete on docker-test.
The compatibility smoke uses C19Z155 as source and validates release marker
fields, release notes,
`release_status=operator_stop_status_catalog_released_contract_only`,
`catalog_entry_type=blocked_not_approved_operator_stop`,
`operator_status=not_approved_branch_closed_new_request_required`,
`operator_action=keep_real_adapter_disabled_until_new_explicit_enablement_request`,
`display_severity=blocked`,
`attempt_allowed=false`, `block_reason=new_explicit_enablement_request_required`,
`next_allowed_entrypoint=new_explicit_enablement_request_only`,
`blocks_not_approved_extension=true`, `enablement_status=not_enabled`,
`runtime_gate_state=validated_contract_only_not_enabled`,
`runtime_effect=contract_only_no_runtime_enablement`,
`allows_process_start=false`, `allows_payload_traffic=false`, and guardrails
that keep activation blocked, process start disabled, health probe disabled,
and `payload_traffic=none`. No new runtime image was required; the proof ran
on `rap-node-agent:codex-service-supervisor-20260513z52`. Verification
passed: C19Z156 live smoke. Artifact:
`artifacts/c19z156-remote-workspace-real-adapter-not-approved-outcome-operator-stop-status-catalog-release-marker-compatibility-smoke-result.json`.
- C19Z157 Remote Workspace real-adapter not-approved outcome operator stop
status catalog package index is complete on docker-test. The live smoke uses
C19Z156 as source and emits
`rap.remote_workspace_real_adapter_not_approved_outcome_operator_stop_status_catalog_package_index.v1`
with `package_status=operator_stop_status_catalog_package_index_complete`,
`release_status=operator_stop_status_catalog_released_contract_only`,
`catalog_entry_type=blocked_not_approved_operator_stop`,
`operator_status=not_approved_branch_closed_new_request_required`,
`operator_action=keep_real_adapter_disabled_until_new_explicit_enablement_request`,
`display_severity=blocked`,
`next_allowed_entrypoint=new_explicit_enablement_request_only`,
`attempt_allowed=false`, `block_reason=new_explicit_enablement_request_required`,
`blocks_not_approved_extension=true`,
`enablement_status=not_enabled`,
`runtime_gate_state=validated_contract_only_not_enabled`,
`runtime_effect=contract_only_no_runtime_enablement`,
`allows_process_start=false`, `allows_payload_traffic=false`, and guardrails
that keep activation blocked, process start disabled, health probe disabled,
and `payload_traffic=none`. No new runtime image was required; the proof ran
on `rap-node-agent:codex-service-supervisor-20260513z52`. Verification
passed: C19Z157 live smoke. Artifact:
`artifacts/c19z157-remote-workspace-real-adapter-not-approved-outcome-operator-stop-status-catalog-package-index-smoke-result.json`.
- C19Z158 Remote Workspace real-adapter not-approved outcome operator stop
status catalog package index compatibility proof is complete on docker-test.
The compatibility smoke uses C19Z157 as source and validates package index
fields, package notes,
`release_status=operator_stop_status_catalog_released_contract_only`,
`catalog_entry_type=blocked_not_approved_operator_stop`,
`operator_status=not_approved_branch_closed_new_request_required`,
`operator_action=keep_real_adapter_disabled_until_new_explicit_enablement_request`,
`display_severity=blocked`,
`attempt_allowed=false`, `block_reason=new_explicit_enablement_request_required`,
`next_allowed_entrypoint=new_explicit_enablement_request_only`,
`blocks_not_approved_extension=true`, `enablement_status=not_enabled`,
`runtime_gate_state=validated_contract_only_not_enabled`,
`runtime_effect=contract_only_no_runtime_enablement`,
`allows_process_start=false`, `allows_payload_traffic=false`, and guardrails
that keep activation blocked, process start disabled, health probe disabled,
and `payload_traffic=none`. No new runtime image was required; the proof ran
on `rap-node-agent:codex-service-supervisor-20260513z52`. Verification
passed: C19Z158 live smoke. Artifact:
`artifacts/c19z158-remote-workspace-real-adapter-not-approved-outcome-operator-stop-status-catalog-package-index-compatibility-smoke-result.json`.
- C19Z159 Remote Workspace real-adapter not-approved outcome operator stop
status catalog closeout summary is complete on docker-test. The live smoke
uses C19Z158 as source and emits
`rap.remote_workspace_real_adapter_not_approved_outcome_operator_stop_status_catalog_closeout_summary.v1`
with `closeout_status=operator_stop_status_catalog_package_closed_contract_only`,
`package_status=operator_stop_status_catalog_package_index_complete`,
`release_status=operator_stop_status_catalog_released_contract_only`,
`catalog_entry_type=blocked_not_approved_operator_stop`,
`operator_status=not_approved_branch_closed_new_request_required`,
`operator_action=keep_real_adapter_disabled_until_new_explicit_enablement_request`,
`display_severity=blocked`,
`next_allowed_entrypoint=new_explicit_enablement_request_only`,
`attempt_allowed=false`, `block_reason=new_explicit_enablement_request_required`,
`blocks_not_approved_extension=true`,
`enablement_status=not_enabled`,
`runtime_gate_state=validated_contract_only_not_enabled`,
`runtime_effect=contract_only_no_runtime_enablement`,
`allows_process_start=false`, `allows_payload_traffic=false`, and guardrails
that keep activation blocked, process start disabled, health probe disabled,
and `payload_traffic=none`. No new runtime image was required; the proof ran
on `rap-node-agent:codex-service-supervisor-20260513z52`. Verification
passed: C19Z159 live smoke. Artifact:
`artifacts/c19z159-remote-workspace-real-adapter-not-approved-outcome-operator-stop-status-catalog-closeout-summary-smoke-result.json`.
- C19Z160 Remote Workspace real-adapter not-approved outcome operator stop
status catalog closeout summary compatibility proof is complete on
docker-test. The compatibility smoke uses C19Z159 as source and validates
closeout fields, closeout notes,
`closeout_status=operator_stop_status_catalog_package_closed_contract_only`,
`catalog_entry_type=blocked_not_approved_operator_stop`,
`operator_status=not_approved_branch_closed_new_request_required`,
`operator_action=keep_real_adapter_disabled_until_new_explicit_enablement_request`,
`display_severity=blocked`,
`attempt_allowed=false`, `block_reason=new_explicit_enablement_request_required`,
`next_allowed_entrypoint=new_explicit_enablement_request_only`,
`blocks_not_approved_extension=true`, `enablement_status=not_enabled`,
`runtime_gate_state=validated_contract_only_not_enabled`,
`runtime_effect=contract_only_no_runtime_enablement`,
`allows_process_start=false`, `allows_payload_traffic=false`, and guardrails
that keep activation blocked, process start disabled, health probe disabled,
and `payload_traffic=none`. No new runtime image was required; the proof ran
on `rap-node-agent:codex-service-supervisor-20260513z52`. Verification
passed: C19Z160 live smoke. Artifact:
`artifacts/c19z160-remote-workspace-real-adapter-not-approved-outcome-operator-stop-status-catalog-closeout-summary-compatibility-smoke-result.json`.
- C19Z161 Remote Workspace real-adapter not-approved outcome operator stop
status final archive marker is complete on docker-test. The live smoke uses
C19Z160 as source and emits
`rap.remote_workspace_real_adapter_not_approved_outcome_operator_stop_status_final_archive_marker.v1`
with `archive_status=operator_stop_status_final_archived_contract_only`,
`closeout_status=operator_stop_status_catalog_package_closed_contract_only`,
`package_status=operator_stop_status_catalog_package_index_complete`,
`release_status=operator_stop_status_catalog_released_contract_only`,
`catalog_entry_type=blocked_not_approved_operator_stop`,
`operator_status=not_approved_branch_closed_new_request_required`,
`operator_action=keep_real_adapter_disabled_until_new_explicit_enablement_request`,
`display_severity=blocked`,
`next_allowed_entrypoint=new_explicit_enablement_request_only`,
`attempt_allowed=false`, `block_reason=new_explicit_enablement_request_required`,
`blocks_not_approved_extension=true`,
`enablement_status=not_enabled`,
`runtime_gate_state=validated_contract_only_not_enabled`,
`runtime_effect=contract_only_no_runtime_enablement`,
`allows_process_start=false`, `allows_payload_traffic=false`, and guardrails
that keep activation blocked, process start disabled, health probe disabled,
and `payload_traffic=none`. No new runtime image was required; the proof ran
on `rap-node-agent:codex-service-supervisor-20260513z52`. Verification
passed: C19Z161 live smoke. Artifact:
`artifacts/c19z161-remote-workspace-real-adapter-not-approved-outcome-operator-stop-status-final-archive-marker-smoke-result.json`.
- C19Z162 Remote Workspace real-adapter not-approved outcome operator stop
status final archive marker compatibility proof is complete on docker-test.
The compatibility smoke uses C19Z161 as source and validates archive fields,
archive notes,
`archive_status=operator_stop_status_final_archived_contract_only`,
`closeout_status=operator_stop_status_catalog_package_closed_contract_only`,
`catalog_entry_type=blocked_not_approved_operator_stop`,
`operator_status=not_approved_branch_closed_new_request_required`,
`operator_action=keep_real_adapter_disabled_until_new_explicit_enablement_request`,
`display_severity=blocked`,
`attempt_allowed=false`, `block_reason=new_explicit_enablement_request_required`,
`next_allowed_entrypoint=new_explicit_enablement_request_only`,
`blocks_not_approved_extension=true`, `enablement_status=not_enabled`,
`runtime_gate_state=validated_contract_only_not_enabled`,
`runtime_effect=contract_only_no_runtime_enablement`,
`allows_process_start=false`, `allows_payload_traffic=false`, and guardrails
that keep activation blocked, process start disabled, health probe disabled,
and `payload_traffic=none`. No new runtime image was required; the proof ran
on `rap-node-agent:codex-service-supervisor-20260513z52`. Verification
passed: C19Z162 live smoke. Artifact:
`artifacts/c19z162-remote-workspace-real-adapter-not-approved-outcome-operator-stop-status-final-archive-marker-compatibility-smoke-result.json`.
- C19Z163 Remote Workspace real-adapter not-approved outcome operator stop
status final archive manifest is complete on docker-test. The live smoke uses
C19Z162 as source and emits
`rap.remote_workspace_real_adapter_not_approved_outcome_operator_stop_status_final_archive_manifest.v1`
with `manifest_status=operator_stop_status_final_archive_manifest_complete`,
`archive_status=operator_stop_status_final_archived_contract_only`,
`closeout_status=operator_stop_status_catalog_package_closed_contract_only`,
`package_status=operator_stop_status_catalog_package_index_complete`,
`release_status=operator_stop_status_catalog_released_contract_only`,
`catalog_entry_type=blocked_not_approved_operator_stop`,
`operator_status=not_approved_branch_closed_new_request_required`,
`operator_action=keep_real_adapter_disabled_until_new_explicit_enablement_request`,
`display_severity=blocked`,
`next_allowed_entrypoint=new_explicit_enablement_request_only`,
`attempt_allowed=false`, `block_reason=new_explicit_enablement_request_required`,
`blocks_not_approved_extension=true`,
`enablement_status=not_enabled`,
`runtime_gate_state=validated_contract_only_not_enabled`,
`runtime_effect=contract_only_no_runtime_enablement`,
`allows_process_start=false`, `allows_payload_traffic=false`, and guardrails
that keep activation blocked, process start disabled, health probe disabled,
and `payload_traffic=none`. No new runtime image was required; the proof ran
on `rap-node-agent:codex-service-supervisor-20260513z52`. Verification
passed: C19Z163 live smoke. Artifact:
`artifacts/c19z163-remote-workspace-real-adapter-not-approved-outcome-operator-stop-status-final-archive-manifest-smoke-result.json`.
- C19Z164 Remote Workspace real-adapter not-approved outcome operator stop
status final archive manifest compatibility proof is complete on docker-test.
The compatibility smoke uses C19Z163 as source and validates manifest fields,
manifest notes,
`manifest_status=operator_stop_status_final_archive_manifest_complete`,
`archive_status=operator_stop_status_final_archived_contract_only`,
`operator_status=not_approved_branch_closed_new_request_required`,
`operator_action=keep_real_adapter_disabled_until_new_explicit_enablement_request`,
`display_severity=blocked`,
`attempt_allowed=false`, `block_reason=new_explicit_enablement_request_required`,
`next_allowed_entrypoint=new_explicit_enablement_request_only`,
`blocks_not_approved_extension=true`, `enablement_status=not_enabled`,
`runtime_gate_state=validated_contract_only_not_enabled`,
`runtime_effect=contract_only_no_runtime_enablement`,
`allows_process_start=false`, `allows_payload_traffic=false`, and guardrails
that keep activation blocked, process start disabled, health probe disabled,
and `payload_traffic=none`. No new runtime image was required; the proof ran
on `rap-node-agent:codex-service-supervisor-20260513z52`. Verification
passed: C19Z164 live smoke. Artifact:
`artifacts/c19z164-remote-workspace-real-adapter-not-approved-outcome-operator-stop-status-final-archive-manifest-compatibility-smoke-result.json`.
- C19Z165 Remote Workspace real-adapter not-approved outcome factory terminal
complete marker is complete on docker-test. The live smoke uses C19Z164 as
source and emits
`rap.remote_workspace_real_adapter_not_approved_outcome_factory_terminal_complete.v1`
with `terminal_status=factory_terminal_complete_contract_only`,
`factory_status=complete_no_more_not_approved_layers_required`,
`archive_status=operator_stop_status_final_archived_contract_only`,
`manifest_status=operator_stop_status_final_archive_manifest_complete`,
`operator_status=not_approved_branch_closed_new_request_required`,
`operator_action=keep_real_adapter_disabled_until_new_explicit_enablement_request`,
`display_severity=blocked`,
`next_allowed_entrypoint=new_explicit_enablement_request_only`,
`attempt_allowed=false`, `block_reason=new_explicit_enablement_request_required`,
`blocks_not_approved_extension=true`,
`enablement_status=not_enabled`,
`runtime_gate_state=validated_contract_only_not_enabled`,
`runtime_effect=contract_only_no_runtime_enablement`,
`allows_process_start=false`, `allows_payload_traffic=false`, and guardrails
that keep activation blocked, process start disabled, health probe disabled,
and `payload_traffic=none`. No new runtime image was required; the proof ran
on `rap-node-agent:codex-service-supervisor-20260513z52`. Verification
passed: C19Z165 live smoke. Artifact:
`artifacts/c19z165-remote-workspace-real-adapter-not-approved-outcome-factory-terminal-complete-smoke-result.json`.
- C19Z166 Remote Workspace real-adapter not-approved outcome factory terminal
complete compatibility proof is complete on docker-test. The compatibility
smoke uses C19Z165 as source and validates terminal fields, terminal notes,
`terminal_status=factory_terminal_complete_contract_only`,
`factory_status=complete_no_more_not_approved_layers_required`,
`operator_status=not_approved_branch_closed_new_request_required`,
`operator_action=keep_real_adapter_disabled_until_new_explicit_enablement_request`,
`display_severity=blocked`,
`attempt_allowed=false`, `block_reason=new_explicit_enablement_request_required`,
`next_allowed_entrypoint=new_explicit_enablement_request_only`,
`blocks_not_approved_extension=true`, `enablement_status=not_enabled`,
`runtime_gate_state=validated_contract_only_not_enabled`,
`runtime_effect=contract_only_no_runtime_enablement`,
`allows_process_start=false`, `allows_payload_traffic=false`, and guardrails
that keep activation blocked, process start disabled, health probe disabled,
and `payload_traffic=none`. No new runtime image was required; the proof ran
on `rap-node-agent:codex-service-supervisor-20260513z52`. Verification
passed: C19Z166 live smoke. Artifact:
`artifacts/c19z166-remote-workspace-real-adapter-not-approved-outcome-factory-terminal-complete-compatibility-smoke-result.json`.
- C20Z1 Remote Workspace real-adapter new explicit enablement request is open
as a contract-only transition on docker-test. The live smoke uses C19Z166 as
source and emits
`rap.remote_workspace_real_adapter_new_explicit_enablement_request.v1` with
`request_status=new_explicit_enablement_request_opened_contract_only`,
`requested_transition=from_not_approved_terminal_to_enablement_review`,
`source_factory_status=complete_no_more_not_approved_layers_required`,
`source_terminal_status=factory_terminal_complete_contract_only`,
`previous_operator_status=not_approved_branch_closed_new_request_required`,
`enablement_decision=pending_operator_validation`,
`operator_review_status=new_request_opened_pending_validation`,
`enablement_status=requested_not_enabled`,
`runtime_gate_state=new_request_contract_only_not_enabled`,
`runtime_effect=contract_only_no_runtime_enablement`,
`operator_default_action=keep_real_adapter_disabled_until_validation_complete`,
`next_required_phase=operator_validation_for_real_enablement`,
`allows_process_start=false`, `allows_payload_traffic=false`, and guardrails
that keep activation blocked, process start disabled, health probe disabled,
and `payload_traffic=none`. No runtime enablement was performed. Artifact:
`artifacts/c20z1-remote-workspace-real-adapter-new-explicit-enablement-request-smoke-result.json`.
- C20Z2 Remote Workspace real-adapter new explicit enablement request
compatibility proof is complete on docker-test. The compatibility smoke uses
C20Z1 as source and validates request fields, request notes, inherited
guardrails, `enablement_decision=pending_operator_validation`,
`enablement_status=requested_not_enabled`,
`runtime_gate_state=new_request_contract_only_not_enabled`,
`runtime_effect=contract_only_no_runtime_enablement`,
`operator_default_action=keep_real_adapter_disabled_until_validation_complete`,
`next_required_phase=operator_validation_for_real_enablement`,
`allows_process_start=false`, and `allows_payload_traffic=false`. No runtime
enablement was performed. Verification passed: C20Z2 live smoke. Artifact:
`artifacts/c20z2-remote-workspace-real-adapter-new-explicit-enablement-request-compatibility-smoke-result.json`.
- C20Z3 Remote Workspace real-adapter operator validation intake is complete
on docker-test. The live smoke uses C20Z2 as source and emits
`rap.remote_workspace_real_adapter_operator_validation_intake.v1` with
`intake_status=operator_validation_intake_open_contract_only`,
`validation_scope=real_adapter_enablement_pre_runtime_review`,
`enablement_decision=pending_operator_validation`,
`enablement_status=requested_not_enabled`,
`runtime_gate_state=validation_intake_contract_only_not_enabled`,
`runtime_effect=contract_only_no_runtime_enablement`,
`next_required_phase=operator_validation_checklist`,
`allows_process_start=false`, and `allows_payload_traffic=false`. No runtime
enablement was performed. Artifact:
`artifacts/c20z3-remote-workspace-real-adapter-operator-validation-intake-smoke-result.json`.
- C20Z4 Remote Workspace real-adapter operator validation checklist is
complete on docker-test. The live smoke uses C20Z3 as source and emits
`rap.remote_workspace_real_adapter_operator_validation_checklist.v1` with
`checklist_status=complete_contract_only`, all required validation items
satisfied by contract, `remaining_items=[]`,
`enablement_status=validated_not_enabled`,
`runtime_gate_state=operator_validation_complete_contract_only_not_enabled`,
`runtime_effect=contract_only_no_runtime_enablement`,
`next_required_phase=c20_stage_closeout`,
`allows_process_start=false`, and `allows_payload_traffic=false`. No runtime
enablement was performed. Artifact:
`artifacts/c20z4-remote-workspace-real-adapter-operator-validation-checklist-smoke-result.json`.
- C20Z5 Remote Workspace real-adapter operator validation closeout is complete
on docker-test. The live smoke uses C20Z4 as source and emits
`rap.remote_workspace_real_adapter_operator_validation_closeout.v1` with
`closeout_status=complete_contract_only`,
`validation_chain_status=complete_contract_only`,
`enablement_boundary=runtime_enablement_requires_next_explicit_runtime_stage`,
`enablement_decision=validated_contract_only_not_enabled`,
`enablement_status=validated_not_enabled`,
`runtime_gate_state=validated_contract_only_not_enabled`,
`runtime_effect=contract_only_no_runtime_enablement`,
`next_required_phase=c20_terminal_complete`,
`allows_process_start=false`, and `allows_payload_traffic=false`. No runtime
enablement was performed. Artifact:
`artifacts/c20z5-remote-workspace-real-adapter-operator-validation-closeout-smoke-result.json`.
- C20Z6 Remote Workspace real-adapter stage terminal-complete compatibility
proof is complete on docker-test. The compatibility smoke uses C20Z5 as
source and emits
`rap.remote_workspace_real_adapter_c20_stage_terminal_complete.v1` with
`terminal_status=stage_terminal_complete_contract_only`,
`stage_status=complete_no_more_c20_layers_required`,
`validation_chain_status=complete_contract_only`,
`enablement_status=validated_not_enabled`,
`runtime_gate_state=validated_contract_only_not_enabled`,
`runtime_effect=contract_only_no_runtime_enablement`,
`next_allowed_entrypoint=next_explicit_runtime_enablement_stage_only`,
`allows_process_start=false`, and `allows_payload_traffic=false`. No runtime
enablement was performed. Verification passed: C20Z6 live smoke. Artifact:
`artifacts/c20z6-remote-workspace-real-adapter-stage-terminal-complete-compatibility-smoke-result.json`.
The current phase is NOT:
- full mesh routing implementation
- full VPN orchestration
- multi-cluster runtime traffic handling
- production data-plane migration
- complete updater rollout orchestration
- video meetings
- final native client UI redesign
Future mesh, VPN, multi-cluster, node-agent updater, and production realtime data-plane work must be introduced only through explicit, narrow, staged implementation prompts.
Always keep the project production-oriented. Do not simplify it into a toy app.