Commit Graph
5 Commits
Author SHA1 Message Date
fez5587andClaude Fable 5 c8bfa0c0ab Slice 1: engine core — compose stack, db layer, company/employee API
- docker-compose.yml: Postgres 16 (schema auto-applied) + Redis, nonstandard
  host ports 5433/6380.
- engine/db.py: async psycopg pool, append_event in caller's transaction.
- engine/souls.py: versioned role charters (manager/engineer/qa) + reporting
  protocol appended to every soul.
- engine/main.py: POST/GET companies, employee hire with Hermes profile
  creation (outside tx, retryable; DB authoritative), event feed, archive
  with profile cleanup, global pause/resume in Redis.
- Verified live end-to-end: create -> 4 events + 3 real Hermes profiles;
  pause flips health; archive 204 removes profiles, keeps rows.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-04 00:36:36 -05:00
fez5587andClaude Fable 5 d05004e9cd Slice 1: Hermes adapter with live-verified round-trips
- engine/hermes_client.py: cookie-auth async client — profiles (create/soul/
  model/delete), kanban tasks (create with tenant + runaway budget mapping,
  idempotency via work-item UUID, update/delete), dispatch, runs, workers.
- engine/config.py: env-driven settings (.env stays gitignored).
- tests/test_hermes_live.py: live smoke against Hermes 0.19.0 — all pass:
  profile round-trip, task create (t_*), idempotent re-create, status patch,
  cleanup. No dispatch triggered (no GPU burn).
- Discovery: kanban responses wrap in {task}; webhooks are inbound triggers,
  so engine polls run/task status (ADR-001 fallback is the primary channel).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-04 00:34:20 -05:00
fez5587andClaude Fable 5 ad4f603799 Step 5+6: event schema v1, core DDL, policy table, Slice 1 acceptance demo
- db/schema.sql: 9 core tables, append-only event log (trigger-enforced),
  deny-by-default policy_rule with seeded globals, runaway budgets on work items.
  Validated against Postgres 16 (DDL applies, trigger rejects UPDATE).
- engine/schemas/events.py: AgentMessage (flat, inference-enforced) +
  EventEnvelope pydantic models; models are the schema (ADR-003).
- adr/ADR-003: event schema and data model decisions.
- SLICE1_DEMO.md: verbatim acceptance script for Slice 1.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-03 23:26:49 -05:00
fez5587andClaude Fable 5 fdf7a67db0 Add PRD, addendum, pre-implementation docs, ADRs, and capability-gate benchmarks
- PRD v1.0 plus addendum with environment reality checks (qwen3.5:9b pool, runaway protection, MVP trim)
- Pre-implementation checklist and GitHub integration plan
- ADR-001: build on Hermes Agent 0.19.0 as agent runtime; engine stays source of truth
- ADR-002: engine stack (FastAPI, Postgres, Redis, React)
- Benchmark suites + results: all five capability gates PASS, pool scaling 1.92x at 4 concurrent

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-03 22:58:52 -05:00
fez5587 dc665519a8 Initial commit 2026-08-03 18:28:51 -05:00