Skip to content

Releases: tatargabor/set-core

v1.10.0 — IKP integration knowledge packs, knowledge injection pipeline

Choose a tag to compare

@tatargabor tatargabor released this 09 Jul 18:19

Integration Knowledge Packs (IKP) now flow end-to-end through
orchestration. A project declares its external integrations in
.ikp.yaml; the pipeline does the rest.

IKP

  • Bridge module (lib/set_orch/ikp_bridge.py) wrapping the ikp package as
    an optional dependency — every entry point degrades gracefully when it
    is not installed.
  • Decomposer reads L1 (knowledge) + L2 (planning) layers and renders an
    Integration Knowledge section into the planning prompt, so integration
    changes get sized against real complexity ratings and pitfalls rather
    than endpoint counts. Falls back to pack.yaml summaries past a 15K
    token budget instead of dropping packs.
  • Planner assigns ikp_packs per change. Enrichment validates against
    declared packs, drops undeclared ones, and matches scope text against
    pack names when the planner omits the field.
  • Dispatcher injects L3 (implementation) layers as
    .claude/rules/ikp-.md into the worktree and adds a compact
    orientation section to input.md. Injection failures never fail dispatch.
  • Category resolver adds integration as a deterministic signal.
  • Verify gate appends L4 (testing) context — sandbox setup, mock
    strategies, edge cases — to the review prompt.
  • Replan path carries IKP context too, so re-planned changes keep packs.

Knowledge injection

  • Multi-source knowledge injection pipeline.
  • Domain knowledge loading in /opsx:apply and /opsx:ff.
  • Knowledge files auto-matched by scope.

Planner / dispatch

  • File-based execution hints + REQ-ID coverage tracking.
  • Execution hints injected into the domain-parallel merge prompt.
  • Spec file read-first with rich REQ context for agents.
  • config.yaml resolved from project root for spec_dir.

Gates

  • spec_verify escalation skipped in soft/warn mode.
  • missing-route demoted from blocking to informational.
  • ISS issue ownership auto-resolves when change status is reset.

Process

  • Pre-push sensitive content scan is now a required release step
    (.claude/rules/release-safety.md).

v1.9.1 — Optional design pipeline, planner reuse, E2E infra evolution

Choose a tag to compare

@tatargabor tatargabor released this 11 May 21:18

25 commits since v1.9.0. Highlights:

Design pipeline now optional

  • has_design_pipeline directive — projects without v0/design sources can opt out cleanly; design-fidelity gate auto-skips when no v0 source is present. (8d499a60, 709011b9, ee661a8d)
  • Enriched design-fidelity output with per-violation breakdown. (126df836)

Planner improvements

  • Hash-based domain-plan reuse on replan — skips redundant LLM decomposition when domain content hasn't changed. (2016eaf7)
  • Serial decompose as default — single-call serial decomposition with parallel as opt-in fallback; more deterministic plans. (0b8622fa)

E2E infrastructure evolution

  • Shared test infra discovery + dispatch injection + test layering — agents receive pre-built test infrastructure context (helpers, fixtures, shared setup) so they extend rather than reinvent. (2e75a5b1)
  • E2E retry context enrichment — webServer log injected into retry context; no-commit retry guard prevents empty retries. (d95eceee)
  • Integration-merge-conflict retries classified in DAG via retry_context. (c45d3a71)

DAG & observability fixes

  • Profile-registered gates journaled so dashboard sees them. (32a10dc5)
  • DAG gate nodes synthesized from gate_*_ms when result unchanged. (def71a16)
  • Profile-registered gates surfaced in DAG attempt timeline. (34a06deb)

Bug fixes

  • REQ-ID regex now matches compound and alphanumeric identifiers (e.g. REQ-AUTH-01). (d2c0bfc3)
  • Digest --single-file flag prevents parent directory scan. (a62e14f9)
  • Digest coerces data_definitions to str when LLM returns dict. (1dc2bb5a)
  • Loop requires impl files in diff before declaring openspec done (prevents premature completion). (64da0188)
  • Next ESLint FlatCompat — uses FlatCompat for Next preset; drops check:i18n from pre-commit. (8c5c07bf)
  • Build-time quality gates + repositioned review learnings in web module. (c0a3109f)

