From 7f6a44c15ec604d210c6d7d7eb1b53d306dd5f49 Mon Sep 17 00:00:00 2001 From: FlowmemoryAI <283694809+FlowmemoryAI@users.noreply.github.com> Date: Wed, 13 May 2026 18:03:01 -0500 Subject: [PATCH] Add full L1 HQ integration status --- docs/CURRENT_STATE.md | 51 ++++--- docs/DAILY_HQ_RUNBOOK.md | 11 +- docs/EASY_SECOND_COMPUTER_SETUP.md | 10 ++ docs/FLOWCHAIN_AGENT_INTEGRATION_MAP.md | 25 +++- docs/FLOWCHAIN_FULL_PRIVATE_TESTNET.md | 25 +++- docs/FLOWCHAIN_HQ_INTEGRATION_STATUS.md | 157 ++++++++++++++++++++++ docs/FLOWCHAIN_OPERATOR_CHECKLIST.md | 11 +- docs/FLOWCHAIN_SECOND_COMPUTER_SETUP.md | 38 ++++-- docs/FLOWCHAIN_TESTNET_ACCEPTANCE.md | 52 +++++--- docs/FLOWCHAIN_TROUBLESHOOTING.md | 12 ++ docs/ISSUE_BACKLOG.md | 58 ++++---- infra/scripts/flowchain-full-smoke.ps1 | 169 ++++++++++++++++++++++++ package.json | 1 + 13 files changed, 539 insertions(+), 81 deletions(-) create mode 100644 docs/FLOWCHAIN_HQ_INTEGRATION_STATUS.md create mode 100644 infra/scripts/flowchain-full-smoke.ps1 diff --git a/docs/CURRENT_STATE.md b/docs/CURRENT_STATE.md index 5420bdb8..176e3ce3 100644 --- a/docs/CURRENT_STATE.md +++ b/docs/CURRENT_STATE.md @@ -118,6 +118,12 @@ Launch-core specifications: - `docs/FLOWCHAIN_TESTNET_ACCEPTANCE.md` marks private/local testnet features as implemented, in flight, missing, or later gated. - `docs/FLOWCHAIN_AGENT_INTEGRATION_MAP.md` maps the next-wave worktree ownership and cross-agent handoffs. - `docs/FLOWCHAIN_TROUBLESHOOTING.md` and `docs/FLOWCHAIN_OPERATOR_CHECKLIST.md` provide the Windows-first second-computer troubleshooting and operator checklist layer. +- `docs/FLOWCHAIN_HQ_INTEGRATION_STATUS.md` is the live HQ issue/PR, branch + ownership, merge-order, and full-smoke blocker map for the full local/private + L1 push. +- `docs/agent-goals/full-l1/` contains the active copy-ready full-L1 agent + prompts, and `infra/scripts/launch-full-l1-agents.ps1` launches those + dedicated worktree agents. - `docs/DECISIONS/rootflow-v0.md` records the V0 decision and non-goal boundaries. - `docs/reviews/ROOTFLOW_FLOW_MEMORY_V0_ACCEPTANCE_AUDIT.md` tracks evidence and missing work for the active launch-core goal. - `docs/reviews/OPEN_PR_MERGE_READINESS.md` is now historical merge-readiness evidence for PRs that have merged. @@ -127,18 +133,24 @@ FlowChain private/local testnet snapshot: - Implemented: V0 launch-core generation and validation, no-value deterministic Rust devnet prototype, contract event/settlement spine, crypto V0 helpers and - vectors, fixture indexer/verifier, fixture-backed dashboard, hardware POC + vectors, fixture indexer/verifier, fixture-backed control-plane API, + fixture-backed dashboard, test-only bridge POC foundation, hardware POC simulator, Base Sepolia reader/deploy commands, guarded canary reader, and Windows-first root wrapper commands for prerequisite checks, init, bounded - start/stop, demo, smoke, export/import, and workbench dev mode. -- In flight: native private-testnet object lifecycle, local control-plane API, - private-testnet object IDs and envelopes, workbench extension, optional - hardware operator signal fixtures, and advanced L1 research gates. + start/stop, demo, smoke, temporary full-smoke blocker reporting, + export/import, bridge mock/test, control-plane serve/smoke, and workbench dev + mode. +- In flight: native private-testnet object lifecycle, live-node control-plane + adapters, private-testnet object IDs and signed envelopes, wallet/vault + support, bridge local-credit application, workbench live-state extension, + optional hardware operator signal fixtures, and advanced L1 research gates. - Missing: long-running local runtime start behavior, private genesis/config package beyond the deterministic devnet genesis, full native object - lifecycle coverage, full control-plane method coverage, full workbench entity - coverage, no-secret API checks, and second-computer smoke evidence for the - unmerged native object/control-plane/workbench surfaces. + lifecycle coverage, signed transaction intake, encrypted local wallet, + full live control-plane method coverage, full workbench entity coverage, + bridge local-credit smoke, no-secret API checks, and second-computer smoke + evidence for the unmerged native object/control-plane/workbench/bridge + surfaces. - Later gated: production L1/mainnet, public validators, tokenomics, production bridge, production hook deployment, audited cryptography, proof-circuit infrastructure, production hardware, and hosted production @@ -165,17 +177,24 @@ FlowChain private/local testnet snapshot: ## Active GitHub Work Shape -Issues #6 through #55 define the current foundation-hardening backlog. They are organized into program milestones in `docs/ISSUE_BACKLOG.md`. +Issues #6 through #55 define the foundation-hardening backlog. GitHub milestone +#7 and issues #99 through #108 define the current full local/private L1 +workstreams. They are organized in `docs/ISSUE_BACKLOG.md` and summarized in +`docs/FLOWCHAIN_HQ_INTEGRATION_STATUS.md`. Closed issue notes: - #16 was closed as not planned because its scope was folded into other architecture/status issues. - #39 was closed; future on-chain verifier adapter work should stay gated behind accepted verifier and crypto boundaries. +- #76, #77, and #79 are closed canary follow-ups and should not be treated as + active private/local testnet blockers. -As of the 2026-05-13 HQ review for the private/local testnet next wave, GitHub -shows open draft PRs #71 and #73, plus open canary follow-up issues #76 through -#79. Local sibling worktrees contain unmerged Local Alpha work; those changes -are useful context but are not source of truth until merged. +As of the 2026-05-13 HQ review for the full local/private L1 push, GitHub shows +open draft PRs #71, #73, #110, #111, #112, #113, and #114. PR #98 has merged into `main` and added the +full-L1 agent prompt/launcher layer. Issue #78 remains open for the real +Uniswap v4 hook path but is outside the private/local runtime critical path. +Local sibling worktrees contain unmerged full-L1 work; those changes are useful +context but are not source of truth until merged. Recently merged PRs: @@ -188,6 +207,8 @@ Recently merged PRs: - #62 Dashboard V0. - #68 Launch-core FlowMemory V0 integration. - #69 Contract event spine for launch-core Flow Memory objects. +- #97 Control-plane CORS/browser-safe endpoint fix. +- #98 Full L1 agent goal launcher. ## Active Local Work @@ -219,9 +240,9 @@ Before assigning agents, check for dirty worktrees and avoid overlapping folders ## Current Operator Priorities 1. Keep the generated launch-core command stable in CI. -2. Keep the new root wrapper path usable on Windows: `flowchain:prereq`, `flowchain:init`, `flowchain:start`, `flowchain:demo`, `flowchain:smoke`, `flowchain:export`, and `workbench:dev`. +2. Keep the root wrapper path usable on Windows: `flowchain:prereq`, `flowchain:init`, `flowchain:start`, `flowchain:demo`, `flowchain:smoke`, `flowchain:full-smoke`, `flowchain:export`, `control-plane:serve`, bridge mock/test commands, and `workbench:dev`. 3. Convert the remaining V0/local-alpha surfaces into one FlowChain private/local L1 testnet package for second-computer validation. -4. Land the missing subsystem pieces behind the wrappers: long-running runtime behavior, control-plane serve/query coverage, native object lifecycle, and workbench entity coverage. +4. Land the missing subsystem pieces behind the wrappers: long-running runtime behavior, wallet/signing, live control-plane query/submission coverage, native object lifecycle, bridge local-credit smoke, and workbench entity coverage. 5. Keep the guarded Base canary reader and dashboard canary artifacts fresh when canary smoke actions change. 6. Exercise the Base Sepolia deploy/read path on explicit testnet contract addresses only. 7. Continue contracts hardening without production mainnet deployment or token mechanics. diff --git a/docs/DAILY_HQ_RUNBOOK.md b/docs/DAILY_HQ_RUNBOOK.md index 2fa628e2..370a4cae 100644 --- a/docs/DAILY_HQ_RUNBOOK.md +++ b/docs/DAILY_HQ_RUNBOOK.md @@ -35,6 +35,8 @@ Morning: - Confirm GitHub open PRs and issues still match `docs/CURRENT_STATE.md` and `docs/ISSUE_BACKLOG.md`. +- Confirm `docs/FLOWCHAIN_HQ_INTEGRATION_STATUS.md` matches GitHub milestone + #7, issues #99-#108, and open PRs. - Check all sibling worktrees for dirty changes before assigning agents. - Verify no two active agents are editing the same folder family or source-of-truth doc without coordination. @@ -42,11 +44,14 @@ Morning: missing to in flight or implemented after merges. - Verify root command aliases in `package.json` still match the scripts under `infra/scripts/flowchain-*.ps1`. +- Verify `npm run flowchain:full-smoke -- -AllowIncomplete -SkipMergedSmoke` + still reports missing subsystem commands with owning issue numbers until + #108 is ready to pass. - Confirm the next assigned work extends the existing devnet, control-plane, crypto, dashboard, contracts, hardware, or research surface instead of adding a replacement system. -- Keep production L1, tokenomics, public validator, production bridge, audited - cryptography, production hook, and production hardware claims blocked. +- Keep public-chain launch, tokenomics, public validator, value-bearing bridge, + audited-cryptography, production hook, and production hardware claims blocked. Evening: @@ -61,6 +66,8 @@ Evening: day, and name the first failing step. - Save or cite `devnet/local/smoke/flowchain-smoke-report.json` when full smoke runs locally. +- Save or cite `devnet/local/smoke/flowchain-full-smoke-report.json` when the + full-L1 wrapper is run, even if it is expected to report blockers. - Require `git diff --check` in each PR summary and area tests where the touched area has tests. diff --git a/docs/EASY_SECOND_COMPUTER_SETUP.md b/docs/EASY_SECOND_COMPUTER_SETUP.md index 15372b20..5fe780f2 100644 --- a/docs/EASY_SECOND_COMPUTER_SETUP.md +++ b/docs/EASY_SECOND_COMPUTER_SETUP.md @@ -46,6 +46,16 @@ initializes local state, runs the deterministic local chain demo, runs the smoke path, exports a local bundle, runs the bridge mock, and opens the control plane and dashboard in separate PowerShell windows. +The current installer uses the merged-surface smoke path. The full local L1 +acceptance wrapper is: + +```powershell +npm run flowchain:full-smoke -- -AllowIncomplete +``` + +It reports the remaining subsystem blockers until issues #99 through #108 are +finished. + ## Already Cloned Setup If the repo is already cloned: diff --git a/docs/FLOWCHAIN_AGENT_INTEGRATION_MAP.md b/docs/FLOWCHAIN_AGENT_INTEGRATION_MAP.md index 0716c41a..d9e382a1 100644 --- a/docs/FLOWCHAIN_AGENT_INTEGRATION_MAP.md +++ b/docs/FLOWCHAIN_AGENT_INTEGRATION_MAP.md @@ -25,6 +25,7 @@ or setup flow. | Dashboard / Workbench | `E:\FlowMemory\flowmemory-dashboard` | `apps/dashboard/` | Existing dashboard app, fixtures, styling, data model | New dashboard app, services, crypto, contracts | | Hardware | `E:\FlowMemory\flowmemory-hardware` | `hardware/`, `fixtures/hardware/` | Existing FlowRouter simulator and POC docs | Chain runtime, services, dashboard implementation | | Contracts | `E:\FlowMemory\flowmemory-contracts` | `contracts/`, `tests/` | Existing FlowPulse and registry/event skeletons | Core private L1 runtime, tokenomics, bridge | +| Bridge | `E:\FlowMemory\flowmemory-bridge-full` | `services/bridge-relayer/`, `contracts/bridge/`, `tests/bridge/`, `fixtures/bridge/`, bridge schemas/docs | Existing bridge POC docs, relayer package, schemas, and guarded smoke boundaries | Production bridge, real-funds default paths, dashboard implementation, core runtime | | Research | `E:\FlowMemory\flowmemory-research` | `research/`, `docs/DECISIONS/` | Existing research gates and decisions | Implementation folders, public-chain claims | ## Current Coordination Facts @@ -37,6 +38,15 @@ or setup flow. - Active sibling worktrees contain unmerged Local Alpha work for devnet object transitions, control-plane API, crypto object identity, hardware signal projection, and research gates. +- The full-L1 launcher from PR #98 has merged into `main`. It defines + `docs/agent-goals/full-l1/` and starts the active `agent/full-l1-*` + worktrees. +- GitHub milestone #7 tracks the full private/local L1 package. Workstream + issues are #99 chain, #100 crypto, #101 control plane, #102 dashboard, + #103 contracts, #104 bridge, #105 hardware, #106 research, #107 HQ, and + #108 full-smoke packaging. +- `docs/FLOWCHAIN_HQ_INTEGRATION_STATUS.md` is the live HQ matrix for current + branch/PR ownership, merge order, and full-smoke blockers. - Unmerged worktree changes are not final source of truth. Treat them as in-flight context until reviewed and merged. - GitHub remains the source of truth for issues, pull requests, reviews, and @@ -54,6 +64,9 @@ or setup flow. | Hardware | Control Plane | Optional operator signal fixture shape and trust labels. | | Hardware | Dashboard | Optional hardware node, alert, receipt breadcrumb, verifier digest, and NFC metadata projections. | | Contracts | Chain/Indexer | Optional settlement/event spine semantics and FlowPulse compatibility. | +| Contracts | Bridge | BaseBridgeLockbox events, replay/cap/pause behavior, test-only release boundaries, and Foundry evidence. | +| Bridge | Chain/Control Plane | BridgeObservation and BridgeCredit handoff files or API calls, replay status, and local-credit smoke output. | +| Bridge | Dashboard | Deposit observed, credit pending/applied, withdrawal requested, and risk labels. | | Research | All | Gates for Process-Witness, SEAL/dependency privacy, private state, public appchain, bridge, and proof systems. | | HQ / Review | All | Acceptance matrix, merge order, claim guardrails, issue grouping, and second-computer setup criteria. | @@ -63,10 +76,12 @@ or setup flow. 2. Land or refresh Local Alpha devnet object lifecycle work. 3. Land or refresh crypto object identity and vectors for the same object set. 4. Land control-plane API on top of existing fixture/devnet outputs. -5. Extend the existing dashboard into a private testnet workbench. -6. Add optional hardware signal fixtures after object/API labels are stable. -7. Keep packaging scripts and root command aliases aligned as subsystem commands land. -8. Run the second-computer smoke path and update acceptance evidence. +5. Harden bridge/settlement event semantics and local bridge-credit handoffs + after object/API labels are stable. +6. Extend the existing dashboard into a private testnet workbench. +7. Add optional hardware signal fixtures after object/API labels are stable. +8. Keep packaging scripts and root command aliases aligned as subsystem commands land. +9. Run `npm run flowchain:full-smoke` and update acceptance evidence. ## Duplicate-Work Stops @@ -76,6 +91,8 @@ Stop and ask for HQ review if a PR starts adding: - A new dashboard or explorer outside the existing app surface. - A new crypto package instead of extending `crypto/`. - A new verifier or control-plane pipeline that bypasses current services. +- A new bridge relayer or bridge object model that bypasses the current + `services/bridge-relayer/`, `contracts/bridge/`, or bridge schemas. - A second object model that conflicts with `schemas/flowmemory/` or crypto IDs. - A setup flow that competes with the second-computer setup guide. - Tokenomics, production bridge work, public validator onboarding, or production diff --git a/docs/FLOWCHAIN_FULL_PRIVATE_TESTNET.md b/docs/FLOWCHAIN_FULL_PRIVATE_TESTNET.md index 5881e9ae..703a1208 100644 --- a/docs/FLOWCHAIN_FULL_PRIVATE_TESTNET.md +++ b/docs/FLOWCHAIN_FULL_PRIVATE_TESTNET.md @@ -38,8 +38,9 @@ Status vocabulary for this milestone: | Devnet/runtime | `crates/flowmemory-devnet/`, `docs/LOCAL_DEVNET.md` | Implemented no-value deterministic prototype | Local Alpha work expands native object transitions and lifecycle tests. | | Contracts spine | `contracts/`, `tests/`, FlowPulse and registry skeletons | Implemented local/test settlement/event foundation | Contracts work should remain optional settlement/event spine. | | Crypto/object identity | `crypto/`, `crypto/fixtures/`, `schemas/flowmemory/` | Implemented V0 hash helpers and vectors | Local Alpha work adds object IDs for agent, model, memory, challenge, and finality objects. | -| Indexer/verifier/control plane | `services/indexer/`, `services/verifier/`, `services/flowmemory/` | Implemented fixture-first indexer/verifier and generator | Local Alpha work adds `services/control-plane/` as the local API. | +| Indexer/verifier/control plane | `services/indexer/`, `services/verifier/`, `services/flowmemory/`, `services/control-plane/` | Implemented fixture-first indexer/verifier, generator, and local fixture-backed API | Full-L1 work adds live-node adapters, transaction submission, bridge intake, full lifecycle smoke, and no-secret API checks. | | Dashboard/workbench | `apps/dashboard/` and generated dashboard fixtures | Implemented fixture-backed dashboard V0 | Workbench work should extend this app, not create a second dashboard. | +| Bridge/test credit path | `docs/bridge/`, `contracts/bridge/`, `services/bridge-relayer/`, `fixtures/bridge/`, bridge schemas | Implemented test-only POC foundation | Full-L1 work maps mock/Base Sepolia observations into local BridgeObservation and BridgeCredit handoffs. | | Hardware/operator signals | `hardware/`, `fixtures/hardware/`, simulator | Implemented FlowRouter POC and simulator | Local Alpha work maps optional operator signals into private testnet views. | | Research gates | `research/`, `docs/DECISIONS/` | Implemented research docs and guardrails | Local Alpha research gates Process-Witness, SEAL, private state, and public L1 work. | @@ -59,12 +60,14 @@ change only if the second-computer setup guide names the chosen commands. | Start private testnet | `npm run flowchain:start` | Implemented bounded wrapper that prepares launch-core fixtures and inspects local state. Current devnet is still CLI/demo oriented, not a long-running node. | | Run deterministic demo | `npm run flowchain:demo` | Implemented wrapper over the existing devnet `demo`. | | Run full smoke test | `npm run flowchain:smoke` | Implemented for merged surfaces: services, crypto tests/vectors, launch candidate, devnet tests, deterministic replay, dashboard build, hardware fixture, unsafe-claim scan, and no-secret export scan. Native object/control-plane coverage remains blocked on subsystem work. | +| Run full private/local L1 smoke gate | `npm run flowchain:full-smoke` | Implemented as a temporary blocker-report wrapper for #108. It runs the merged-surface smoke unless skipped, writes `devnet/local/smoke/flowchain-full-smoke-report.json`, and exits nonzero until issues #99 through #105 land the missing subsystem command coverage. | | Export state | `npm run flowchain:export` | Implemented wrapper over `export-fixtures`; writes ignored export bundles under `devnet/local/export/`. | | Import state | `npm run flowchain:import -- --BundlePath -Force` | Implemented script path for local state restore from an exported bundle. | | Start local workbench | `npm run workbench:dev` | Implemented wrapper over the existing dashboard dev server. | | Prerequisite check | `npm run flowchain:prereq` | Implemented Windows-first prerequisite and dependency-state check. | | Stop private testnet | `npm run flowchain:stop` | Implemented operator-state wrapper; can reset ignored local state with `-ResetLocalState`. | -| Start control plane | documented local API command | In flight in `services/control-plane/`; active command is `npm run control-plane:serve` in the control-plane worktree. | +| Start control plane | `npm run control-plane:serve` | Implemented local fixture-backed API command; live-node transaction submission and full lifecycle coverage remain #101. | +| Run bridge mock | `npm run bridge:mock` | Implemented test-only bridge observation mock; local-credit smoke remains #104. | ## Target Native Objects @@ -109,17 +112,25 @@ machine can: 15. Finalize receipts. 16. Query all state through the documented local control-plane API. 17. Inspect all state through the existing dashboard/workbench surface. -18. Export and import snapshots or state bundles. -19. Run an end-to-end smoke test proving the full flow. -20. Re-run the same smoke test deterministically. +18. Observe a mock or Base Sepolia test bridge deposit and apply or hand off a + local BridgeCredit without real-funds defaults. +19. Export and import snapshots or state bundles. +20. Run an end-to-end smoke test proving the full flow. +21. Re-run the same smoke test deterministically. Current HQ/Ops completion for this pass: - The second-computer command names now exist at the repo root. - The commands exercise the current merged launch-core, Rust devnet, - dashboard, hardware simulator, export, import, and claim-guardrail surfaces. + control plane, bridge mock, dashboard, hardware simulator, export, import, + and claim-guardrail surfaces. +- GitHub milestone #7 and issues #99 through #108 now track the full-L1 + workstreams and final smoke gate. +- `npm run flowchain:full-smoke` now exists as the explicit full acceptance + wrapper, but it is intentionally incomplete until subsystem commands land. - The full private object lifecycle is still owned by the chain, crypto, - control-plane, and dashboard workstreams named in + control-plane, dashboard, contracts, bridge, hardware, research, and HQ + workstreams named in `docs/FLOWCHAIN_AGENT_INTEGRATION_MAP.md`. ## Non-Goals diff --git a/docs/FLOWCHAIN_HQ_INTEGRATION_STATUS.md b/docs/FLOWCHAIN_HQ_INTEGRATION_STATUS.md new file mode 100644 index 00000000..3b18d629 --- /dev/null +++ b/docs/FLOWCHAIN_HQ_INTEGRATION_STATUS.md @@ -0,0 +1,157 @@ +# FlowChain HQ Integration Status + +Status: live HQ issue, PR, branch, ownership, merge-order, and smoke map for +the FlowChain private/local L1 testnet package. + +Last synced: 2026-05-13. + +GitHub is the source of truth. This file is the local HQ view after checking +open GitHub PRs/issues, `status-report.ps1`, and the local package command map. + +## GitHub Source Of Truth + +Milestone: + +- #7 `FlowChain Private/Local L1 Testnet Package` + +Full-L1 workstream issues: + +| Area | Issue | Primary branch/worktree | Ownership | +| --- | --- | --- | --- | +| Chain/runtime | #99 | `agent/full-l1-runtime` in `E:\FlowMemory\flowmemory-chain` | `crates/flowmemory-devnet/`, `devnet/`, runtime wrappers | +| Crypto/wallet | #100 | `agent/full-l1-crypto-wallet` in `E:\FlowMemory\flowmemory-crypto` | `crypto/`, `schemas/flowmemory/`, wallet/envelope vectors | +| Control plane/indexer | #101 | `agent/full-l1-control-plane` in `E:\FlowMemory\flowmemory-indexer` | `services/`, live API, no-secret API checks | +| Dashboard/workbench | #102 | `agent/full-l1-workbench` in `E:\FlowMemory\flowmemory-dashboard` | `apps/dashboard/`, local workbench views | +| Contracts/settlement | #103 | `agent/full-l1-contracts` in `E:\FlowMemory\flowmemory-contracts` | `contracts/`, `tests/`, bridge/settlement events | +| Bridge/test credit | #104 | `agent/full-l1-bridge` in `E:\FlowMemory\flowmemory-bridge-full` | `services/bridge-relayer/`, `contracts/bridge/`, bridge schemas/fixtures | +| Hardware signals | #105 | `agent/full-l1-hardware` in `E:\FlowMemory\flowmemory-hardware` | `hardware/`, `fixtures/hardware/`, optional signal fixtures | +| Research decisions | #106 | `agent/full-l1-research-consensus` in `E:\FlowMemory\flowmemory-research` | `research/`, `docs/DECISIONS/` | +| HQ integration | #107 | `agent/full-l1-hq-integration` in `E:\FlowMemory\flowmemory-review` | docs, runbooks, issue/PR map, smoke evidence | +| Full smoke gate | #108 | `agent/full-l1-hq-integration` plus subsystem branches | `infra/scripts/flowchain-full-smoke.ps1`, root package command | + +Other relevant issues: + +- #78 remains open for the real Uniswap v4 hook path beyond the adapter + scaffold. It is not on the critical path for the private/local L1 runtime. +- #76, #77, and #79 are closed. Do not keep treating them as active canary + follow-up issues. + +## Open PRs + +| PR | Branch | Status | Changed ownership | Review notes | Merge order | +| --- | --- | --- | --- | --- | --- | +| #114 `[codex] Extend local FlowChain control-plane API` | `agent/full-l1-control-plane` | Draft, CI passing | `services/control-plane/`, `docs/FLOWCHAIN_CONTROL_PLANE_API.md`, `docs/INDEXER_VERIFIER_MVP.md`, `package.json` | Matches #101 ownership. Adds live/local-file preference, submit/intake surfaces, and no-secret scan. Review should focus on whether transaction/bridge intake contracts match #99/#104 and whether package command additions conflict with #111/#113. | After #111, before #112 if dashboard depends on the expanded methods. | +| #113 `[codex] Build bridge relayer credit handoff smoke` | `agent/full-l1-bridge` | Draft, CI passing | `services/bridge-relayer/`, bridge schemas/fixtures/docs, bridge scripts, `package.json` | Matches #104 ownership. Adds bridge local-credit smoke and full-smoke wiring on its branch. Review should coordinate schema/event assumptions with #110 and runtime handoff expectations with #99/#101. | After #110 event schema is accepted, and after or alongside #114 if API intake is required. | +| #112 `[codex] Expand FlowChain workbench live console` | `agent/full-l1-workbench` | Draft, CI passing | `apps/dashboard/`, `docs/DASHBOARD_MVP.md` | Matches #102 ownership and extends the existing dashboard rather than adding a second app. PR notes say `flowchain:full-smoke` is not present on its branch, so it needs rebase after #111 before final review. Review should focus on API-gated actions, no browser private-key handling, and avoiding production/mainnet or real-funds UX claims. | After #101/#114 API surfaces are stable enough, or merge earlier only if all live API assumptions are fixture-safe and #111 is rebased in. | +| #110 `[codex] harden bridge lockbox settlement spine` | `agent/full-l1-contracts` | Draft, CI passing | `contracts/`, `tests/`, `script/`, `docs/bridge/` | Matches #103 ownership and does not touch services/apps/crates/crypto/hardware. Needs PR body or comment to link #103. Review should focus on duplicate bridge object semantics with #104 and whether `FlowChainSettlementSpine` stays optional settlement/event support rather than a second runtime. | Candidate early merge after #107 if #103 linkage is added and bridge relayer #104 accepts the event schema. | +| #71 `[codex] add terminal goal dispatcher` | `hq/terminal-dispatch` | Draft | `infra/scripts/send-goal-to-agent.ps1` | The merged launcher from #98 already starts full-L1 agents. Before merge, confirm this dispatcher still has distinct value and document how it relates to `launch-full-l1-agents.ps1`; avoid two competing dispatch paths. | After #107 refresh, or close if superseded by #98. | +| #73 `[codex] add L1 research inventory` | `hq/l1-research-inventory` | Draft | `docs/CURRENT_STATE.md`, `docs/L1_RESEARCH_INVENTORY.md`, `docs/ROADMAP.md` | Docs-only and no product implementation. Needs rebase/refresh against current `main` and the new #106 research decision issue before merge because it touches source-of-truth state docs. | Before or alongside #106 if refreshed; otherwise after #106 decisions. | + +Recently merged: + +- #98 `Add full L1 agent goal launcher` is merged into `main` at + `83d33f0`. It added `docs/agent-goals/full-l1/` and + `infra/scripts/launch-full-l1-agents.ps1`. + +## Local Worktrees + +Current `status-report.ps1` output showed these active branches: + +| Worktree | Branch | PR | Dirty state | Notes | +| --- | --- | --- | --- | --- | +| `E:\FlowMemory\flowmemory-main` | `release/windows-beginner-installer` | none listed | clean | Main checkout is not on `main`; use for status only unless assigned. | +| `E:\FlowMemory\flowchain-release` | `hq/full-l1-master-goals` | #98 merged | clean | Historical launcher branch; main contains its files. | +| `E:\FlowMemory\flowmemory-chain` | `agent/full-l1-runtime` | none yet | clean | Owns #99. | +| `E:\FlowMemory\flowmemory-crypto` | `agent/full-l1-crypto-wallet` | none yet | clean | Owns #100. | +| `E:\FlowMemory\flowmemory-indexer` | `agent/full-l1-control-plane` | #114 draft | dirty at latest status-report snapshot | Owns #101. | +| `E:\FlowMemory\flowmemory-dashboard` | `agent/full-l1-workbench` | #112 draft | dirty at latest status-report snapshot | Owns #102. | +| `E:\FlowMemory\flowmemory-contracts` | `agent/full-l1-contracts` | #110 draft | clean at last status-report snapshot; PR now open | Owns #103 and can support #104 contract pieces. | +| `E:\FlowMemory\flowmemory-bridge-full` | `agent/full-l1-bridge` | #113 draft | dirty at latest status-report snapshot | Owns #104. | +| `E:\FlowMemory\flowmemory-hardware` | `agent/full-l1-hardware` | none yet | clean | Owns #105. | +| `E:\FlowMemory\flowmemory-research` | `agent/full-l1-research-consensus` | none yet | clean | Owns #106. | +| `E:\FlowMemory\flowmemory-review` | `agent/full-l1-hq-integration` | this PR | clean before HQ edits | Owns #107 and #108 wrapper contract. | +| `E:\FlowMemory\flowmemory-bridge` | `agent/flowchain-base-bridge-poc` | none listed | dirty/untracked | Separate bridge POC worktree. Do not reuse for unrelated work; reconcile before assigning. | + +## Integration Matrix + +| Area | Implemented now | Running now | Remaining before full chain | Next prompt | +| --- | --- | --- | --- | --- | +| Chain | Deterministic no-value Rust devnet, demo, export/import, bounded wrappers | `flowchain:init`, `flowchain:start`, `flowchain:demo`, `flowchain:smoke` merged-surface path | Long-running node, signed tx intake, local balance/faucet records, multi-process smoke, native object lifecycle | `docs/agent-goals/full-l1/chain-runtime.md` | +| Crypto | Keccak V0 helpers, vectors, receipt/report/root helpers | `npm test --prefix crypto`, `npm run validate:vectors --prefix crypto` | Wallet/vault, signed envelopes, object IDs for full native lifecycle and bridge objects, negative vectors | `docs/agent-goals/full-l1/crypto-wallet.md` | +| Control plane | Local fixture-backed API, `/health`, `/state`, `/rpc`, smoke command | `npm run control-plane:serve`, `npm run control-plane:smoke` | Live node adapters, transaction submission, full lifecycle queries, bridge intake, no-secret response scans | `docs/agent-goals/full-l1/control-plane-indexer.md` | +| Dashboard | Existing Vite dashboard/workbench and fixture-backed views | `npm run workbench:dev`, dashboard build/test | Live API-backed local chain console, transaction/account/bridge/hardware views, second-computer status states | `docs/agent-goals/full-l1/dashboard-workbench.md` | +| Contracts | FlowPulse/registry surfaces and bridge POC foundation | `forge test`, `npm run contracts:hardening` | Harden BaseBridgeLockbox, settlement/event spine tests, dry-run deploy scripts, bridge event docs | `docs/agent-goals/full-l1/contracts-settlement.md` | +| Bridge | Test-only bridge POC docs, relayer package, mock command | `npm run bridge:mock`, `npm run bridge:test` | Base Sepolia observation command, BridgeCredit local runtime handoff, withdrawal intent, local-credit smoke | `docs/agent-goals/full-l1/bridge-relayer.md` | +| Hardware | FlowRouter POC simulator and seed fixture | Python simulator validation through current smoke | Operator signal fixtures for heartbeat, alerts, receipt relay, verifier digest, bridge alert, NFC metadata; optional API/workbench ingestion | `docs/agent-goals/full-l1/hardware-signals.md` | +| Research | Local-alpha and deployment-gate decisions exist | Docs only | Concrete consensus, transaction/state, storage, wallet, and bridge decision records for implementation | `docs/agent-goals/full-l1/research-consensus.md` | + +## Merge Order + +1. HQ #107 documentation, issue map, and temporary full-smoke wrapper. +2. Research #106 if builder agents need decisions before changing protocol + behavior. +3. Chain #99 and crypto #100 in parallel if their envelope/object contracts are + coordinated. +4. Control-plane #101 after the chain handoff shape and crypto object IDs are + stable enough to query. +5. Contracts #103 and bridge #104 in parallel only after bridge event/object + vocabulary is stable; bridge local-credit smoke depends on runtime/control + plane intake. +6. Dashboard #102 after the control-plane API methods settle. +7. Hardware #105 after control-plane/dashboard labels for optional signals are + stable. +8. Ops #108 finalizes `flowchain:full-smoke` after subsystem smoke commands + exist and produce evidence. + +If two PRs touch the same source-of-truth doc, merge the HQ/process PR first, +then rebase the subsystem PR and update only its evidence rows. + +## Full Smoke Status + +`npm run flowchain:full-smoke` now exists as the HQ wrapper contract. Until +issues #99 through #105 land their subsystem commands, it: + +- runs the current merged-surface `flowchain:smoke` unless skipped; +- writes `devnet/local/smoke/flowchain-full-smoke-report.json`; +- reports missing command coverage with owning issue numbers; +- exits nonzero by default while the full private/local L1 lifecycle is + incomplete; +- can be run with `-AllowIncomplete` only to validate the temporary wrapper. + +Latest local evidence from this HQ pass: + +| Command | Result | Evidence | +| --- | --- | --- | +| `npm run flowchain:smoke` | Passed after installing dashboard and crypto package dependencies | `devnet/local/smoke/flowchain-smoke-report.json` reported deterministic replay `true`, state root `0x75373cc47666ed9bcad605ce0f5d0aeb1bc8100a1087840d755205aef8a6bb50`, service/crypto/launch/devnet/dashboard/hardware/no-secret checks passed. | +| `npm run flowchain:full-smoke -- -SkipMergedSmoke -AllowIncomplete` | Passed as temporary blocker-report mode | `devnet/local/smoke/flowchain-full-smoke-report.json` reported `fullAcceptance: false` and missing command coverage for #99, #100, #104, and #105. | +| `git diff --check` | Passed | Only line-ending warnings were emitted by Git on this Windows checkout; no whitespace errors were reported. | + +Required final promotion for #108: + +- start or verify a long-running local node; +- create/unlock local test wallet; +- submit signed transactions and include them in blocks; +- query the control plane for every lifecycle object; +- build or verify the workbench; +- run bridge mock/local-credit smoke; +- validate optional hardware signal fixtures; +- export/import and compare deterministic roots; +- write a non-secret smoke report. + +## Follow-Up Prompts + +When an agent finishes early, assign the next smallest prompt in this order: + +1. Chain: add the smallest transaction intake and one-node smoke that can feed + control-plane state. +2. Crypto: ship object IDs and envelope validation before wallet UX polish. +3. Control plane: add no-secret response scanning as soon as live adapters are + present. +4. Dashboard: add down/offline command guidance before adding submit actions. +5. Contracts: stabilize bridge event tests before Base Sepolia scripts. +6. Bridge: keep mock observation and local handoff green before any Base + Sepolia read. +7. Hardware: deliver deterministic fixture shape before optional dashboard + polish. +8. Research: land decision records that unblock currently active builder PRs + first. diff --git a/docs/FLOWCHAIN_OPERATOR_CHECKLIST.md b/docs/FLOWCHAIN_OPERATOR_CHECKLIST.md index 10dc101a..dfa56264 100644 --- a/docs/FLOWCHAIN_OPERATOR_CHECKLIST.md +++ b/docs/FLOWCHAIN_OPERATOR_CHECKLIST.md @@ -24,6 +24,8 @@ Check: - Whether open PRs touch overlapping folders. - Whether docs still match GitHub issue and PR state. - Whether `docs/FLOWCHAIN_TESTNET_ACCEPTANCE.md` has stale statuses. +- Whether `docs/FLOWCHAIN_HQ_INTEGRATION_STATUS.md` matches GitHub milestone + #7, open PRs, and active full-L1 branches. - Whether command names in `docs/FLOWCHAIN_SECOND_COMPUTER_SETUP.md` still match `package.json`. - Whether any PR adds tokenomics, public validator onboarding, production @@ -43,6 +45,13 @@ npm run flowchain:export Run `npm run flowchain:smoke` when the machine has the full prerequisite set, including Foundry, Python, dashboard dependencies, and crypto dependencies. +Run the temporary full-L1 gate in blocker-report mode after wrapper or issue +map changes: + +```powershell +npm run flowchain:full-smoke -- -SkipMergedSmoke -AllowIncomplete +``` + ## During The Day - Keep each agent in its assigned worktree and folder lane. @@ -71,6 +80,7 @@ Run before handoff when dependencies are installed: ```powershell npm run flowchain:smoke +npm run flowchain:full-smoke -- -AllowIncomplete git diff --check ``` @@ -86,4 +96,3 @@ End each HQ/Ops handoff with: - Tests or checks run. - Current second-computer next command. - Risks, assumptions, and follow-ups. - diff --git a/docs/FLOWCHAIN_SECOND_COMPUTER_SETUP.md b/docs/FLOWCHAIN_SECOND_COMPUTER_SETUP.md index a6ef8096..8525bb8d 100644 --- a/docs/FLOWCHAIN_SECOND_COMPUTER_SETUP.md +++ b/docs/FLOWCHAIN_SECOND_COMPUTER_SETUP.md @@ -55,9 +55,10 @@ When `gh auth login` asks questions, use GitHub.com, HTTPS, and browser login. Use this path today on a clean second computer. It validates the merged V0 launch-core, no-value local devnet prototype, dashboard workbench, hardware -simulator fixture, and Windows wrapper layer. It does not yet prove the full -native AgentAccount, ModelPassport, MemoryCell, Challenge, FinalityReceipt, or -control-plane lifecycle. +simulator fixture, bridge mock, control-plane fixture API, and Windows wrapper +layer. It does not yet prove the full long-running node, wallet signing, +native AgentAccount, ModelPassport, MemoryCell, Challenge, FinalityReceipt, +live control-plane, bridge local-credit, or live workbench lifecycle. If the repo is already cloned, run from the repo root: @@ -117,6 +118,18 @@ Run the full merged-surface smoke path: npm run flowchain:smoke ``` +Check the full private/local L1 gate status: + +```powershell +npm run flowchain:full-smoke -- -AllowIncomplete +``` + +This command writes +`devnet/local/smoke/flowchain-full-smoke-report.json`. It is expected to report +missing subsystem command coverage until issues #99 through #105 land. Without +`-AllowIncomplete`, it exits nonzero while the full local L1 package remains +incomplete. + Run the local workbench in a separate PowerShell window: ```powershell @@ -146,13 +159,16 @@ Expected current result: - `npm run flowchain:smoke` writes `devnet/local/smoke/flowchain-smoke-report.json` and compares deterministic replay roots. +- `npm run flowchain:full-smoke -- -AllowIncomplete` writes + `devnet/local/smoke/flowchain-full-smoke-report.json` and names missing + command coverage with owning issue numbers. - `npm run workbench:dev` opens the existing dashboard as the local workbench. Current stop point: if a second computer needs long-running node behavior, -control-plane queries, encrypted key storage, native AgentAccount, -ModelPassport, MemoryCell, Challenge, FinalityReceipt, or full workbench -inspection of those entities, that is still the private/local testnet package -target owned by the subsystem workstreams. +signed transaction intake, encrypted key storage, native AgentAccount, +ModelPassport, MemoryCell, Challenge, FinalityReceipt, bridge local credits, +or full live workbench inspection of those entities, that is still the +private/local testnet package target owned by issues #99 through #108. ## Final Second-Computer Path @@ -170,13 +186,13 @@ npm run flowchain:init npm run flowchain:start npm run control-plane:serve npm run workbench:dev -npm run flowchain:smoke +npm run flowchain:full-smoke npm run flowchain:export ``` If `flowchain:start`, `control-plane:serve`, or `workbench:dev` are long-running commands, run each one in its own PowerShell window and run -`flowchain:smoke` from a fourth window after the services are healthy. +`flowchain:full-smoke` from a fourth window after the services are healthy. If final command names differ, this guide must be updated in the same PR that adds the commands. The final path must still include prerequisite checks, @@ -195,7 +211,9 @@ npm run flowchain:start npm run flowchain:stop npm run flowchain:demo npm run flowchain:smoke +npm run flowchain:full-smoke npm run flowchain:export +npm run control-plane:serve npm run workbench:dev ``` @@ -209,8 +227,10 @@ Current status: | `npm run flowchain:stop` | Implemented bounded wrapper | Use `npm run flowchain:stop -- -ResetLocalState` for an explicit reset. | | `npm run flowchain:demo` | Implemented | Wraps the existing Rust devnet `demo`. | | `npm run flowchain:smoke` | Implemented for merged surfaces | Native object/control-plane smoke coverage remains missing. | +| `npm run flowchain:full-smoke` | Temporary blocker-report wrapper | Runs merged smoke unless skipped, writes `devnet/local/smoke/flowchain-full-smoke-report.json`, and exits nonzero until #99-#105 command coverage lands. | | `npm run flowchain:export` | Implemented | Writes ignored export directory and zip bundle. | | `npm run flowchain:import -- --BundlePath -Force` | Implemented script path | Restores local state from an exported bundle. | +| `npm run control-plane:serve` | Implemented fixture-backed API | Live node adapters and transaction submission remain #101. | | `npm run workbench:dev` | Implemented | Wraps `npm run dev --prefix apps/dashboard`. | ## Local Operator Keys diff --git a/docs/FLOWCHAIN_TESTNET_ACCEPTANCE.md b/docs/FLOWCHAIN_TESTNET_ACCEPTANCE.md index ca6af694..217f78b0 100644 --- a/docs/FLOWCHAIN_TESTNET_ACCEPTANCE.md +++ b/docs/FLOWCHAIN_TESTNET_ACCEPTANCE.md @@ -2,7 +2,8 @@ Status: acceptance matrix for the private/local testnet package. The HQ/Ops command wrapper layer is implemented for merged surfaces; full native object, -control-plane, and workbench acceptance remains in flight. +long-running runtime, wallet, bridge-credit, live control-plane, and workbench +acceptance remains in flight. This document marks every major feature as one of: @@ -21,10 +22,11 @@ This document marks every major feature as one of: | Run devnet tests | Implemented | `cargo test --manifest-path crates/flowmemory-devnet/Cargo.toml`. | | Run service tests | Implemented | `npm test` for merged service packages. | | Run launch candidate gate | Implemented | `npm run launch:candidate`. | -| One-command private testnet aliases | Implemented for merged surfaces | `package.json` now exposes `flowchain:prereq`, `flowchain:init`, `flowchain:start`, `flowchain:stop`, `flowchain:demo`, `flowchain:smoke`, `flowchain:export`, `flowchain:import`, and `workbench:dev`. `control-plane:serve` remains in flight. | +| One-command private testnet aliases | Implemented for merged surfaces | `package.json` now exposes `flowchain:prereq`, `flowchain:init`, `flowchain:start`, `flowchain:stop`, `flowchain:demo`, `flowchain:smoke`, `flowchain:full-smoke`, `flowchain:export`, `flowchain:import`, `control-plane:serve`, bridge mock/test commands, and `workbench:dev`. | | Prerequisite check script | Implemented | `infra/scripts/flowchain-check-prereqs.ps1`. | | Start/stop scripts | Implemented bounded wrappers | `flowchain:start` prepares launch-core fixtures and state summary; `flowchain:stop` records stopped state and can reset ignored local state. Long-running node behavior remains in flight. | | Full smoke script | Implemented for merged surfaces | `flowchain:smoke` runs service tests, crypto tests/vectors, launch candidate, devnet tests, deterministic replay, dashboard build, hardware fixture, unsafe-claim scan, and export no-secret scan. Native object/control-plane lifecycle remains blocked. | +| Full private/local L1 smoke gate | In flight | `flowchain:full-smoke` exists as the #108 temporary blocker-report wrapper. It writes `devnet/local/smoke/flowchain-full-smoke-report.json` and exits nonzero until issues #99 through #105 land the missing command coverage. | | Export/import state bundles | Implemented local wrapper | `flowchain:export` writes ignored export files and zip bundle; `flowchain:import` restores local state from a bundle. | | Troubleshooting guide | Implemented | `docs/FLOWCHAIN_TROUBLESHOOTING.md` plus script error messages. | @@ -67,17 +69,17 @@ This document marks every major feature as one of: | Feature | Status | Acceptance condition | | --- | --- | --- | -| Local API service | In flight | Extend `services/control-plane/`; do not create a second API surface. | -| Health endpoint/method | In flight | Must show local-only status and source health. | -| Chain status | In flight | Must include block, object, fixture, and capability counters. | -| Blocks and transactions | Missing | Required for full private testnet inspection. | +| Local API service | Implemented fixture-backed; live mode in flight | Extend `services/control-plane/`; do not create a second API surface. Issue #101 owns live-node adapters and transaction submission. | +| Health endpoint/method | Implemented fixture-backed; live mode in flight | Must show local-only status and source health. | +| Chain status | Implemented fixture-backed; live mode in flight | Must include block, object, fixture, and capability counters. | +| Blocks and transactions | In flight | Required for full private testnet inspection; live local-node coverage belongs to #101. | | Agents and models | In flight | Must read existing devnet/fixture outputs. | | Receipts and artifacts | In flight | Must link memory receipts, work receipts, artifacts, and provenance. | | Verifier reports | In flight | Must expose reports and stable error shapes. | | Challenges and finality | In flight | Must expose real local objects or explicit placeholders. | | Memory cells | In flight | Must link memory state to receipts and verifier status. | | Provenance queries | In flight | Must cite source files, schema hashes, report ids, and object ids. | -| Stable errors | In flight | JSON-RPC errors are active Local Alpha work. | +| Stable errors | Implemented baseline; live mode in flight | JSON-RPC errors exist for the local API; #101 must preserve them for live adapters. | | No secrets in responses | Missing | Tests must prove secrets do not appear in API responses. | ## Workbench And Explorer @@ -108,6 +110,18 @@ This document marks every major feature as one of: | Production proof systems | Later gated | No proof-circuit or audited-crypto claim. | | SEAL/dependency privacy | Later gated | Vocabulary and placeholders only unless reviewed separately. | +## Bridge Test Path + +| Feature | Status | Acceptance condition | +| --- | --- | --- | +| Test-only bridge POC | Implemented foundation | Existing bridge docs, lockbox surface, relayer package, mock fixture, and bridge schemas stay test-only. | +| Mock bridge observation | Implemented | `npm run bridge:mock` produces deterministic observation output. | +| Bridge tests | Implemented baseline | `npm run bridge:test` runs relayer tests; bridge Foundry tests are required when contracts change. | +| Base Sepolia observation | In flight | #104 must expose explicit Base Sepolia observation smoke without private-key requirements. | +| Local BridgeCredit application | In flight | #104 must apply or hand off BridgeCredit to the local runtime with replay protection. | +| Withdrawal intent | In flight | #104 may create local test-mode withdrawal records; no mainnet release default. | +| Production bridge | Later gated | No production bridge, audited bridge-security, or broad mainnet deposit claim. | + ## Hardware And Operator Signals | Feature | Status | Acceptance condition | @@ -140,20 +154,27 @@ The package is accepted only when one documented command can: 8. Open a challenge. 9. Resolve the challenge. 10. Finalize the receipt. -11. Export state. -12. Query the state through the control-plane API. -13. Render the state in the workbench. -14. Rerun deterministically with the same expected roots. +11. Observe a mock/Base Sepolia test bridge deposit and apply or hand off a + local BridgeCredit. +12. Export state. +13. Query the state through the control-plane API. +14. Render the state in the workbench. +15. Rerun deterministically with the same expected roots. Current wrapper status: -- `npm run flowchain:smoke` is the documented command. +- `npm run flowchain:smoke` is the merged-surface smoke command. +- `npm run flowchain:full-smoke` is the full acceptance command for #108, now + present as a temporary blocker-report wrapper. - It proves the merged launch-core, crypto helpers/vectors, local devnet, export, dashboard build, hardware fixture, deterministic replay, and claim/no-secret guardrails. -- It does not yet prove AgentAccount, ModelPassport, native MemoryCell, - Challenge, FinalityReceipt, or control-plane query coverage. Those rows stay - in flight or missing until subsystem PRs land behind the wrapper. +- The current full-smoke wrapper does not yet prove long-running node behavior, + wallet signing, AgentAccount, ModelPassport, native MemoryCell, Challenge, + FinalityReceipt, live control-plane queries, workbench live-state inspection, + bridge local-credit smoke, or deterministic full export/import replay. Those + rows stay in flight or missing until issues #99 through #105 land behind + the wrapper. Required final evidence for the acceptance PR: @@ -162,6 +183,7 @@ Required final evidence for the acceptance PR: - Deterministic root or fixture hash comparison. - Control-plane query sample. - Workbench screenshot or test/build evidence. +- Bridge mock/local-credit smoke evidence. - `git diff --check`. ## Review Gate diff --git a/docs/FLOWCHAIN_TROUBLESHOOTING.md b/docs/FLOWCHAIN_TROUBLESHOOTING.md index cfea5377..a42884f5 100644 --- a/docs/FLOWCHAIN_TROUBLESHOOTING.md +++ b/docs/FLOWCHAIN_TROUBLESHOOTING.md @@ -59,6 +59,7 @@ or workbench commands. | Crypto dependency error during strict prereq | Crypto deps are separate from root npm workspaces. | Run `npm install --prefix crypto`. | | Workbench does not open | Vite dev server did not start or the port changed. | Run `npm run workbench:dev` again and use the URL printed by Vite. | | Smoke fails during hardware fixture check | Python is missing or not on PATH. | Install Python 3 or run `npm run flowchain:smoke -- -SkipHardware` for a scoped local smoke. | +| `flowchain:full-smoke` fails with missing command coverage | The full local/private L1 package is not complete yet. | Read `devnet/local/smoke/flowchain-full-smoke-report.json` and the owning issues #99-#108. Use `npm run flowchain:full-smoke -- -SkipMergedSmoke -AllowIncomplete` only to validate the temporary report wrapper. | | Cargo output looks like a different worktree | A shared `CARGO_TARGET_DIR` is reusing stale binaries. | Use the root wrapper scripts; they pin cargo output to `crates/flowmemory-devnet/target` for this checkout. | | Existing state blocks init | `devnet/local/state.json` already exists. | Run `npm run flowchain:demo`, or force reset with `powershell -NoProfile -ExecutionPolicy Bypass -File infra/scripts/flowchain-init.ps1 -Force`. | | Import refuses to overwrite state | Import protects existing local state by default. | Run `npm run flowchain:import -- --BundlePath -Force`. | @@ -92,6 +93,17 @@ The current smoke report also lists blocked lifecycle coverage. Those blocked rows are expected until the chain, crypto, control-plane, and workbench workstreams land the remaining native private/local testnet surfaces. +The full-L1 wrapper report is: + +```powershell +Get-Content -Raw devnet/local/smoke/flowchain-full-smoke-report.json +``` + +Until the full workstreams land, it is expected to list missing command +coverage for long-running node, wallet/signing, live control plane, live +workbench, bridge local credit, optional hardware ingestion, and deterministic +full replay. Treat that as the integration checklist, not as passing evidence. + ## Secret Hygiene Do not commit: diff --git a/docs/ISSUE_BACKLOG.md b/docs/ISSUE_BACKLOG.md index 5644a44e..1625833a 100644 --- a/docs/ISSUE_BACKLOG.md +++ b/docs/ISSUE_BACKLOG.md @@ -36,8 +36,8 @@ state; update this index after issue or milestone changes. Primary milestone: make the FlowChain private/local L1 testnet package for second-computer validation runnable from a clean Windows machine. -These rows are proposed next-wave issue groupings unless a GitHub issue number -is named. They should become GitHub issues before implementation work starts. +GitHub milestone #7 now tracks the full-L1 workstream. The live HQ issue/PR +and ownership matrix is `docs/FLOWCHAIN_HQ_INTEGRATION_STATUS.md`. Remaining gaps for this milestone: @@ -50,8 +50,10 @@ Remaining gaps for this milestone: and raw JSON. - Workbench views for the same private/local testnet entities. - No-secret checks for control-plane responses. +- Test bridge observation and local-credit smoke path. - Full deterministic second-computer smoke evidence for native private/local - objects after chain, crypto, control-plane, and dashboard work lands. + objects after chain, crypto, control-plane, dashboard, bridge, and hardware + work lands. Implemented HQ/Ops packaging layer: @@ -61,6 +63,8 @@ Implemented HQ/Ops packaging layer: - `infra/scripts/flowchain-stop.ps1` - `infra/scripts/flowchain-demo.ps1` - `infra/scripts/flowchain-smoke.ps1` +- `infra/scripts/flowchain-full-smoke.ps1` as the temporary full-L1 + blocker-report wrapper. - `infra/scripts/flowchain-export.ps1` - `infra/scripts/flowchain-import.ps1` - `infra/scripts/flowchain-workbench.ps1` @@ -74,75 +78,73 @@ Dependency order: vectors for the same object set. 3. Control plane reads the existing devnet, launch-core, and verifier outputs without creating a second API model. -4. Dashboard extends the existing app to consume control-plane or deterministic +4. Contracts and bridge stabilize the test-only settlement/bridge event path + without production bridge claims. +5. Dashboard extends the existing app to consume control-plane or deterministic fixture output. -5. Hardware contributes optional advisory signal fixtures only after object and +6. Hardware contributes optional advisory signal fixtures only after object and API labels are stable. -6. Packaging keeps root command aliases and Windows scripts aligned as command +7. Packaging keeps root command aliases and Windows scripts aligned as command semantics evolve. ### Chain / Devnet | Issue | State | Agent/worktree | Dependencies | Notes | | --- | --- | --- | --- | --- | -| Proposed `[chain] Extend devnet into private FlowChain testnet runtime` | Proposed | Chain - `flowmemory-chain` | Current `crates/flowmemory-devnet/`, crypto object IDs | Extend existing Rust devnet only; add genesis/config, deterministic object lifecycle, export/import, and full smoke path. | -| Proposed `[chain] Add deterministic private testnet smoke fixture` | Proposed | Chain - `flowmemory-chain` | Runtime extension | Must prove agent, model, receipt, artifact, verifier report, memory, challenge, finality, export, and replay. | -| Proposed `[chain] Document LAN/private-node boundaries` | Proposed | Chain - `flowmemory-chain` | Runtime start behavior | LAN is optional; no public validator or production consensus claim. | +| #99 `[chain] Make FlowChain private/local L1 runtime runnable` | Open | Chain - `flowmemory-chain` on `agent/full-l1-runtime` | Current Rust devnet, #100 envelope/object IDs | Long-running node, transaction intake, local test-unit ledger, restart persistence, export/import, one-node and multi-process smoke. | ### Control Plane / Indexer | Issue | State | Agent/worktree | Dependencies | Notes | | --- | --- | --- | --- | --- | -| Proposed `[indexer] Expose private FlowChain testnet control plane` | Proposed | Indexer - `flowmemory-indexer` | Chain handoff, crypto object IDs | Extend `services/control-plane/` and existing indexer/verifier outputs; no second API. | -| Proposed `[indexer] Add control-plane full-smoke client` | Proposed | Indexer - `flowmemory-indexer` | Control-plane methods | Query health, chain, blocks, txs, agents, models, receipts, artifacts, verifier reports, challenges, finality, memory, provenance, raw JSON. | -| Proposed `[indexer/security] Add no-secret response checks` | Proposed | Indexer - `flowmemory-indexer` | Control-plane API | Tests must prevent keys, RPC URLs, API keys, seed phrases, and private locators from appearing in responses. | +| #101 `[indexer] Expose full FlowChain local control plane and full-smoke client` | Open; draft PR #114 | Indexer - `flowmemory-indexer` on `agent/full-l1-control-plane` | #99 chain handoff, #100 object IDs, #104 bridge objects | Live-node adapters, full lifecycle queries, transaction submission, bridge observation intake, `control-plane:smoke`, and no-secret response scans. | ### Crypto / RD | Issue | State | Agent/worktree | Dependencies | Notes | | --- | --- | --- | --- | --- | -| Proposed `[crypto] Define private testnet object envelopes and vectors` | Proposed | Crypto - `flowmemory-crypto` | Existing `crypto/`, `schemas/flowmemory/` | AgentAccount, ModelPassport, MemoryCell, ArtifactAvailabilityProof, VerifierModule, Challenge, FinalityReceipt, provenance response. | -| Proposed `[crypto] Define local signer and envelope policy` | Proposed | Crypto - `flowmemory-crypto` | Object IDs | Local operators, agents, verifiers, hardware signal issuers; no production wallet or audited-crypto claim. | -| Proposed `[crypto] Add negative vector coverage` | Proposed | Crypto - `flowmemory-crypto` | Envelope policy | Replay, wrong domain, missing signer, zero hash, malformed object, duplicate IDs. | +| #100 `[crypto] Add wallet, signed envelopes, and object IDs for full local L1` | Open | Crypto - `flowmemory-crypto` on `agent/full-l1-crypto-wallet` | Existing `crypto/`, schemas, #99 runtime object model | Canonical envelopes, wallet/vault, object IDs, bridge objects, positive/negative vectors, and no-secret exports. | ### Dashboard / Workbench | Issue | State | Agent/worktree | Dependencies | Notes | | --- | --- | --- | --- | --- | -| Proposed `[dashboard] Build local FlowChain testnet workbench` | Proposed | Dashboard - `flowmemory-dashboard` | Control-plane API or deterministic fixture fallback | Extend existing dashboard; show node health, blocks, transactions, agents, models, receipts, memory cells, artifacts, reports, challenges, finality, provenance, raw JSON. | -| Proposed `[dashboard] Add local setup/status panel` | Proposed | Dashboard - `flowmemory-dashboard` | Packaging command names | Show expected local commands and service states; no marketing landing page. | -| #76 `[dashboard] Add canary deployment artifact ingestion and live/canary mode` | Open | Dashboard - `flowmemory-dashboard` | Guarded canary reader output | Canary mode must stay separate from private/local testnet and production claims. | +| #102 `[dashboard] Extend workbench for live FlowChain local L1 state` | Open; draft PR #112 | Dashboard - `flowmemory-dashboard` on `agent/full-l1-workbench` | #101 API, #99 runtime handoff | Live workbench over node, tx, account, object lifecycle, bridge, hardware, provenance, and raw JSON state. | +| #76 `[dashboard] Add canary deployment artifact ingestion and live/canary mode` | Closed | Dashboard - `flowmemory-dashboard` | Guarded canary reader output | Canary mode is historical follow-up evidence, not active private/local testnet work. | + +### Bridge + +| Issue | State | Agent/worktree | Dependencies | Notes | +| --- | --- | --- | --- | --- | +| #104 `[bridge] Build test bridge observation and local credit path` | Open; draft PR #113 | Bridge - `flowmemory-bridge-full` on `agent/full-l1-bridge` | #100 bridge IDs, #101 intake, #103 lockbox/events | Mock/Base Sepolia observation, BridgeObservation/BridgeCredit objects, local-credit smoke, withdrawal intent, explicit real-funds guardrails. | ### Hardware | Issue | State | Agent/worktree | Dependencies | Notes | | --- | --- | --- | --- | --- | -| Proposed `[hardware] Add optional private testnet operator signal fixtures` | Proposed | Hardware - `flowmemory-hardware` | Crypto/control-plane labels | Heartbeat, receipt relay, verifier digest relay, offline alert/challenge input, NFC cartridge metadata. | -| Proposed `[hardware] Validate simulator projection for workbench ingestion` | Proposed | Hardware - `flowmemory-hardware` | Hardware fixture schema | Hardware remains optional and advisory; no manufacturing, RF, broadband, validator, or trustlessness claim. | +| #105 `[hardware] Add optional operator-signal fixtures for FlowChain local L1` | Open | Hardware - `flowmemory-hardware` on `agent/full-l1-hardware` | #101/#102 labels, #100 optional signer vocabulary | Heartbeat, receipt relay, verifier digest relay, offline/challenge alert, bridge alert, NFC metadata, deterministic simulator fixtures. | ### Contracts | Issue | State | Agent/worktree | Dependencies | Notes | | --- | --- | --- | --- | --- | -| Proposed `[contracts] Align settlement spine with private testnet objects` | Proposed | Contracts - `flowmemory-contracts` | Object model and FlowPulse semantics | Contracts remain optional event/settlement spine; do not move private runtime into Solidity. | +| #103 `[contracts] Harden settlement and bridge event spine for FlowChain local L1` | Open; draft PR #110 | Contracts - `flowmemory-contracts` on `agent/full-l1-contracts` | #100 object/bridge vocabulary, #104 relayer handoff | Harden BaseBridgeLockbox, settlement/event tests, dry-run scripts, stable bridge event schema. | | #78 `[contracts] Build real Uniswap v4 hook path beyond HookAdapter scaffold` | Open | Contracts - `flowmemory-contracts` | Hook boundary and deployment decisions | Must remain outside private testnet core and must not claim production hook readiness. | -| #79 `[contracts/security] Define ownership and operator policy for deployed V0 surfaces` | Open | Contracts - `flowmemory-contracts` | Access-control review | Policy only until implementation is scoped. | +| #79 `[contracts/security] Define ownership and operator policy for deployed V0 surfaces` | Closed | Contracts - `flowmemory-contracts` | Access-control review | Historical canary follow-up; keep future policy changes scoped in new issues. | ### Research | Issue | State | Agent/worktree | Dependencies | Notes | | --- | --- | --- | --- | --- | -| Proposed `[research] Gate advanced FlowChain L1 research for private testnet` | Proposed | Research - `flowmemory-research` | Existing research docs and decisions | Local testnet, public devnet, and public L1 gates; Process-Witness, SEAL, encrypted compute, bridge/security blocked until reviewed. | -| Proposed `[research] Define dependency atom placeholder boundary` | Proposed | Research - `flowmemory-research` | Crypto object vocabulary | Placeholder or dependency-root vocabulary only; no proof claim. | +| #106 `[research] Lock FlowChain local consensus, storage, wallet, and bridge decisions` | Open | Research - `flowmemory-research` on `agent/full-l1-research-consensus` | Existing research docs and decisions | Concrete V0 local consensus, transaction/state, storage, wallet, bridge, and full-L1 acceptance gates. | ### Review / HQ / Packaging | Issue | State | Agent/worktree | Dependencies | Notes | | --- | --- | --- | --- | --- | -| Proposed `[hq] Define FlowChain private testnet acceptance plan` | Proposed | Review/HQ - `flowmemory-review` | Dispatch target | Docs-only acceptance, setup, integration map, roadmap, backlog. | -| Proposed `[ops] Maintain Windows private testnet run scripts` | Implemented locally; keep open until merged | Review/HQ or packaging owner | Command names from chain/control-plane/dashboard | Prereq check, init, bounded start/stop, demo, smoke, export/import, and workbench scripts now exist; update when subsystem commands change. | -| Proposed `[hq] Create second-computer validation checklist` | Implemented locally; keep open until merged | Review/HQ - `flowmemory-review` | Smoke command and workbench | `docs/FLOWCHAIN_SECOND_COMPUTER_SETUP.md`, `docs/FLOWCHAIN_TROUBLESHOOTING.md`, and `docs/FLOWCHAIN_OPERATOR_CHECKLIST.md` record commands, outputs, limitations, and follow-ups. | -| #77 `[ops/security] Automate source verification for V0 canary contracts` | Open | Review/HQ or Contracts/Ops | Canary deployment docs | Canary follow-up only; not private testnet production readiness. | +| #107 `[hq] Maintain full-L1 integration matrix, merge order, and smoke evidence` | Open | Review/HQ - `flowmemory-review` on `agent/full-l1-hq-integration` | GitHub milestone #7, active worktrees | Live issue/PR matrix, branch ownership, merge order, second-computer setup, and follow-up prompts. | +| #108 `[ops] Implement final flowchain:full-smoke gate for full local L1 acceptance` | Open | Review/HQ wrapper plus subsystem owners | #99-#105 subsystem commands | Temporary wrapper exists; final gate must initialize, run, query, bridge-smoke, export/import, and compare deterministic roots. | +| #77 `[ops/security] Automate source verification for V0 canary contracts` | Closed | Review/HQ or Contracts/Ops | Canary deployment docs | Historical canary follow-up only; not private testnet production readiness. | ## V0 Repo OS diff --git a/infra/scripts/flowchain-full-smoke.ps1 b/infra/scripts/flowchain-full-smoke.ps1 new file mode 100644 index 00000000..f2dddead --- /dev/null +++ b/infra/scripts/flowchain-full-smoke.ps1 @@ -0,0 +1,169 @@ +param( + [switch] $SkipMergedSmoke, + [switch] $SkipDashboardBuild, + [switch] $SkipHardware, + [switch] $AllowIncomplete +) + +$ErrorActionPreference = "Stop" +Set-StrictMode -Version Latest + +. "$PSScriptRoot\flowchain-common.ps1" + +function Test-NpmScript { + param( + [Parameter(Mandatory = $true)] + [string] $PackagePath, + + [Parameter(Mandatory = $true)] + [string] $ScriptName + ) + + if (-not (Test-Path -LiteralPath $PackagePath)) { + return $false + } + + $package = Get-Content -Raw -LiteralPath $PackagePath | ConvertFrom-Json + if (-not $package.PSObject.Properties.Name.Contains("scripts")) { + return $false + } + + return $package.scripts.PSObject.Properties.Name.Contains($ScriptName) +} + +function New-Requirement { + param( + [Parameter(Mandatory = $true)] + [string] $Area, + + [Parameter(Mandatory = $true)] + [string] $OwnerIssue, + + [Parameter(Mandatory = $true)] + [string] $Command, + + [Parameter(Mandatory = $true)] + [string] $PackagePath, + + [Parameter(Mandatory = $true)] + [string] $ScriptName, + + [Parameter(Mandatory = $true)] + [string] $Acceptance + ) + + $exists = Test-NpmScript -PackagePath $PackagePath -ScriptName $ScriptName + return [ordered]@{ + area = $Area + ownerIssue = $OwnerIssue + command = $Command + status = $(if ($exists) { "command-present" } else { "missing-command" }) + acceptance = $Acceptance + } +} + +$repoRoot = Set-FlowChainRepoRoot +Set-FlowChainCargoTargetDir -RepoRoot $repoRoot | Out-Null +$reportRoot = Assert-FlowChainPathInsideRepo -RepoRoot $repoRoot -Path (Resolve-FlowChainPath -RepoRoot $repoRoot -Path "devnet/local/smoke") +New-Item -ItemType Directory -Force -Path $reportRoot | Out-Null + +$currentSmokeStatus = "skipped" +if (-not $SkipMergedSmoke) { + $args = @( + "-NoProfile", + "-ExecutionPolicy", + "Bypass", + "-File", + (Join-Path $PSScriptRoot "flowchain-smoke.ps1") + ) + if ($SkipDashboardBuild) { + $args += "-SkipDashboardBuild" + } + if ($SkipHardware) { + $args += "-SkipHardware" + } + + & powershell @args + if ($LASTEXITCODE -ne 0) { + throw "Merged-surface smoke failed before full-L1 coverage checks." + } + $currentSmokeStatus = "passed" +} + +$rootPackage = Join-Path $repoRoot "package.json" +$cryptoPackage = Join-Path $repoRoot "crypto/package.json" +$dashboardPackage = Join-Path $repoRoot "apps/dashboard/package.json" + +$requirements = @( + (New-Requirement -Area "chain" -OwnerIssue "#99" -Command "npm run flowchain:node" -PackagePath $rootPackage -ScriptName "flowchain:node" -Acceptance "Start a long-running local node that produces blocks and persists state."), + (New-Requirement -Area "chain" -OwnerIssue "#99" -Command "npm run flowchain:node:smoke" -PackagePath $rootPackage -ScriptName "flowchain:node:smoke" -Acceptance "Prove node restart, transaction inclusion, export/import, and at least 10 blocks."), + (New-Requirement -Area "chain" -OwnerIssue "#99" -Command "npm run flowchain:multi-node:smoke" -PackagePath $rootPackage -ScriptName "flowchain:multi-node:smoke" -Acceptance "Prove two local processes exchange or deterministically reconcile state, or explicitly gate LAN mode."), + (New-Requirement -Area "chain" -OwnerIssue "#99" -Command "npm run flowchain:tx" -PackagePath $rootPackage -ScriptName "flowchain:tx" -Acceptance "Submit signed/local test transactions into the runtime intake path."), + (New-Requirement -Area "chain" -OwnerIssue "#99" -Command "npm run flowchain:faucet" -PackagePath $rootPackage -ScriptName "flowchain:faucet" -Acceptance "Create local test-unit balance records without tokenomics claims."), + (New-Requirement -Area "crypto" -OwnerIssue "#100" -Command "npm run wallet:create --prefix crypto" -PackagePath $cryptoPackage -ScriptName "wallet:create" -Acceptance "Create an encrypted local test wallet or vault without committing secrets."), + (New-Requirement -Area "crypto" -OwnerIssue "#100" -Command "npm run wallet:sign --prefix crypto" -PackagePath $cryptoPackage -ScriptName "wallet:sign" -Acceptance "Sign canonical local transaction envelopes."), + (New-Requirement -Area "crypto" -OwnerIssue "#100" -Command "npm run wallet:verify --prefix crypto" -PackagePath $cryptoPackage -ScriptName "wallet:verify" -Acceptance "Verify local transaction envelopes and reject negative vectors."), + (New-Requirement -Area "control-plane" -OwnerIssue "#101" -Command "npm run control-plane:smoke" -PackagePath $rootPackage -ScriptName "control-plane:smoke" -Acceptance "Query every lifecycle object and scan API responses for secrets."), + (New-Requirement -Area "dashboard" -OwnerIssue "#102" -Command "npm run build --prefix apps/dashboard" -PackagePath $dashboardPackage -ScriptName "build" -Acceptance "Build the live workbench that consumes control-plane health and state."), + (New-Requirement -Area "bridge" -OwnerIssue "#104" -Command "npm run bridge:mock" -PackagePath $rootPackage -ScriptName "bridge:mock" -Acceptance "Produce deterministic mock bridge observations."), + (New-Requirement -Area "bridge" -OwnerIssue "#104" -Command "npm run bridge:sepolia:observe" -PackagePath $rootPackage -ScriptName "bridge:sepolia:observe" -Acceptance "Observe explicit Base Sepolia bridge deposits without private keys."), + (New-Requirement -Area "bridge" -OwnerIssue "#104" -Command "npm run bridge:local-credit:smoke" -PackagePath $rootPackage -ScriptName "bridge:local-credit:smoke" -Acceptance "Apply or hand off a BridgeCredit to the local runtime with replay protection."), + (New-Requirement -Area "hardware" -OwnerIssue "#105" -Command "hardware simulator fixture validation" -PackagePath $rootPackage -ScriptName "flowchain:hardware:smoke" -Acceptance "Validate optional operator-signal fixture ingestion without requiring physical devices."), + (New-Requirement -Area "ops" -OwnerIssue "#108" -Command "npm run flowchain:full-smoke" -PackagePath $rootPackage -ScriptName "flowchain:full-smoke" -Acceptance "Run this wrapper as the final end-to-end acceptance gate.") +) + +$missing = @($requirements | Where-Object { $_.status -ne "command-present" }) +$coverageGaps = @( + "long-running local node runtime", + "signed transaction envelope submitted and included", + "local wallet create/sign/verify path", + "native AgentAccount, ModelPassport, MemoryCell, Challenge, and FinalityReceipt lifecycle evidence", + "full control-plane live-node query coverage", + "workbench live-state inspection evidence", + "bridge local credit smoke", + "deterministic full export/import replay root comparison" +) + +$reportPath = Join-Path $reportRoot "flowchain-full-smoke-report.json" +$report = [ordered]@{ + schema = "flowchain.private_testnet.full_smoke_report.v0" + generatedAt = (Get-Date).ToUniversalTime().ToString("o") + currentMergedSmoke = $currentSmokeStatus + fullAcceptance = ($missing.Count -eq 0) + requirements = $requirements + missingCommands = @($missing | ForEach-Object { $_.command }) + coverageGaps = $coverageGaps + issueMap = [ordered]@{ + chain = "#99" + crypto = "#100" + controlPlane = "#101" + dashboard = "#102" + contracts = "#103" + bridge = "#104" + hardware = "#105" + research = "#106" + hq = "#107" + fullSmoke = "#108" + } +} +Write-FlowChainJson -Path $reportPath -Value $report + +Write-Host "" +Write-Host "FlowChain full-smoke coverage report: $reportPath" +if ($missing.Count -gt 0) { + Write-Host "" + Write-Host "Full private/local L1 smoke is not complete yet. Missing required command coverage:" + foreach ($item in $missing) { + Write-Host "- [$($item.area)] $($item.command) ($($item.ownerIssue)): $($item.acceptance)" + } + Write-Host "" + Write-Host "Current merged-surface smoke status: $currentSmokeStatus" + Write-Host "Run with -AllowIncomplete only when validating this temporary blocker-report wrapper." + + if (-not $AllowIncomplete) { + throw "FlowChain full-smoke is incomplete. See $reportPath and issues #99-#108." + } +} +else { + Write-Host "FlowChain full-smoke command coverage is present. Subsystem smoke commands can now be promoted into a passing end-to-end gate." +} diff --git a/package.json b/package.json index d8cb0136..59f3086b 100644 --- a/package.json +++ b/package.json @@ -37,6 +37,7 @@ "flowchain:stop": "powershell -NoProfile -ExecutionPolicy Bypass -File infra/scripts/flowchain-stop.ps1", "flowchain:demo": "powershell -NoProfile -ExecutionPolicy Bypass -File infra/scripts/flowchain-demo.ps1", "flowchain:smoke": "powershell -NoProfile -ExecutionPolicy Bypass -File infra/scripts/flowchain-smoke.ps1", + "flowchain:full-smoke": "powershell -NoProfile -ExecutionPolicy Bypass -File infra/scripts/flowchain-full-smoke.ps1", "flowchain:export": "powershell -NoProfile -ExecutionPolicy Bypass -File infra/scripts/flowchain-export.ps1", "flowchain:import": "powershell -NoProfile -ExecutionPolicy Bypass -File infra/scripts/flowchain-import.ps1", "workbench:dev": "powershell -NoProfile -ExecutionPolicy Bypass -File infra/scripts/flowchain-workbench.ps1",