|
|
||
|---|---|---|
| .. | ||
| LICENSE | ||
| README.md | ||
| api.ts | ||
| autopsy.ts | ||
| bun.lock | ||
| cause.ts | ||
| clock.ts | ||
| engine.ts | ||
| events.ts | ||
| fester.db | ||
| fester.db-shm | ||
| fester.db-wal | ||
| index.ts | ||
| nodes.ts | ||
| package.json | ||
| scheduler.ts | ||
| seed.ts | ||
| store.ts | ||
| targets.ts | ||
README.md
Fester — distributed DAG build orchestration
Fester is developed upstream as an independent repository. This copy is the vendored snapshot pre-integrated into the SysDeck master tarball — SysDeck ships with Fester wired in, no separate checkout required.
- Version: 0.2.1 (versioned independently from SysDeck 0.2.0)
- Runtime: Bun —
bun install && bun run dev(hot reload) - Transport: REST + raw WebSocket on port 3010
- Storage: SQLite timeline (
fester.db, created and seeded on first boot)
Architecture
| File | Role |
|---|---|
engine.ts |
PipelineEngine — DAG execution in topological waves, retries, CAS cache, BTC stamps, pause/step debugger |
scheduler.ts |
Weighted node scoring (cpu / temp / policy / instability) |
nodes.ts |
NodeStateRegistry + synthetic drift + the real local node |
events.ts |
EventBus + FesterEvent schema |
store.ts |
SQLite storage: builds / sessions / events / node states |
autopsy.ts |
Failure autopsy + propagation analysis |
cause.ts |
Causal graph builder |
api.ts |
REST surface (mirrors the upstream route table) |
clock.ts |
Engine tick loop |
targets.ts |
Project/target catalog |
seed.ts |
First-boot synthetic history (powers the replay views) |
REST surface (abbreviated)
GET /api/health— service statusGET /api/builds,GET /api/builds/{id}— build list / detailPOST /api/build— start a build{project, targets[], noCache?, retries?}POST /api/builds/{id}/cancelGET /api/targets·/api/nodes·/api/metrics·/api/policyGET /api/timeline[/{id}]·POST/GET /api/sessionsGET /api/autopsy/{build}/{action}·/api/cause/{build}·/api/debugger/{build}
WebSocket: connect to ws://host:3010/ (or through a gateway at
/?XTransformPort=3010). Full broadcast by default;
{"type":"subscribe","buildId":…} for a single-build stream;
{"type":"debugger","buildId":…,"command":"pause|resume|step"} for the
interactive debugger.
Integration points
- SysDeck Web Edition — server-side proxy
src/app/api/fester/route.tsplus the Fester sub-app (src/components/sysdeck/panels/festerPanel.tsx). - SysDeck Cockpit Edition — bridge helper
bridge/fester.pytalks to this service over REST (see the cockpit tree in the master tarball).