Test & docs

  • set-design scaffold + runner + competitive analysis E2E test. (3bcf12ef)
  • Regenerated craftbrew design-manifest.yaml. (15729f26)
  • Research doc: Claude 4.7 vs 4.6 orchestration analysis. (2bc0ddb3)
  • OpenSpec changes: web-i18n-single-locale-default, self-healing infra, design-fidelity-ui-primitive-sync. (62533899, b1b0e9ec, 03200def)
  • Added uv.lock. (59a2688c)

v1.9.0 — Mobile project type, model-config unification, observability hardening

Choose a tag to compare

@tatargabor tatargabor released this 02 May 16:42

32 commits since v1.8.0. Highlights:

New project type

  • Mobile (Capacitor) project type moduleMobileProjectType joins the existing WebProjectType plugin slot. Refined from consumer-project diagnostics post-launch. (3c74f8bf, 761ebac8)
  • Template inheritance via inherits: field in scaffold manifests. (a2456189)

Model configuration

  • Unified models: block in orchestration.yaml; opus-4-6 default; foundational changes routed to Opus. (8cdcbd9f)
  • Purged hardcoded model fallbacks across the codebase. (db82ebb0, fd9583be)
  • Translates short pins to full Claude CLI ids. (786fc27a)
  • Removed all hardcoded --max-turns budgets — relies on the 5h Anthropic session window + per-call timeouts; the truncation budgets were silently capping legitimate multi-step work. (d0bcbf21)
  • Session-derived LLM rows return full model id, not family. (e084d2ec)

