Commit graph

15 commits

Author SHA1 Message Date
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
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
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
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
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
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
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
7381f1cdee wedge: tick T004/T005/T008/T009 (wave-2 herd converged)
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-02 02:26:15 +02:00
ec98e294a7 wedge(T001-T003): monorepo skeleton, uv workspaces, ruff+pytest config
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-02 02:19:47 +02:00
4406bbf3e4 factory-loop(tasks): 001-market-first-wedge — 47 tasks across 8 phases, wedge gate at T036
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-02 02:17:18 +02:00
8757c6b620 factory-loop(plan): 001-market-first-wedge — plan, research, data model, 5 contracts, quickstart
Rail-independence is the plan's spine: fedlearn rails verified NOT landed
(no m2/m2-core, no capture/curator CLIs), so the wedge builds against frozen
interfaces — m2/market-registry as registry of record, ApplyAdapter seam with
local adapter now / m2core-sync stub, schemas frozen here with a fedlearn
coordination note. Constitution check passed (1 justified deviation).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-02 02:15:24 +02:00
e8ee3920de factory-loop: onboard spec-kit, ratify constitution v1.0.0, draft 001-market-first-wedge spec
- spec-kit initialized (claude integration; /speckit.* skills in .claude/skills/)
- constitution: 7 principles from CONCEPT.md v0.2 + inherited fleet constraints
- spec 001-market-first-wedge: 5 prioritized stories, FR-001..015, SC-001..007
- operator steer from README §open-forks folded into assumptions (ledger standalone
  now / m2-gpt-billing crypto later, fixed pricing + job headroom, Electron MVP
  store, Scout host = explore spike)
- .m2herd/ context fabric initialized (gitignored)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-02 02:03:14 +02:00