diff --git a/.codex/hooks.json b/.codex/hooks.json new file mode 100644 index 0000000..be63397 --- /dev/null +++ b/.codex/hooks.json @@ -0,0 +1,15 @@ +{ + "hooks": { + "PostToolUse": [ + { + "matcher": "Write|Edit", + "hooks": [ + { + "type": "command", + "command": "bash -c 'SRC=\"/mnt/d/DEV/workspace/REPOS/git.d-popov.com/neuron-tai/.claude/memory\" && DST=\"/home/dev/.claude/projects/-mnt-d-DEV-workspace-REPOS-git-d-popov-com-neuron-tai/memory\" && mkdir -p \"$DST\" && rsync -a \"$SRC/\" \"$DST/\" 2>/dev/null; true'" + } + ] + } + ] + } +} diff --git a/.ralph-tui/config.toml b/.ralph-tui/config.toml new file mode 100644 index 0000000..ced8801 --- /dev/null +++ b/.ralph-tui/config.toml @@ -0,0 +1,12 @@ +# Ralph TUI Configuration +# Generated by setup wizard +# See: ralph-tui config help + +configVersion = "2.1" +tracker = "json" +agent = "opencode" +maxIterations = 0 +autoCommit = true + +[trackerOptions] +[agentOptions] diff --git a/.scratch/alpha-hardening/README.md b/.scratch/alpha-hardening/README.md index eb9db86..d6aaecd 100644 --- a/.scratch/alpha-hardening/README.md +++ b/.scratch/alpha-hardening/README.md @@ -5,7 +5,7 @@ Pre-release alpha audit + grilling (2026-07-04). Bucket 1 trust-boundary blocker **Launch-readiness grilling (2026-07-06):** locked plan is devnet dev/test run now, then real mainnet SOL/USDT for the first cohort — friends (API clients) + hired VPS/VPC hosts (own test infra, not third-party volunteers, stake-free). No new public token; TAI stays dormant per ADR-0002's existing volume/legal gates. Two new issues came out of this session: - **[21 — Honest-noise calibration corpus](./issues/21-honest-noise-calibration-corpus.md)** — rescoped from "prod gate" to a hard **alpha-release blocker**. `Status: ready-for-human` — engineering (audit.py raw divergence, tracker dispatch endpoint, SQLite corpus, p99 envelope) done 2026-07-06; blocked on a human running the calibration job against the real hired-VPS fleet before launch. -- **[23 — Dynamic HF-benchmarked pricing](./issues/23-dynamic-hf-pricing.md)** — new, high priority but not a release blocker. `Status: done` — engineering complete 2026-07-06 (hf_pricing.py, opt-in daily refresh loop, GET /v1/pricing/hf/history); real `hf_aliases` curation per model is a follow-up human sign-off, not a completion blocker. +- **[23 — Dynamic HF-benchmarked pricing](./issues/23-dynamic-hf-pricing_completed.md)** — new, high priority but not a release blocker. `Status: done` — engineering complete 2026-07-06 (hf_pricing.py, opt-in daily refresh loop, GET /v1/pricing/hf/history); real `hf_aliases` curation per model is a follow-up human sign-off, not a completion blocker. Locked scope: one settlement tracker, open node join, devnet mock-USDT, reputation carries forward → fraud must be bounded. See [ADR-0016](../../docs/adr/0016-alpha-scope-and-known-limitations.md). @@ -41,22 +41,22 @@ Locked scope: one settlement tracker, open node join, devnet mock-USDT, reputati | Order | Issue | ID | Depends on | |---|---|---|---| -| 1 | [Unified auth boundary](./issues/02-a2-unified-auth-boundary.md) + [Validator service token](./issues/20-validator-service-token.md) | A2, — | — | -| 2 | [C1 hive gossip auth enforcement](./issues/01-c1-gossip-auth.md) | C1 | 02 | -| 3 | [Persist strike/ban/reputation](./issues/05-a1-a5-persist-strike-ban-reputation.md) | A1/A5 | 02 | -| 4 | [Starting credit 0 + spend cap](./issues/03-c5-starting-credit-zero.md) | C5, M1 | 02 | -| 5 | [Tracker-authoritative accounting](./issues/04-h2-tracker-authoritative-accounting.md) | H2 | 02 | -| 6 | [Wallet binding proof](./issues/11-c6-wallet-binding-proof.md) | C6 | 02, 03 | +| 1 | [Unified auth boundary](./issues/02-a2-unified-auth-boundary_completed.md) + [Validator service token](./issues/20-validator-service-token_completed.md) | A2, — | — | +| 2 | [C1 hive gossip auth enforcement](./issues/01-c1-gossip-auth_completed.md) | C1 | 02 | +| 3 | [Persist strike/ban/reputation](./issues/05-a1-a5-persist-strike-ban-reputation_completed.md) | A1/A5 | 02 | +| 4 | [Starting credit 0 + spend cap](./issues/03-c5-starting-credit-zero_completed.md) | C5, M1 | 02 | +| 5 | [Tracker-authoritative accounting](./issues/04-h2-tracker-authoritative-accounting_completed.md) | H2 | 02 | +| 6 | [Wallet binding proof](./issues/11-c6-wallet-binding-proof_completed.md) | C6 | 02, 03 | ### Phase 2 — Fraud arc (after Phase 1) | Order | Issue | Depends on | |---|---|---| -| 6 | [TOPLOC integration](./issues/06-fraud-toploc-integration.md) | 05 | -| 7 | [Commitment + bisection blame](./issues/07-fraud-commitment-bisection-blame.md) | 06 | -| 8 | [Reputation model](./issues/08-fraud-reputation-model-persistence.md) | 05, 07 | -| 9 | [Routing + adaptive audit](./issues/09-fraud-reputation-routing-adaptive-audit.md) | 08 | -| 10 | [Penalty calibration wiring](./issues/10-fraud-penalty-calibration-wiring.md) | 07, 08, 02 | +| 6 | [TOPLOC integration](./issues/06-fraud-toploc-integration_completed.md) | 05 | +| 7 | [Commitment + bisection blame](./issues/07-fraud-commitment-bisection-blame_completed.md) | 06 | +| 8 | [Reputation model](./issues/08-fraud-reputation-model-persistence_completed.md) | 05, 07 | +| 9 | [Routing + adaptive audit](./issues/09-fraud-reputation-routing-adaptive-audit_completed.md) | 08 | +| 10 | [Penalty calibration wiring](./issues/10-fraud-penalty-calibration-wiring_completed.md) | 07, 08, 02 | **Prod gate:** [21 honest-noise calibration corpus](./issues/21-honest-noise-calibration-corpus.md) must complete before enabling production TOPLOC audit thresholds (issues 09–10 in prod). Dev/staging TOPLOC wiring (06–08) may proceed in parallel. @@ -73,11 +73,11 @@ Locked scope: one settlement tracker, open node join, devnet mock-USDT, reputati | Issue | |---| -| [16 US-006 + fraud issue reconciliation](./issues/16-doc-us006-reconciliation.md) | +| [16 US-006 + fraud issue reconciliation](./issues/16-doc-us006-reconciliation_completed.md) | | [17 Duplicate US-020 dedup](./issues/17-doc-duplicate-us020-dedup.md) | -| [18 Operational runbooks](./issues/18-doc-operational-runbooks.md) | -| [19 Cryptography + test env](./issues/19-doc-cryptography-test-env.md) | -| [22 MEMORY + project-status index](./issues/22-doc-memory-project-status.md) (done) | +| [18 Operational runbooks](./issues/18-doc-operational-runbooks_completed.md) | +| [19 Cryptography + test env](./issues/19-doc-cryptography-test-env_completed.md) | +| [22 MEMORY + project-status index](./issues/22-doc-memory-project-status_completed.md) (done) | | [21 Honest-noise calibration corpus](./issues/21-honest-noise-calibration-corpus.md) (ops; prod gate for audits) | ### Phase 5 — Distributed-inference performance (post-routing-fix) diff --git a/.scratch/alpha-hardening/issues/01-c1-gossip-auth.md b/.scratch/alpha-hardening/issues/01-c1-gossip-auth_completed.md similarity index 93% rename from .scratch/alpha-hardening/issues/01-c1-gossip-auth.md rename to .scratch/alpha-hardening/issues/01-c1-gossip-auth_completed.md index 52dc0e6..44fb1d6 100644 --- a/.scratch/alpha-hardening/issues/01-c1-gossip-auth.md +++ b/.scratch/alpha-hardening/issues/01-c1-gossip-auth_completed.md @@ -38,4 +38,4 @@ Implement per ADR-0017 §3 using the auth helper/config from issue 02: shared hi ## Blocked by -- `02-a2-unified-auth-boundary.md` — owns shared auth middleware/config. Implement in the same PR if simpler. +- `02-a2-unified-auth-boundary_completed.md` — owns shared auth middleware/config. Implement in the same PR if simpler. diff --git a/.scratch/alpha-hardening/issues/02-a2-unified-auth-boundary.md b/.scratch/alpha-hardening/issues/02-a2-unified-auth-boundary_completed.md similarity index 90% rename from .scratch/alpha-hardening/issues/02-a2-unified-auth-boundary.md rename to .scratch/alpha-hardening/issues/02-a2-unified-auth-boundary_completed.md index 039594a..99a0967 100644 --- a/.scratch/alpha-hardening/issues/02-a2-unified-auth-boundary.md +++ b/.scratch/alpha-hardening/issues/02-a2-unified-auth-boundary_completed.md @@ -16,7 +16,7 @@ Replace header-presence stubs with a single auth middleware that resolves API ke - `packages/tracker/meshnet_tracker/server.py` — `_session_account` (~2468+), `_handle_admin_accounts` (~2588–2608) — H4 - `packages/tracker/meshnet_tracker/accounts.py` — `session_account()`, `create_session()` only (session store; not handler wiring) -Per ADR-0017 §4: forfeit → validator or admin; benchmark → admin; billing summary/settlements/registry wallets → admin session. Include the validator service token shape from `20-validator-service-token.md` in the same implementation if practical. +Per ADR-0017 §4: forfeit → validator or admin; benchmark → admin; billing summary/settlements/registry wallets → admin session. Include the validator service token shape from `20-validator-service-token_completed.md` in the same implementation if practical. ## Test-first @@ -39,8 +39,8 @@ Per ADR-0017 §4: forfeit → validator or admin; benchmark → admin; billing s ## Related -- `20-validator-service-token.md` — checklist for validator service token format, rotation, forfeit auth +- `20-validator-service-token_completed.md` — checklist for validator service token format, rotation, forfeit auth ## Blocked by -None. This issue should land before `01-c1-gossip-auth.md`. +None. This issue should land before `01-c1-gossip-auth_completed.md`. diff --git a/.scratch/alpha-hardening/issues/03-c5-starting-credit-zero.md b/.scratch/alpha-hardening/issues/03-c5-starting-credit-zero_completed.md similarity index 95% rename from .scratch/alpha-hardening/issues/03-c5-starting-credit-zero.md rename to .scratch/alpha-hardening/issues/03-c5-starting-credit-zero_completed.md index 8c36930..a0f9e5a 100644 --- a/.scratch/alpha-hardening/issues/03-c5-starting-credit-zero.md +++ b/.scratch/alpha-hardening/issues/03-c5-starting-credit-zero_completed.md @@ -35,4 +35,4 @@ Per ADR-0017 §2 and ADR-0016 §3. ## Blocked by -- `02-a2-unified-auth-boundary.md` (admin credit path secured) +- `02-a2-unified-auth-boundary_completed.md` (admin credit path secured) diff --git a/.scratch/alpha-hardening/issues/04-h2-tracker-authoritative-accounting.md b/.scratch/alpha-hardening/issues/04-h2-tracker-authoritative-accounting_completed.md similarity index 97% rename from .scratch/alpha-hardening/issues/04-h2-tracker-authoritative-accounting.md rename to .scratch/alpha-hardening/issues/04-h2-tracker-authoritative-accounting_completed.md index 5f8fddb..2ed8b09 100644 --- a/.scratch/alpha-hardening/issues/04-h2-tracker-authoritative-accounting.md +++ b/.scratch/alpha-hardening/issues/04-h2-tracker-authoritative-accounting_completed.md @@ -35,4 +35,4 @@ Accounting fraud = inflating tokens or shard span. Per ADR-0018 §5. ## Blocked by -- `02-a2-unified-auth-boundary.md` +- `02-a2-unified-auth-boundary_completed.md` diff --git a/.scratch/alpha-hardening/issues/05-a1-a5-persist-strike-ban-reputation.md b/.scratch/alpha-hardening/issues/05-a1-a5-persist-strike-ban-reputation_completed.md similarity index 97% rename from .scratch/alpha-hardening/issues/05-a1-a5-persist-strike-ban-reputation.md rename to .scratch/alpha-hardening/issues/05-a1-a5-persist-strike-ban-reputation_completed.md index 3b09251..16544a4 100644 --- a/.scratch/alpha-hardening/issues/05-a1-a5-persist-strike-ban-reputation.md +++ b/.scratch/alpha-hardening/issues/05-a1-a5-persist-strike-ban-reputation_completed.md @@ -37,4 +37,4 @@ Include fields for: `strike_count`, `banned`, `completed_job_count`, graduated * ## Blocked by -- `02-a2-unified-auth-boundary.md` +- `02-a2-unified-auth-boundary_completed.md` diff --git a/.scratch/alpha-hardening/issues/06-fraud-toploc-integration.md b/.scratch/alpha-hardening/issues/06-fraud-toploc-integration_completed.md similarity index 97% rename from .scratch/alpha-hardening/issues/06-fraud-toploc-integration.md rename to .scratch/alpha-hardening/issues/06-fraud-toploc-integration_completed.md index cb2b649..0c3501b 100644 --- a/.scratch/alpha-hardening/issues/06-fraud-toploc-integration.md +++ b/.scratch/alpha-hardening/issues/06-fraud-toploc-integration_completed.md @@ -42,6 +42,6 @@ Pin one canonical precision/quantization per model preset. Add `toploc` to valid ## Blocked by -- `05-a1-a5-persist-strike-ban-reputation.md` +- `05-a1-a5-persist-strike-ban-reputation_completed.md` **Prod gate:** do not enable production audit thresholds until `21-honest-noise-calibration-corpus.md` completes (see README Phase 2 note). diff --git a/.scratch/alpha-hardening/issues/07-fraud-commitment-bisection-blame.md b/.scratch/alpha-hardening/issues/07-fraud-commitment-bisection-blame_completed.md similarity index 98% rename from .scratch/alpha-hardening/issues/07-fraud-commitment-bisection-blame.md rename to .scratch/alpha-hardening/issues/07-fraud-commitment-bisection-blame_completed.md index fc510c4..d2a96a7 100644 --- a/.scratch/alpha-hardening/issues/07-fraud-commitment-bisection-blame.md +++ b/.scratch/alpha-hardening/issues/07-fraud-commitment-bisection-blame_completed.md @@ -32,4 +32,4 @@ On audit selection, require nodes to supply TOPLOC-style fingerprints of **outpu ## Blocked by -- `06-fraud-toploc-integration.md` +- `06-fraud-toploc-integration_completed.md` diff --git a/.scratch/alpha-hardening/issues/08-fraud-reputation-model-persistence.md b/.scratch/alpha-hardening/issues/08-fraud-reputation-model-persistence_completed.md similarity index 92% rename from .scratch/alpha-hardening/issues/08-fraud-reputation-model-persistence.md rename to .scratch/alpha-hardening/issues/08-fraud-reputation-model-persistence_completed.md index 35f73ce..bed175b 100644 --- a/.scratch/alpha-hardening/issues/08-fraud-reputation-model-persistence.md +++ b/.scratch/alpha-hardening/issues/08-fraud-reputation-model-persistence_completed.md @@ -35,5 +35,5 @@ Implement graduated reputation per ADR-0018 §6: score derives only from tracker ## Blocked by -- `05-a1-a5-persist-strike-ban-reputation.md` -- `07-fraud-commitment-bisection-blame.md` (audit outcomes feed reputation) +- `05-a1-a5-persist-strike-ban-reputation_completed.md` +- `07-fraud-commitment-bisection-blame_completed.md` (audit outcomes feed reputation) diff --git a/.scratch/alpha-hardening/issues/09-fraud-reputation-routing-adaptive-audit.md b/.scratch/alpha-hardening/issues/09-fraud-reputation-routing-adaptive-audit_completed.md similarity index 97% rename from .scratch/alpha-hardening/issues/09-fraud-reputation-routing-adaptive-audit.md rename to .scratch/alpha-hardening/issues/09-fraud-reputation-routing-adaptive-audit_completed.md index 9b233af..ce7bef9 100644 --- a/.scratch/alpha-hardening/issues/09-fraud-reputation-routing-adaptive-audit.md +++ b/.scratch/alpha-hardening/issues/09-fraud-reputation-routing-adaptive-audit_completed.md @@ -35,4 +35,4 @@ Audit selection must be unpredictable at request time (tracker RNG after commitm ## Blocked by -- `08-fraud-reputation-model-persistence.md` +- `08-fraud-reputation-model-persistence_completed.md` diff --git a/.scratch/alpha-hardening/issues/10-fraud-penalty-calibration-wiring.md b/.scratch/alpha-hardening/issues/10-fraud-penalty-calibration-wiring_completed.md similarity index 95% rename from .scratch/alpha-hardening/issues/10-fraud-penalty-calibration-wiring.md rename to .scratch/alpha-hardening/issues/10-fraud-penalty-calibration-wiring_completed.md index 12ea6b2..698c0a8 100644 --- a/.scratch/alpha-hardening/issues/10-fraud-penalty-calibration-wiring.md +++ b/.scratch/alpha-hardening/issues/10-fraud-penalty-calibration-wiring_completed.md @@ -37,6 +37,6 @@ Per ADR-0018: **full pending forfeiture** is primary penalty; ×0.8 is routing d ## Blocked by -- `07-fraud-commitment-bisection-blame.md` -- `08-fraud-reputation-model-persistence.md` -- `02-a2-unified-auth-boundary.md` +- `07-fraud-commitment-bisection-blame_completed.md` +- `08-fraud-reputation-model-persistence_completed.md` +- `02-a2-unified-auth-boundary_completed.md` diff --git a/.scratch/alpha-hardening/issues/11-c6-wallet-binding-proof.md b/.scratch/alpha-hardening/issues/11-c6-wallet-binding-proof_completed.md similarity index 94% rename from .scratch/alpha-hardening/issues/11-c6-wallet-binding-proof.md rename to .scratch/alpha-hardening/issues/11-c6-wallet-binding-proof_completed.md index 2c0d49e..cd9c539 100644 --- a/.scratch/alpha-hardening/issues/11-c6-wallet-binding-proof.md +++ b/.scratch/alpha-hardening/issues/11-c6-wallet-binding-proof_completed.md @@ -33,5 +33,5 @@ Require signed message from wallet pubkey (ed25519 via `cryptography` / solders) ## Blocked by -- `02-a2-unified-auth-boundary.md` -- `03-c5-starting-credit-zero.md` +- `02-a2-unified-auth-boundary_completed.md` +- `03-c5-starting-credit-zero_completed.md` diff --git a/.scratch/alpha-hardening/issues/16-doc-us006-reconciliation.md b/.scratch/alpha-hardening/issues/16-doc-us006-reconciliation_completed.md similarity index 93% rename from .scratch/alpha-hardening/issues/16-doc-us006-reconciliation.md rename to .scratch/alpha-hardening/issues/16-doc-us006-reconciliation_completed.md index bb56d81..258d880 100644 --- a/.scratch/alpha-hardening/issues/16-doc-us006-reconciliation.md +++ b/.scratch/alpha-hardening/issues/16-doc-us006-reconciliation_completed.md @@ -9,7 +9,7 @@ Reconcile stale US-006 (Solana testnet stake contracts) with ADR-0015/0016 devne Also reconcile legacy fraud issues with the alpha-hardening fraud arc: - `docs/issues/07-fraud-detection-slash.md` — on-chain stake slash model superseded by pending-balance forfeiture + TOPLOC (ADR-0018) -- `docs/issues/34-forfeiture-penalty.md` — partially implemented; remaining fraud work lives in `.scratch/alpha-hardening/issues/06-fraud-toploc-integration.md` through `10-fraud-penalty-calibration-wiring.md` +- `docs/issues/34-forfeiture-penalty.md` — partially implemented; remaining fraud work lives in `.scratch/alpha-hardening/issues/06-fraud-toploc-integration_completed.md` through `10-fraud-penalty-calibration-wiring_completed.md` ## Acceptance criteria diff --git a/.scratch/alpha-hardening/issues/18-doc-operational-runbooks.md b/.scratch/alpha-hardening/issues/18-doc-operational-runbooks_completed.md similarity index 100% rename from .scratch/alpha-hardening/issues/18-doc-operational-runbooks.md rename to .scratch/alpha-hardening/issues/18-doc-operational-runbooks_completed.md diff --git a/.scratch/alpha-hardening/issues/19-doc-cryptography-test-env.md b/.scratch/alpha-hardening/issues/19-doc-cryptography-test-env_completed.md similarity index 100% rename from .scratch/alpha-hardening/issues/19-doc-cryptography-test-env.md rename to .scratch/alpha-hardening/issues/19-doc-cryptography-test-env_completed.md diff --git a/.scratch/alpha-hardening/issues/20-validator-service-token.md b/.scratch/alpha-hardening/issues/20-validator-service-token_completed.md similarity index 94% rename from .scratch/alpha-hardening/issues/20-validator-service-token.md rename to .scratch/alpha-hardening/issues/20-validator-service-token_completed.md index ea6de6d..ebd91ca 100644 --- a/.scratch/alpha-hardening/issues/20-validator-service-token.md +++ b/.scratch/alpha-hardening/issues/20-validator-service-token_completed.md @@ -45,8 +45,8 @@ Per [ADR-0017 §4](../../docs/adr/0017-tracker-authentication-and-authorization. ## Related -- `02-a2-unified-auth-boundary.md` — middleware + role checks +- `02-a2-unified-auth-boundary_completed.md` — middleware + role checks ## Blocked by -- `02-a2-unified-auth-boundary.md` +- `02-a2-unified-auth-boundary_completed.md` diff --git a/.scratch/alpha-hardening/issues/21-honest-noise-calibration-corpus.md b/.scratch/alpha-hardening/issues/21-honest-noise-calibration-corpus.md index 9a080a9..8ae2267 100644 --- a/.scratch/alpha-hardening/issues/21-honest-noise-calibration-corpus.md +++ b/.scratch/alpha-hardening/issues/21-honest-noise-calibration-corpus.md @@ -44,7 +44,7 @@ Research anchor: `.scratch/alpha-hardening/research-verifiable-inference.md` §8 ## Blocked by -- `06-fraud-toploc-integration.md` (TOPLOC wired; calibration uses same primitive) — done +- `06-fraud-toploc-integration_completed.md` (TOPLOC wired; calibration uses same primitive) — done ## Blocks (prod gate) diff --git a/.scratch/alpha-hardening/issues/22-doc-memory-project-status.md b/.scratch/alpha-hardening/issues/22-doc-memory-project-status_completed.md similarity index 100% rename from .scratch/alpha-hardening/issues/22-doc-memory-project-status.md rename to .scratch/alpha-hardening/issues/22-doc-memory-project-status_completed.md diff --git a/.scratch/alpha-hardening/issues/23-dynamic-hf-pricing.md b/.scratch/alpha-hardening/issues/23-dynamic-hf-pricing_completed.md similarity index 100% rename from .scratch/alpha-hardening/issues/23-dynamic-hf-pricing.md rename to .scratch/alpha-hardening/issues/23-dynamic-hf-pricing_completed.md