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

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
156 changes: 156 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,9 @@ jobs:
"tests/RootfieldRegistry.t.sol"
"contracts"
"services"
"services/flowmemory"
"schemas/flowmemory"
"fixtures/launch-core"
"apps"
"hardware"
"research"
Expand Down Expand Up @@ -83,3 +86,156 @@ jobs:
exit 1
fi
done

contracts:
name: Contracts
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4

- name: Install Foundry
uses: foundry-rs/foundry-toolchain@v1

- name: Run Foundry tests
run: forge test

services:
name: Services and launch core
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4

- name: Set up Node
uses: actions/setup-node@v4
with:
node-version: "24"
cache: npm

- name: Install services dependencies
run: npm ci

- name: Run service tests
run: npm test

- name: Run service e2e
run: npm run e2e

launch-core:
name: Launch-core acceptance command
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4

- name: Set up Node
uses: actions/setup-node@v4
with:
node-version: "24"
cache: npm

- name: Set up Rust
uses: dtolnay/rust-toolchain@stable

- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: "3.12"

- name: Install services dependencies
run: npm ci

- name: Run launch V0 command
run: npm run launch:v0

crypto:
name: Crypto
runs-on: ubuntu-latest
defaults:
run:
working-directory: crypto
steps:
- name: Checkout
uses: actions/checkout@v4

- name: Set up Node
uses: actions/setup-node@v4
with:
node-version: "24"
cache: npm
cache-dependency-path: crypto/package-lock.json

- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: "3.12"

- name: Install crypto dependencies
run: npm ci

- name: Install Python crypto dependencies
run: python -m pip install pycryptodome

- name: Run crypto tests
run: npm test

- name: Validate crypto vectors
run: npm run validate:vectors

- name: Recompute Python FlowPulse vector
run: python validate_test_vectors.py

dashboard:
name: Dashboard
runs-on: ubuntu-latest
defaults:
run:
working-directory: apps/dashboard
steps:
- name: Checkout
uses: actions/checkout@v4

- name: Set up Node
uses: actions/setup-node@v4
with:
node-version: "24"
cache: npm
cache-dependency-path: apps/dashboard/package-lock.json

- name: Install dashboard dependencies
run: npm ci

- name: Run dashboard tests
run: npm test

- name: Build dashboard
run: npm run build

devnet:
name: Local devnet
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4

- name: Set up Rust
uses: dtolnay/rust-toolchain@stable

- name: Run devnet tests
run: cargo test --manifest-path crates/flowmemory-devnet/Cargo.toml

hardware:
name: Hardware POC
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4

- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: "3.12"

- name: Validate FlowRouter simulator fixture
run: python hardware/simulator/flowrouter_sim.py --validate-file hardware/fixtures/flowrouter_sample_seed42.json
11 changes: 11 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
node_modules/
dist/
cache/
out/

devnet/local/
crates/flowmemory-devnet/target/

apps/dashboard/node_modules/
apps/dashboard/dist/
crypto/node_modules/
8 changes: 8 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,14 @@ FlowMemory is managed as a multi-agent program. The management layer is part of

Immediate major milestone: build the Rootflow V0 and Flow Memory V0 launch core. This means local contracts/tests, FlowPulse fixtures, Rootflow transitions, Flow Memory schemas, verifier reports, crypto fixtures, dashboard-readable state, and local smoke-test gates. It does not mean production deployment.

Run the local launch-core path:

```powershell
npm run launch:v0
```

This regenerates local/test Rootflow and Flow Memory V0 fixtures, including `fixtures/launch-core/flowmemory-launch-v0.json`, `fixtures/launch-core/rootflow-transitions.json`, and the dashboard fixture at `fixtures/dashboard/flowmemory-dashboard-v0.json`.

## What Not To Claim

- Do not claim FlowMemory has production contracts or deployment automation.
Expand Down
9 changes: 5 additions & 4 deletions apps/dashboard/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ npm run build

## Data Boundary

The canonical dashboard fixture lives at:
The canonical dashboard fixture is generated by the launch-core command and lives at:

```text
fixtures/dashboard/flowmemory-dashboard-v0.json
Expand All @@ -41,7 +41,7 @@ apps/dashboard/public/data/flowmemory-dashboard-v0.json

The `dev` and `build` scripts run `npm run sync:fixtures`, which copies the canonical fixture into the Vite public data folder before the app starts or builds.

Future generated local outputs should land under the fixture boundary first:
Generated local source outputs land under the fixture boundary first:

```text
fixtures/dashboard/generated/indexer-state.json
Expand All @@ -50,11 +50,12 @@ fixtures/dashboard/generated/devnet-state.json
fixtures/dashboard/generated/hardware-heartbeats.json
```

The dashboard schema can then be updated to merge those generated files into `flowmemory-dashboard-v0.json` or replace the loader with a local API once that boundary exists.
`npm run launch:v0` from the repo root regenerates `flowmemory-dashboard-v0.json` from services, devnet, and hardware fixture outputs.

## Current Views

- Overview
- Flow Memory / Rootflow
- FlowPulse stream
- Rootfields
- Work lanes and receipts
Expand All @@ -71,7 +72,7 @@ Every displayed record carries source subsystem, fixture/local origin, chain con
Dashboard V0 visually distinguishes:

```text
observed, pending, finalized, verified, unresolved, invalid, unsupported, reorged, offline, stale
observed, pending, finalized, verified, unresolved, failed, unsupported, reorged, offline, stale
```

These are app-facing display states for local fixture inspection. They should stay aligned with indexer and verifier terminology as those packages mature.
Loading
Loading