Commit graph

65 commits

Author SHA1 Message Date
67a65e7f16 T041: scout host spike — decision hermes plugin 2026-07-02 04:35:37 +02:00
9ec83bf7f2 wedge(analyze): remediate C1/I1/I2/U1/U2 — rebuild-by-partition-switch, contracts synced to as-built, runbook
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-02 04:26:22 +02:00
c52f968f38 wedge: GATE PASSED — T028/T032-T036 done; SC-001 closed commercially
m2bd bought sdjs-operator's lst_mm-pdf-report (40 cr) on m2bd-m2o via
m2-market install: debit->grant->apply exact (60/136/4), license tied to
paying tx, skill invocable, idempotent re-run, refund path proven live,
install telemetry in market:evidence, daily audit snapshots committed to
m2/market-registry (cron 03:10). Run report: ~/.herdr/runs/2026-07-02-*.md

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-02 04:17:09 +02:00
b5c4cd486f wedge: local adapter resolves dest symlinks before home containment check
Found by the T036 gate install on m2bd-m2o: $HOME is a bind of
/agent_home/home/developer; Path.home().resolve() followed the mount while the
expanded dest did not, false-positiving the safety guard. The failed install
correctly auto-refunded (the FR-005 compensation path proved itself live).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-02 04:15:33 +02:00
2b84874515 wedge(T034): snapshot commits to registry audit/ via Forgejo contents API
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-02 04:12:46 +02:00
5d651705ff wedge: adapt catalog clients to REAL memory-api (store/search, agent_id partitions)
- CatalogClient: POST /memory/search, results via metadata.listing; tenant
  visibility filter enforced in the one shared reader client (memory-api
  tenant_id is scalar; deviation recorded in the module docstring)
- indexer MemoryClient: upsert = exists-check + store; drop/delete are WARN
  no-ops (API has no delete) — reindex is an idempotent fill for now
- refund-overdraw decided: compensating refunds may push a seller negative
  (debt, manual reconciliation); data-model amended, property machine updated
- probe doc stored in market:probe partition during API discovery (harmless)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-02 04:09:33 +02:00
25b36e9ffb wedge: US2 wave converged — T027 publish cmd, T029/T030 seeds (schema-valid, scrubbed); T031 blocked on operator
t031 worker found ZERO real competitor-scan evidence and correctly built
nothing (constitution III). Recommended substitute: Parlobyg email-triage
(real production run 2026-03-15..04-04) — tenant-derived, requires operator
owner-initiation + double scrub (constitution IV). Recorded as open question.
Tenant-named hosts scrubbed from agent-scaffold evidence. 29 tests green.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-02 03:51:27 +02:00
51694acc64 chore: drop remaining tracked pyc
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-02 03:50:35 +02:00
3886ee8480 merge: seed-agent-scaffold (US2) 2026-07-02 03:50:25 +02:00
5e2dd7aac3 merge: seed-mmpdf (US2) 2026-07-02 03:50:25 +02:00
178f373fe1 merge: publish-cmd (US2, pycache conflicts dropped) 2026-07-02 03:50:25 +02:00
91ca883ccb chore: untrack __pycache__/pyc/uv.lock, extend gitignore
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-02 03:50:25 +02:00
362fd2e5b3 T030: seed solution agent-scaffold 2026-07-02 03:47:09 +02:00
430061c0ff T029: seed solution mm-pdf-report 2026-07-02 03:42:12 +02:00
82393ccdc5 T027: publish command (validate -> branch -> release -> PR)
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-02 03:38:59 +02:00
83cda680d2 wedge: T026 integration tests (real ledger via uvicorn, real bundle, temp HOME)
Written inline after two headless workers died on API errors. Tests caught a
real cross-slice bug: ledger grants stored the full install ref as listing_id,
breaking GET /license/{op}/{listing} — fixed by parsing the listing prefix per
the ref convention in contracts/ledger-api.md. Also pinned the indexer test's
schema path (venv-installed package resolved outside the repo) — its earlier
pass was vacuous without jsonschema installed. 27 tests green.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-02 03:34:21 +02:00
6fa1bc8e29 ci: verify push-triggered deploy 2026-07-02 03:26:19 +02:00
f9108902d9 wedge: T014 done — m2-ledger deployed on Coolify with push-triggered CI/CD
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-02 03:24:24 +02:00
aeba02f287 wedge: T013 property tests + T014 Dockerfile merged; fix zero-amount install rows
T013 worker found record_install violating CHECK(amount>0) when platform_pct
rounds cut or seller_amount to zero (unhandled IntegrityError -> HTTP 500).
Fixed: skip zero rows, grant references the paying tx; regression test added.
9 ledger tests green.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-02 03:17:07 +02:00
bc650ea4ee merge: T014 ledger Dockerfile + deploy notes 2026-07-02 03:15:54 +02:00
99f040c417 merge: T013 ledger property tests 2026-07-02 03:15:54 +02:00
f283069ab1 T014: ledger Dockerfile + deploy notes 2026-07-02 03:14:18 +02:00
b8d4fa9728 T013: ledger property tests 2026-07-02 03:05:25 +02:00
68f3544513 wedge: US1 wave 2 converged (T012/T015/T021/T023-T025) + fix m2core-sync class name
Verified on master: 14 tests green (schemas+cli+indexer); ledger API exercised
end-to-end via TestClient (grant admin-only, install 200/409/402, refund
restores balance, auth 401); adapter factory resolves local + raises
RailsNotLanded on the stub.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-02 03:02:28 +02:00
9bb441e4a7 merge: cli-commands (US1 wave 2) 2026-07-02 03:01:51 +02:00
0c51ce6251 merge: local-adapter (US1 wave 2) 2026-07-02 03:01:51 +02:00
41a84249f9 merge: indexer (US1 wave 2) 2026-07-02 03:01:51 +02:00
8701e4056d merge: ledger-api (US1 wave 2) 2026-07-02 03:01:50 +02:00
5fad8ffa1a T023-T025: search/show/install/wallet commands 2026-07-02 03:00:33 +02:00
ae64eb22b6 T021: local apply adapter (idempotent, reversible) 2026-07-02 02:54:32 +02:00
1d10589cef T015: catalog indexer (reindex + watch)
Registry (Forgejo) + memory-api clients under m2_market_indexer.client, with
memory-api paths/creds as env-overridable constants (config.py). reindex.py
drops market:catalog and rebuilds from published listings on main, skipping
schema-invalid ones. watch.py polls the registry tip commit against a cached
state.json and upserts changed/new published listings, deletes delisted ones.
2026-07-02 02:51:30 +02:00
be4ade5ea7 T012: ledger API routes per contract 2026-07-02 02:45:41 +02:00
8a8db9f2cc specs: m2-market spec discovery — 6 subsystem specs + synthesis index
herdr workforce output (6 codex angle-specialists -> claude synthesis):
S1 ledger/economy, S2 catalog/registry, S3 storefront (cargstore->M2 Store),
S4 Solution Scout (standalone watcher recommended), S5 packaging + 3 seed
Solutions (mm-pdf 25cr, agent-scaffold 35cr, competitor-scan 60cr),
S6 proposal engine + evidence loop.

