Home

boring / v2

publicBoring-Software-Inc/v2
Overview Code History Branches Pull requestsIssuesInsights Campfire Docs
main
HomeOverview Code PRsIssues

feat(engine): step 6 — workflow DAG, executor, run persistence

4 months ago

497e80d
Authored
grim7/11/2026, 11:22:40 AM
- contracts: workflow.ts (trigger/rule/gate/action nodes, conditional edges,
  approve/deny moderation edges)
- core: validate.ts (schema, ids, reachability, not-gate arity, cycle
  detection), executor.ts (topo walk, gate short-circuit, pause/resume,
  step records with timings), exports
- db: runs service (createRun with validated snapshot, recordSteps with
  RuleResult-validated evidence, recordActions rows-first, markActionExecuted,
  completeRun/pauseRun/getRunWithSteps), repos service (ensureRepo, enabled
  workflows, rule-config CRUD)
- forge-github: GithubReads (diff/commits/readFile/contributor via fetch)
- worker: default workflow (validated at load), context builder with
  per-read degradation, run-workflows join + persistence, maintainer
  exemption, env-gated reads wiring
- integration: fresh-account PR ⇒ blocked run w/ snapshot+evidence+action row;
  maintainer exempt; degraded reads ⇒ skips, pass

Parent6760718

22 files changed
  • DECISIONS.md+31−0
  • all-summaries.md+36−0
  • apps/worker/src/context.ts+93−0
  • apps/worker/src/default-workflow.ts+70−0
  • apps/worker/src/index.ts+29−1
  • apps/worker/src/jobs/process-event.ts+6−0
  • apps/worker/src/jobs/run-workflows.ts+179−0
  • apps/worker/src/process-event.integration.test.ts+151
−4
  • bun.lock+1−0
  • packages/contracts/src/index.ts+1−0
  • packages/contracts/src/workflow.ts+86−0
  • packages/core/src/index.ts+10−0
  • packages/core/src/workflow/executor.ts+279−0
  • packages/core/src/workflow/validate.ts+135−0
  • packages/core/src/workflow/workflow.test.ts+218−0
  • packages/db/package.json+2−1
  • packages/db/src/index.ts+2−0
  • packages/db/src/services/repos.ts+156−0
  • packages/db/src/services/runs.ts+174−0
  • packages/forge-github/src/client/reads.ts+172−0
  • packages/forge-github/src/index.ts+1−0
  • packages/forge/src/index.ts+2−2