Observability

  • /api/{project}/events resolver prefers the live event stream (orchestration-events.jsonl) over the narrow milestones file (orchestration-state-events.jsonl); rotation-aware fill from cycle siblings; same resolver applied to reconstruct_state_from_events. (ff859a9d)
  • VERIFY_GATE event schema unified — all 12 emit sites (4 verifier + 8 merger) write explicit gate and result keys at the data dict top level; consumer parsing of data.get(\"gate\") no longer returns empty for verifier paths. (ff859a9d)
  • Project-level LLM calls inherit current lineage in /llm-calls (was disappearing under __legacy__). (77da3602)

Activity timeline

  • Server-side sub-phase breakdown for implementing rows: 6-bucket operator-facing taxonomy (OpenSpec authoring, source edits, test runs, build runs, sub-agent dispatches, etc.) reconstructed from existing per-tool sub-spans. Works retroactively for all existing runs; expanded by default. (3a1e8c16, 51968354)

Web dashboard

  • LOG tab now wired to selected change — per-gate sub-tabs (Build/Test/E2E/Review/Smoke/Merge) actually appear; previously they were always coded but never reached because selectedChange was hardcoded to null. (7ed03ec9)
  • Full model version shown in admin UI (opus-4-6 not opus). (4a25325c)

Web gates — self-heal

  • e2e testdir-drift self-heal + verifier canary lint anti-pattern checks. (2326e055)
  • e2e-env-drift-guard — DATABASE_URL / schema-provider mismatch self-heals from config.yaml. (628c7d9e, 1dc25311)
  • Surfaces prisma db push stdout/stderr on integration_pre_build failure. (89f65309)
  • e2e nav lint regex + 2 anti-pattern checks. (0bd4fb6a)
  • Playwright page.goto required + blank-screenshot anti-pattern lint. (b27a96b3)
  • design-fidelity form recognition re-export + non-blocking /stop. (fa3bb957)

Engine reliability

  • Re-gate explicitly on stuck-with-progress instead of falling through. (525a93dc)
  • Include loop_status=stalled in new-commits re-gate path. (3fc7b215)

Planner

  • Determinism via digest cache + force-strategy + test-bundling decompose. (e452b785)

Architecture

  • Layer-1 purity sweep + fail-loud test-bundling + chat --model. (58c51380)

Hardening (post-run-1104)

  • Change.spec_coverage_result declared on Layer-1 dataclass (was AttributeError on archive path). (eca8bbfd)
  • Supervisor short-circuits exit-127 on clean run-complete instead of misclassifying as orchestrator_binary_missing. (eca8bbfd)
  • Web template Playwright navigationTimeout 15s → 30s for cold Next.js compile. (eca8bbfd)
  • dotenv added to nextjs scaffold devDependencies. (249c622c)

Install

  • macOS: brew install coreutils for gtimeout. (5f8ddd17)

Documentation

  • New web-quality-gate-coverage openspec change: audit of GUI gate coverage gaps + proposal with both full and slim scope alternatives parked for re-evaluation before implementation. (0e473b40)

v1.8.0 — v0.app design pipeline + sentinel autonomy hardening

Choose a tag to compare

@tatargabor tatargabor released this 28 Apr 20:18

v1.8.0 — v0.app design pipeline + sentinel autonomy hardening

186 commits since v1.7.1. The headline shift: SET now treats the design as an
external Next.js / shadcn TSX repository (v0.app-compatible) that agents integrate
rather than reconstruct, and the sentinel can now autonomously recover from most
failure classes without operator intervention.

Highlights

Area What changed Why it matters
v0.app 100% fidelity gate Skeleton check (routes + shared files) + JSX structural parity (component tree shape) + pixel diff at 3 viewports (1440×900 / 768×1024 / 375×667), default 1.5% threshold. Blocks merge on any drift from the v0 reference build. The agent literally cannot ship a page that doesn't match the v0 reference. Design fidelity stops being aspirational and becomes a CI-enforced contract.
v0.app design pipeline External design source (git or ZIP) → set-design-import materializes v0-export/ → manifest auto-generated → per-change design.md Agents mount real shadcn TSX components instead of reconstructing UI from prose. Replaces the deprecated Figma .make pipeline.
External spec author guide New 2,350-line guide at docs/guide/external-spec-author-guide.md Lets external systems / LLM agents produce SET-ready spec packages (scaffold + design source) reproducibly. Covers contracts, GAP analysis, anti-patterns, templates.
Sentinel circuit breakers Stuck-loop detection, token-runaway breaker (50M default), wall-time budget (90 min default), exponential back-off on retry exhaustion Agents that would have burned an entire session on a deterministic bug now escalate to fix-iss after a bounded budget.
Lineage system Per-lineage plan/digest retention + session boundaries; /lineages API; sidebar UI; lineage-scoped coverage Multi-cycle replan no longer collapses history into one stream — you can trace which REQ was originally proposed in which planning cycle.
fix-iss escalation pipeline Auto-retry parent change after fix lands; recursive descendant purge on resolution; configurable max_turns; DIAGNOSED watchdog Issue investigations don't leave orphan worktrees behind, and the parent change automatically re-attempts once the fix-iss merges.
Forensics CLI set-run-logs <run-id> + /set:forensics skill Post-mortem any orchestration run (event timeline, gate verdicts, retry chain, agent outputs) without spelunking through JSONL.
USD cost tracking Real-money per-change cost in dashboard + state; cache_read correctly subtracted from input_tokens Dashboards stop reporting 10× inflated cost; you can budget runs in dollars.

v0.app 100% design fidelity gate

The headline change in v1.8: the agent's build is screenshot-diffed against
the v0.app reference at every merge, and the merge is blocked if the page
drifts.
Design fidelity stops being a hope and becomes a CI gate.

Three layers, all blocking by default:

  1. Skeleton check — every route in design-manifest.yaml exists in the
    agent's worktree, every shared component (header/footer/layout/globals.css)
    is mounted in the right place. Cheap, runs first, fails fast on missing pieces.
  2. JSX structural parity — for each route, the agent's rendered component
    tree shape is compared against the v0 reference's tree. Different node
    names, different nesting, missing data-slot attributes → fail. This catches
    "looks similar" rebuilds where the agent re-wrote a <Button variant="outline">
    as a plain <button className="border ...">.
  3. Pixel diff at three viewports — Playwright screenshots both the v0
    reference build and the agent build at 1440×900 / 768×1024 / 375×667
    (desktop / tablet / mobile), then pixelmatch-diffs them. Default threshold
    is 1.5% of pixels with a 200-pixel floor. Anything past threshold fails.

The reference and agent builds use identical seed data from
docs/content-fixtures.yaml, so the diff measures design (not data churn).

If the gate fails:

  • Diff images are written to set/orchestration/design-fidelity/<change>/
    showing exactly which pixels differ
  • Per-route fail summary lands in the change's retry context
  • The agent re-iterates with the diff feedback in its prompt — usually
    converges on the next pass without operator intervention

When the design intentionally needs to deviate (rare):

# set/orchestration/config.yaml
gates:
  design-fidelity:
    warn_only: true     # downgrades fail → warn; logs the downgrade every run

Validated on micro-web (4 routes, all passing on v1.8 reference run) and
minishop (11 routes, 0 drift).

v0.app design pipeline (the rest)

The fidelity gate is the enforcement; the pipeline below is the plumbing that makes it work. Production-validated on craftbrew, minishop, and micro-web scaffolds.

  • Authoritative TSX, not prose. The design source is a real Next.js 16 / React 19 / shadcn / Tailwind v4 repo. The agent imports components from v0-export/<scaffold>/components/ rather than re-deriving layout from a markdown description.
  • Auto-generated route manifest. set-design-import walks app/**/page.tsx, infers routes (handling (group) segments correctly), and writes docs/design-manifest.yaml. Per-change design.md files list the relevant TSX components for each scope.
  • Validator pass. The importer runs pnpm install, pnpm build, tsc --noEmit, navigation-link integrity, shadcn primitive consistency, and JSX structural parity checks before letting orchestration start. Findings land in docs/v0-import-report.md.
  • Hygiene scanner. --with-hygiene flags HU-canonical conventions, missing shell components (header/footer), duplicate globals.css, dead route components, etc.
  • Two delivery modes. design_source: { type: v0-git, repo, ref } for live git references, or { type: v0-zip, path } for offline / handoff scenarios.

The new authoring guide (docs/guide/external-spec-author-guide.md) covers everything an external system needs to produce a SET-ready package end-to-end.

Sentinel autonomy

The supervisor can now break out of failure modes that previously needed operator intervention:

  • Stuck-loop circuit breaker — same iteration content N times → halt + escalate
  • Token-runaway breaker — change burns >50M tokens (configurable) → halt + escalate
  • Wall-time budget — change runs >90 min (configurable) → halt + escalate
  • Retry-budget exponential back-off — repeat retries spaced increasingly (no thrashing)
  • Auto-recovery for failed:* states — operator raises limits → engine resumes from where it stopped, debiting old budget correctly
  • Integration-failed auto-recovery — merge conflict re-dispatches the agent with done_criteria="merge" so it knows to resolve and ship
  • Poisoned-stall guard — bash sibling paths and stale resolutions no longer block recovery
  • Halt-on-fail with prefix variants — catches failed:e2e, failed:build, failed:integration_e2e etc. uniformly

Lineage + observability

  • /api/lineages endpoint + ?lineage=<id> filter on /api/data, /api/digest, /api/coverage — every per-cycle artefact is now lineage-scoped, including coverage denominators.
  • Per-iteration session attribution — the dashboard now shows which Claude Code session ran which iteration, with AGENT_SESSION_DECISION events explaining session-resume vs fresh-start choices.
  • Per-gate span reconstruction — VERIFY_GATE events are now reconstructed into per-gate spans on the activity timeline (build / test / e2e / review / spec-verify / smoke each get their own bar, with retry counts).
  • Implementing-span live extension — currently-running implementing spans extend to ~now on the timeline so the UI doesn't read as "nothing tracked".
  • Drilldown sub-spans — clicking an implementing span pulls LLM-call / tool-call / sub-agent counts from the activity-detail JSONL.
  • Web template — idempotent tsconfig.json exclude patcher for v0-export*/*.bak.* (no more tsc poisoning on re-import); runtime journals gitignored.

Coverage gate hardening

(Design-fidelity is covered above in its own section — this is the test-coverage gate.)

  • Stub-test detection — coverage gate now blocks vacuous-pass merges (tests with expect(true).toBe(true) or expect(component).toBeDefined()-only patterns)
  • Trivial-expect detection — flags .toBeDefined() / .toBeTruthy()-only assertions as not-covered
  • Required-components mount gate — verifies the agent actually imported the shell components from v0-export/ (related to the fidelity gate's skeleton check, but runs earlier in the pipeline)

Issues + recovery

  • Configurable max_turns for fix-iss agents (default 8)
  • DIAGNOSED watchdog — fix-iss that report DIAGNOSED but don't proceed to resolve trigger a watchdog after wall-time threshold
  • Corrupt-file prompt — fix-iss agents that detect a corrupt file are now prompted to resolve via overwrite + audit instead of patching
  • Rollback preview warning — operators see what would be reverted before a recovery rollback
  • Parent-change auto-retry — circuit-broken changes automatically re-dispatch after their fix-iss resolves
  • Fix-iss descendants purge — recovery removes fix-iss children + their journals + issue records + e2e manifest entries

Documentation

The docs-rewrite-release is largely complete:

  • New structure: docs/guide/ (how-to), docs/reference/ (lookup), docs/learn/ (deep dives), docs/examples/
  • README rewritten for the post-v1.7.1 reality
  • 4 learn pages + 8 guide pages + 4 reference pages
  • 22 broken howitworks diagram links fixed (diagrams/rendered/../diagrams/rendered/)
  • New docs/guide/external-spec-author-guide.md (2,351 lines)
  • Old prose docs archived under docs/archive/
  • CONTRIBUTING.md added

Notable bug fixes

  • Cost calculation: `cache_...
Read more

v1.7.1 — Late-phase gate efficiency fixes

Choose a tag to compare

@tatargabor tatargabor released this 16 Apr 16:41

Validated on craftbrew-run-20260415-1225: 6/6 changes merged

6 fixes for late-phase E2E retry cycle

Fix What Impact
FIX 1 Ralph stopped/stuck → immediate re-gate if new commits Eliminates 302s stall dead zone
FIX 2 Resume preserves current_step=fixing context Agent knows it's in fix mode after recovery
FIX 3 Playwright trace: retain-on-failure 96% artifact reduction (169→6 files/attempt)
FIX 4 max_verify_retries 4→8 Complex changes get enough retry budget
FIX 5 Verify gate scoped E2E (own spec only) 60%+ gate-time reduction (140→40 tests)
FIX 6 Cross-change regression prompt in retry context Agent knows which failures are own vs inherited

Key metrics from validation run

  • checkout-and-orders: Was stuck at retry 4/4. After fixes: passed on 1st retry (attempt 5)
  • admin-reviews-subscriptions: Completed in 3 retry rounds (impl→e2e fix→security review fix)
  • Scoped E2E: 40 tests in 2m37s (was 140 tests in 6m48s)
  • Artifact size: ~5 MB/attempt (was ~200 MB)

Files changed

  • lib/set_orch/engine.py_has_commits_since_gate() + stopped/stuck handling
  • lib/set_orch/gate_runner.pylast_gate_commit tracking
  • lib/set_orch/dispatcher.py — fix context preservation on resume
  • lib/set_orch/verifier.py — scoped E2E via _detect_own_spec_files
  • lib/set_orch/config.py — retry budget increase
  • modules/web/set_project_web/gates.py — scoped E2E + cross-change detection
  • modules/web/set_project_web/templates/nextjs/ — trace config + docs
  • tests/unit/test_engine_stopped_regate.py — 5 new tests

v1.6.1 — Python supervisor Phase 2 + gate verdict single source of truth

Choose a tag to compare

@tatargabor tatargabor released this 12 Apr 13:42

Highlights

Python Supervisor Daemon (Phase 1 + Phase 2)

  • Python daemon replaces the Claude sentinel — zero LLM cost on routine polling
  • 9 anomaly trigger detectors with retry budgets and global rate limit (20/hour)
  • 15-min periodic canary check with structured diff and CANARY_VERDICT: ok|note|warn|stop
  • Ephemeral Claude spawns per trigger (integration_failed, process_crash, terminal_state, etc.)
  • Prior-attempts history summaries so each fresh Claude sees what already failed
  • Hybrid path resolution (project + runtime) with lazy re-resolve for late-appearing files
  • supervisor_mode directive: python (default) | claude (legacy) | off

Gate Verdict — Single Source of Truth

  • <session_id>.verdict.json sidecar replaces the keyword-scan heuristic in the dashboard
  • run_claude_logged auto-writes a default sidecar from the Claude exit code for every logged call
  • Review gate always runs the LLM classifier and takes the worse verdict (fast-path vs classifier)
  • spec_verify fails closed when classifier is disabled and sentinel is missing
  • Scope-aware review prompt prevents cross-change false positives ("missing middleware" on foundation)
  • Scope context passed to the LLM verdict classifier for scope-boundary downgrade

Review Learnings Pipeline

  • Gate injection: reviewer receives a learnings checklist filtered by change content categories
  • Semantic dedup at merge time (LLM-based near-duplicate merging)
  • Severity-weighted eviction (count × severity × recency) replaces naive timestamp LRU
  • Few-shot classifier examples for template vs project pattern classification

Web Module Rules

  • Edge Runtime rule: bcryptjs / @prisma/client forbidden in middleware.ts
  • No test/debug API endpoints rule (/api/test-*, /api/seed-*)
  • merger _test_script_missing reads package.json directly instead of substring-scanning stderr

Timestamp Unification

  • 23 backend files converted from UTC-only to local-with-offset (astimezone().isoformat())
  • Frontend TokenChart sort uses Date.parse epoch comparison for mixed-format robustness

OpenSpec: add-state-archive-system change

Fully spec'd change with 9 capabilities, 76 acceptance criteria:

  • change-journal, file-archive, worktree-harvest, gate-history-view (original)
  • supervisor-transition-triggers, issue-merge-unblock, ralph-learnings-injection, review-severity-calibration, supervisor-permanent-errors (new from minishop validation)

Validated

  • nano-run-20260411-2358: 2/2 merged, 0 retries, clean terminal_state shutdown
  • minishop-run-20260412-0103: 6/6 merged, 33/33 requirements, 100% spec coverage
    • Last 3 changes (admin-products, shopping-cart, checkout-orders) passed all 10 gates with 0 retries
  • 191+ unit tests, no regressions

Stats

  • 32 commits since v1.6.0
  • ~4,800 new lines across lib/set_orch/, modules/web/, web/, tests/, openspec/
  • 111 new unit tests (gate_verdict, supervisor anomaly/history/triggers/canary/integration, final_solution)

v1.6.0 — Review gate robustness + minishop stabilization

Choose a tag to compare

@tatargabor tatargabor released this 11 Apr 08:27

Highlights

Review gate robustness

  • Smart truncation utility — head+tail + error-pattern preservation, applied across 21 LLM prompt sites in 7 modules. No more silent file drops from review diffs.
  • Review gate now runs in worktree cwd (not project root) so the agent can Read the changed files.
  • Correct Claude path mangling in set-usage fallback (underscore → dash).
  • _prioritize_diff_for_review always includes implementation files full; deprioritized files get a stat summary if budget is tight.
  • Review gate timeout raised 300s → 900s.

Sentinel stability (5× token reduction)

  • Explicit DO NOT poll between background polls instruction in the sentinel skill. Validated on minishop0411: foundation-setup cache reads dropped from ~105M to ~24M.
  • Supervisor tracks _manually_stopped to prevent auto-restart after a user-initiated stop.

Branch detection

  • Centralized detect_default_branch() in subprocess_utils — tries origin/HEADshow-ref mainshow-ref master.
  • Dispatcher, verifier, engine all use the central helper. No more hardcoded main references.
  • Root-commit merge-base fallback for new repos where no main branch exists yet.

Orchestration safety

  • monitor_loop refuses to start if state is already done (prevents dispatching merged changes when sentinel restarts).
  • Stale process cleanup uses dir + os.sep suffix match to prevent prefix collision (e.g. foo vs foobar).
  • SIGTERM stale processes before worktree removal.

Web module templates

  • Pre-scaffold components.json, src/lib/utils.ts, shadcn deps (clsx, tailwind-merge, lucide-react, etc.) so consumer projects don't need shadcn init.
  • Auth middleware rule: use getToken from next-auth/jwt (edge-safe), not auth() wrapper.
  • Role field required on User model.
  • useSearchParams + Suspense rule for Next.js 15.
  • Testing rule: use waitForURL for client-side nav assertions.
  • Prisma consent env var (PRISMA_USER_CONSENT_FOR_DANGEROUS_AI_ACTION) set in E2E global setup + web profile gate env.

Web dashboard

  • Auto-follow mode — checkbox in change detail log toolbar. Auto-selects the running change, switches to the latest session as new ones appear, jumps to failing gate sub-tab on fixing step. Persists in localStorage.
  • Sessions tab now aggregates from project + all change worktrees (no more filter-by-selected-change).
  • Screenshots served from project/worktree paths (not hardcoded e2e-runs).
  • Claude session path mangling fixed for underscored project names.

CLI + manager

  • set-project init now POSTs to the manager API automatically so the project appears in the UI without a manual registration step.

Activity timeline

  • Per-window drilldown aggregates for implementing spans.
  • Live-extends spans for active changes.
  • Hook-overhead category for spec-verify/build patterns.

Validation

End-to-end validated on minishop0411 — 6/6 changes merged via integration gates (no manual merges), 70M total cache reads across all changes (5× reduction from prior run where a single change consumed 100M+ due to sentinel polling).

Full changelog

95 commits since v1.5.0. See git log v1.5.0..v1.6.0 for the complete list.

v0.3.0 — Sessions Fix, Path Mangling, Manager Auto-Registration

Choose a tag to compare

@tatargabor tatargabor released this 10 Apr 18:56

v0.3.0

Fixes

  • Sessions tab now shows all sessions — aggregates project-level + all change worktree sessions (previously only showed the selected change's sessions)
  • Fix Claude path mangling_claude_mangle now replaces underscores with hyphens, matching Claude CLI behavior. Projects with _ in their path were invisible to the dashboard.
  • set-project init auto-registers with the manager API — no more systemctl --user restart set-web needed after registering a new project
  • "LLM Wait" → "LLM Work" — activity view label now correctly reflects that this is active LLM processing time

Harvest

  • 3 rule adoptions from craftbrew-run-20260408 + 20260409

Full Changelog: v0.1.0-alpha...v0.3.0

v0.1.0-alpha — Early Alpha Release

Pre-release

Choose a tag to compare

@tatargabor tatargabor released this 09 Apr 21:44

v0.1.0-alpha — Early Alpha Release

Status: Early alpha. Functional for experimentation, not for production workloads.

The point of this release is to get set-core into other people's hands. It works end-to-end today — spec in, merged features out — but it has rough edges. The sentinel auto-recovers from most of them.

What works today

  • Full orchestration loop: spec → digest → plan → parallel agents in git worktrees → quality gates → merge
  • OpenSpec workflow: every change has a proposal, design, spec, and task list before any code is written
  • Web project type (--project-type web --template nextjs): Next.js 15 + Prisma + NextAuth v5 + Playwright + shadcn/ui
  • Web dashboard at localhost:7400: real-time gate progress, activity timeline, per-change breakdown, logs, issue tracking, test screenshots
  • Sentinel supervisor: autonomous bug investigation, automatic change re-dispatch, orphan recovery
  • Multi-change parallel execution with configurable max_parallel
  • 7 integration gate types: build → test → e2e → review → rules → spec-verify, each with retry budgets
  • Design pipeline: design-brief.md + design-system.md → per-change design.md with scope-matched visual tokens
  • Session resume across dispatcher retries — warm Claude cache, keeps token cost down
  • Consumer project diagnostics via set-harvest
  • Developer memory — hook-driven, shared across worktrees, survives sessions

Reference run: CraftBrew (12-change webshop)

Metric Value
Changes planned 14
Changes merged 12/14 (86%)
Human interventions 0
Wall clock time ~9h 25m
Gate retries (self-healed) 30+
Playwright E2E tests 100+ across changes
Total tokens 926M (921M cached)

Quick start

git clone https://github.com/tatargabor/set-core.git
cd set-core && ./install.sh

See docs/guide/quick-start.md for the full walkthrough.

Known issues

See docs/release/alpha-release.md for the full list of known issues, workarounds, and what's not yet implemented. Key items:

  • ~15% change failure rate on large plans (12+ changes) — improving with each template harvest
  • Parallel changes can miss cross-cutting integration points (e.g., navigation links between pages built by different agents)
  • systemctl --user restart set-web kills running agent loops (cgroup issue) — don't restart mid-run

License

MIT — See LICENSE for details.

Website: setcode.dev · FAQ: setcode.dev/faq.html

v1.5.1 — shadcn/ui Enforcement, AC Coverage Fixes, Updated Docs

Choose a tag to compare

@tatargabor tatargabor released this 07 Apr 07:04

v1.5.1 — shadcn/ui Enforcement, AC Coverage Fixes, Updated Docs

Patch release with shadcn/ui enforcement fixes, AC-ID coverage binding bug fixes from run38 analysis, fresh screenshots, and the Hungarian presentation.

Fixes

  • shadcn/ui not enforced — 3 root causes fixed: planner now enforces shadcn when components.json present, deploy-shadcn.sh path resolution uses SCRIPT_DIR, conventions added to craftbrew and minishop scaffolds
  • AC-ID coverage binding — 4 bugs fixed from run38 analysis (scenario tag matching, REQ-ID binding, test case classification)
  • Context tab screenshot — moved to optional list (requires LLM call data)

Features

  • shadcn overlay for all scaffolds — shared deploy helper, opt-in via flag
  • Design bridge in profile system — extracted from core into ProjectType ABC

Docs

  • Hungarian presentation (docs/presentation/) — Marp-based, 6 pillars walkthrough, flow diagrams, MiniShop E2E demo, lessons learned, roadmap. PDF + PPTX exports included.
  • Refreshed screenshots — 15 dashboard tabs + 11 CLI commands recaptured from micro-web-run38 (TUI redesign, LLM call log, token Phase column visible)
  • Presentation updates — 6 pillars framework (SPECIFY, DECOMPOSE, EXECUTE, SUPERVISE, VERIFY, LEARN), state machine diagram, gradual escalation flow, "works everywhere" section (greenfield/brownfield/isolated unit)

Stats

  • 8 commits since v1.5.0
  • All screenshots refreshed (no gitchen references)
  • Presentation: ~30 slides, PDF + PPTX

Full Changelog: v1.5.0...v1.5.1