SPEC-INDEX is the tie-break: 23-row cross-cutting contract table (16 mismatches
resolved, e.g. /v1 ledger paths win, m2store://listing/<id> deep link, one
m2.market.telemetry.v1 envelope, op_<slug> operator ids, tenant ids from m2-gpt),
8 deduped clarifications with defaults, 4-phase build order where the paid-install
wedge does NOT block on fedlearn (local ApplyAdapter until rails land), risk register.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-02 02:43:50 +02:00
b994572dde wedge: US1 wave 1 converged (T010/T011/T016-T020) + T022 stub adapter inline
Smoke-verified on master: install debit/cut/grant math exact, dup-ref and
insufficient-funds guarded, refund compensates, InstallState atomic round-trip,
adapter factory + all package imports green.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-02 02:43:48 +02:00
7209b032d8 merge: apply-base (US1 wave 1) 2026-07-02 02:42:58 +02:00
4404a00ede merge: cli-catalog-client (US1 wave 1) 2026-07-02 02:42:58 +02:00
a14afc0244 merge: cli-registry-client (US1 wave 1) 2026-07-02 02:42:58 +02:00
0960f062b2 merge: cli-ledger-client (US1 wave 1) 2026-07-02 02:42:58 +02:00
451cc5a619 merge: cli-scaffold (US1 wave 1) 2026-07-02 02:42:58 +02:00
516293e118 merge: ledger-auth (US1 wave 1) 2026-07-02 02:42:58 +02:00
f3e48d070d merge: ledger-models (US1 wave 1) 2026-07-02 02:42:58 +02:00
86cdcdd82a T020: ApplyAdapter protocol + InstallState 2026-07-02 02:41:59 +02:00
e7e6ba4bdc T019: catalog client (tenant-scoped semantic search) 2026-07-02 02:40:38 +02:00
d34c8fb193 T018: registry client (listings, releases, hash verify) 2026-07-02 02:38:57 +02:00
75def66e7c T017: ledger client with typed errors 2026-07-02 02:37:19 +02:00
035d8771dc T016: CLI scaffold, config loading, exit-code map 2026-07-02 02:35:59 +02:00
1ad50fc4a5 T011: ledger X-API-Key auth (service/admin) 2026-07-02 02:34:09 +02:00
0cef16beb8 T010: ledger models — append-only tx, derived balances 2026-07-02 02:32:49 +02:00
c607bc04b7 wedge: tick T006/T007 — Phase 2 checkpoint: schemas frozen+tested, registry live
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-02 02:30:19 +02:00
60b7cf760e merge: T006 schema tests + fixtures 2026-07-02 02:30:19 +02:00