Repository navigation
fractal-web: prepare the client-control v1 web test client (disabled until the contract lands) - #6278
schickling-assistant wants to merge 37 commits into
Conversation
agent-identity: agent/dotfiles/fractal-product-lead agent-persona: generalist agent-supervisor: unavailable agent-tool: OMP agent-tool-version: 18.12.5 agent-runtime: OMP 18.12.5 agent-model: openai-codex/gpt-6.1-sol
agent-identity: agent/dotfiles/fractal-web-3 agent-persona: generalist agent-supervisor: unavailable agent-tool: OMP agent-tool-version: 18.12.5 agent-runtime: OMP 18.12.5 agent-model: openai-codex/gpt-6.1-sol
agent-identity: agent/dotfiles/fractal-web-3 agent-persona: generalist agent-supervisor: unavailable agent-tool: OMP agent-tool-version: 18.12.5 agent-runtime: OMP 18.12.5 agent-model: openai-codex/gpt-6.1-sol
agent-identity: agent/dotfiles/fractal-web-3 agent-persona: generalist agent-supervisor: unavailable agent-tool: OMP agent-tool-version: 18.12.5 agent-runtime: OMP 18.12.5 agent-model: openai-codex/gpt-6.1-sol
…tegration agent-identity: agent/dotfiles/fractal-web-3 agent-persona: generalist agent-supervisor: unavailable agent-tool: OMP agent-tool-version: 18.12.5 agent-runtime: OMP 18.12.5 agent-model: openai-codex/gpt-6.1-sol
…tracts agent-identity: agent/dotfiles/fractal-web-3 agent-persona: generalist agent-supervisor: unavailable agent-tool: OMP agent-tool-version: 18.12.5 agent-runtime: OMP 18.12.5 agent-model: openai-codex/gpt-6.1-sol
Source-only draft: generated outputs pending admitted codegen; not consumer-ready. agent-identity: agent/dotfiles/fractal-product-lead agent-persona: generalist agent-supervisor: unavailable agent-tool: OMP agent-tool-version: 18.12.5 agent-runtime: OMP 18.12.5 agent-model: openai-codex/gpt-6.1-sol
Generated outputs remain pending admitted codegen; not consumer-ready. agent-identity: agent/dotfiles/fractal-product-lead agent-persona: generalist agent-supervisor: unavailable agent-tool: OMP agent-tool-version: 18.12.5 agent-runtime: OMP 18.12.5 agent-model: openai-codex/gpt-6.1-sol
agent-identity: agent/dotfiles/fractal-web-3 agent-persona: generalist agent-supervisor: unavailable agent-tool: OMP agent-tool-version: 18.12.5 agent-runtime: OMP 18.12.5 agent-model: openai-codex/gpt-6.1-sol
…trol agent-identity: agent/dotfiles/fractal-web-3 agent-persona: generalist agent-supervisor: unavailable agent-tool: OMP agent-tool-version: 18.12.5 agent-runtime: OMP 18.12.5 agent-model: openai-codex/gpt-6.1-sol
…nt guards agent-identity: agent/dotfiles/fractal-web-3 agent-persona: generalist agent-supervisor: unavailable agent-tool: OMP agent-tool-version: 18.12.5 agent-runtime: OMP 18.12.5 agent-model: openai-codex/gpt-6.1-sol
…ndering agent-identity: agent/dotfiles/fractal-web-3 agent-persona: generalist agent-supervisor: unavailable agent-tool: OMP agent-tool-version: 18.12.5 agent-runtime: OMP 18.12.5 agent-model: openai-codex/gpt-6.1-sol
Source-only contract: optional grant item_id and NowRoot/Attention signed vectors. Generated outputs pending admitted codegen. agent-identity: agent/dotfiles/fractal-product-lead agent-persona: generalist agent-supervisor: unavailable agent-tool: OMP agent-tool-version: 18.12.5 agent-runtime: OMP 18.12.5 agent-model: openai-codex/gpt-6.1-sol
agent-identity: agent/dotfiles/fractal-web-3 agent-persona: generalist agent-supervisor: unavailable agent-tool: OMP agent-tool-version: 18.12.5 agent-runtime: OMP 18.12.5 agent-model: openai-codex/gpt-6.1-sol
agent-identity: agent/dotfiles/fractal-web-3 agent-persona: generalist agent-supervisor: unavailable agent-tool: OMP agent-tool-version: 18.12.5 agent-runtime: OMP 18.12.5 agent-model: openai-codex/gpt-6.1-sol
Generated only by cargo run -j 4 -p fractal-client-codegen from exact signed source 9ac7024. Authorized short-slot receipt exit 0; admitted 17:49:05Z, released 17:49:26Z, GNU time peak RSS 1163212 KB. No tests run in this generation receipt. agent-identity: agent/dotfiles/fractal-product-lead agent-persona: generalist agent-supervisor: unavailable agent-tool: OMP agent-tool-version: 18.12.5 agent-runtime: OMP 18.12.5 agent-model: openai-codex/gpt-6.1-sol
agent-identity: agent/dotfiles/fractal-web-3 agent-persona: generalist agent-supervisor: unavailable agent-tool: OMP agent-tool-version: 18.12.5 agent-runtime: OMP 18.12.5 agent-model: openai-codex/gpt-6.1-sol
agent-identity: agent/dotfiles/fractal-web-3 agent-persona: generalist agent-supervisor: unavailable agent-tool: OMP agent-tool-version: 18.12.5 agent-runtime: OMP 18.12.5 agent-model: openai-codex/gpt-6.1-sol
|
Compounding Manager: exact-head review of NO-GO: two P2 findings.
Checked, with no findings:
NOT RUN: tests, typechecks, builds, browser journeys, and runtime or crypto checks. This review is source inspection only. Posted on behalf of @schickling
|
agent-identity: agent/dotfiles/fractal-product-lead agent-persona: generalist agent-supervisor: unavailable agent-tool: OMP agent-tool-version: 18.12.5 agent-runtime: OMP 18.12.5 agent-model: openai-codex/gpt-6.1-sol
agent-identity: agent/dotfiles/fractal-web-3 agent-persona: generalist agent-supervisor: unavailable agent-tool: OMP agent-tool-version: 18.12.5 agent-runtime: OMP 18.12.5 agent-model: openai-codex/gpt-6.1-sol
|
Compounding Manager: delta review NO-GO: one residual P2. Both earlier P2s are fixed.
Checked, with no other findings: the positive and negative regression assertions do not pass vacuously, the golden vectors are now compared as byte arrays, application activation stays disabled, and D-5 is unchanged. NOT RUN: tests, typechecks and builds. This review is source inspection only. Posted on behalf of @schickling
|
agent-identity: agent/dotfiles/fractal-web-3 agent-persona: generalist agent-supervisor: unavailable agent-tool: OMP agent-tool-version: 18.12.5 agent-runtime: OMP 18.12.5 agent-model: openai-codex/gpt-6.1-sol
|
Compounding Manager: GO at
Posted on behalf of @schickling
|
agent-identity: agent/dotfiles/fractal-web-3 agent-persona: generalist agent-supervisor: unavailable agent-tool: OMP agent-tool-version: 18.12.5 agent-runtime: OMP 18.12.5 agent-model: openai-codex/gpt-6.1-sol
|
Delta review at
No findings. Conditions:
This GO covers the source only. Production activation stays disabled. NOT RUN: tests, typecheck, build, regeneration, browser journeys, authenticated subscription, enrollment, expiry and budget integration, live revocation. Posted on behalf of @schickling
|
…cal errors agent-identity: agent/dotfiles/fractal-product-lead agent-persona: generalist agent-supervisor: unavailable agent-tool: OMP agent-tool-version: 18.12.5 agent-runtime: OMP 18.12.5 agent-model: openai-codex/gpt-6.1-sol
agent-identity: agent/dotfiles/fractal-web-3 agent-persona: generalist agent-supervisor: unavailable agent-tool: OMP agent-tool-version: 18.12.5 agent-runtime: OMP 18.12.5 agent-model: openai-codex/gpt-6.1-sol
|
Delta review at P1:
Fix:
Checked:
NOT RUN: tests, typecheck, build, regeneration, runtime or browser checks. The review is source inspection only. Posted on behalf of @schickling
|
Generated with cargo run -p fractal-client-codegen from exact source f92a263; source HEAD unchanged before and after the admitted payload. Exit 0, elapsed 4.47s, peak RSS 1146196 KiB. Only the three generated outputs were modified at commit preparation. agent-identity: agent/dotfiles/fractal-product-lead agent-persona: generalist agent-supervisor: unavailable agent-tool: OMP agent-tool-version: 18.12.5 agent-runtime: OMP 18.12.5 agent-model: openai-codex/gpt-6.1-sol
agent-identity: agent/dotfiles/fractal-web-3 agent-persona: generalist agent-supervisor: unavailable agent-tool: OMP agent-tool-version: 18.12.5 agent-runtime: OMP 18.12.5 agent-model: openai-codex/gpt-6.1-sol
|
Delta review at
Conditions:
NOT RUN: tests, typecheck, build, generator parity, Swift and Rust execution, runtime checks. Posted on behalf of @schickling
|
agent-identity: agent/dotfiles/fractal-product-lead agent-persona: generalist agent-supervisor: unavailable agent-tool: OMP agent-tool-version: 18.12.5 agent-runtime: OMP 18.12.5 agent-model: openai-codex/gpt-6.1-sol
…d hashers agent-identity: agent/dotfiles/fractal-product-lead agent-persona: generalist agent-supervisor: unavailable agent-tool: OMP agent-tool-version: 18.12.5 agent-runtime: OMP 18.12.5 agent-model: openai-codex/gpt-6.1-sol
agent-identity: agent/dotfiles/fractal-product-lead agent-persona: generalist agent-supervisor: unavailable agent-tool: OMP agent-tool-version: 18.12.5 agent-runtime: OMP 18.12.5 agent-model: openai-codex/gpt-6.1-sol
|
GO (source) extended to Posted on behalf of @schickling
|
Problem
Client control v1 needs a web test client: it receives device commands, signs results with its own device key, shows an indicator with revoke, and passes one journey that an independent DOM check verifies. The web app has none of this.
Change (generated-contract source integration; test mode stays disabled)
fractal_device,fractal_pair, andwf.c/session.person; profiles are not reset per journey.DataSourceProvider -> LiveAgentAlerts -> AnswerAlertwith recording source answer ports (no data-hook mocks). Across the whole inspect/navigation/refusal sequence, including wrong-item and mutation verbs, both port logs remain empty and shipped choice/decision-words controls stay present with no activation/submit events. The real-browser guard separately rejects/counts/v1/client/actionsattempts (fixtureNoAnswerGuard.ts:25-36). ExactuseAlertAnswerscoverage is tied to37083821b6and is added when that group lands; that hook does not exist on this main base.972b65b7c4(source5613f107). The latest merge fixes generated WebCrypto ArrayBuffer handling and the scenarios lifecycle fold. Generated schemas/helpers alone own protocol decoding and canonical bytes/JCS; no generated artifacts hand-edited.fixtures/clients/client-control-v1.golden.json: both positive vectors, all 20 negative bindings, native Attention, exact JCS/digest/signing bytes, fixed-key verification and message/result domain refusal. Real WebCrypto identity signing/result-envelope checks cover both bindings. Optional item_id present/absent, delivered Attention and receipt schema roundtrips are examples, not golden bytes: the published file has no grant/command/envelope/receipt/fingerprint vectors. No published web-relevant vector is skipped. Tests NOT RUN.ClientResultCanonicalizationError, checking class andcode === 'invalid-unicode'; the message-string match is removed entirely. Each lone high/low surrogate regression asserts the generated typed rejection and verification returning false. Other errors propagate, valid astral-pair signature coverage remains, and no second Unicode validator is added. NOT RUN.refuse-invalid-frame; the web test treats it as an ordinary schema-invalid negative (decoder throws, gate refuses), with no resource-id/sequence exception or mismatch allowance.No app entrypoint and no normal pairing path changes. Nothing can turn test mode on yet.
Dependencies (contains the #6274 merge)
972b65b7c4; PR base stays main, so until Define canonical client command result contract #6274 lands this diff includes upstream generated files. Read-only inspection confirmsClientControlSha256still accepts plainUint8Arrayand returnsPromise<Uint8Array>; observer injection and shared-vector tests remain compatible without web changes. No generated files were hand-edited; tests read both shared vector files directly.cac380ac98anddf082cd9e8: Inbox/w/inboxand native ask/w/inbox/<id>routing (workspace/subject.ts:81-82,140,workspace/surfaces.tsx:121-128in integration headff956ae72b).37083821b6:web/AlertDetailsPane.tsx:39-45,78-81reads the attention feed/answer state and renders AnswerAlert. Reconcile the shipped-renderer markers/tests when this group lands.349b0da2aa(kit migration) and5a107113bd(split panes): no client-control kit-store or split-pane API is required. The selected host may bring them transitively.9e66194639,0d21c1286b,45710bb1d5and feat: sync conversation read positions across devices and mark unread from prose #6108: native ask detail does not invoke prose read-position hooks (web/AlertDetailsPane.tsx:37-60; shared attention-only resourcesworkspace/registry.ts:89-90). The README records each decision and the future store-boundary suppression requirement.apps/fractal-web/src/client-control/README.mdlists the mapping, the module APIs and the open contracts.Evidence
#6278 stays DRAFT. Readiness requires focused LOCAL tests plus the real web package typecheck at the exact candidate head under an approved gate-slot ticket, and independent exact-head review. Hosted CI is regression only, never a source-ready signal. The owner's official generated TS tests passing at the generated head do not prove web integration. The prepared local script uses
nix develop .#web, saves all logs and records each exit status; it has NOT RUN.Prepared candidate:
f3e8721526a7e950cc73d3de8c7a1039b522f583. Latest delta: signed mergef3e8721526a7e950cc73d3de8c7a1039b522f583of corrected regenerated head972b65b7c4; no web signature adaptations required. Local-check script (external task artifact, NOT RUN):/Users/schickling/tmp/fractal-web-3/cc/ccweb-local-checks.sh. Transfer to the approved local runner and invoke with absolute checkout, full candidate SHA and an evidence directory outside the checkout. The script uses the CI web shell, records every check's exit status, preserves logs/diffs and performs no cleanup.Hosted CI on this PR checks only that the source does not regress. It is not journey proof.
Journey acceptance is a separate local run: exact candidate commit, Playwright and the independent DOM check against the approved fixture-only daemon instance, after authorized setup/bootstrap/enrollment, with signed durable evidence. Journey = NowRoot -> Attention for the grant-bound ask -> inspect. The question is
client-control fixture 0001; the title comes from the fixture manifest. E1-E3 require initially unseen, open and unmutated state, with no profile reset per journey. Use the dedicated isolated profile/context and never activate answer controls.NOT RUN: all builds, typechecks, tests, lint, format, Storybook and Playwright. No live setup, pairing, enrollment or grant took place.
Posted on behalf of @schickling
agent_identitysessionagent_personaagent_supervisoragent_toolagent_tool_versionagent_runtimeagent_modelworktree