github gsd-build/gsd-2 v2.41.0

latest releases: v2.82.0, v2.81.0, v2.80.0...
one month ago

Added

  • doctor: worktree lifecycle checks, cleanup consolidation, enhanced /worktree list (#1814)
  • web: browser-based web interface (#1717)
  • ci: skip build/test for docs-only PRs and add prompt injection scan (#1699)
  • docs: add Custom Models guide and update related documentation (#1670)
  • surface doctor issue details in progress score widget and health views (#1667)
  • cleanup: add ~/.gsd/projects/ orphan detection and pruning (#1686)

Fixed

  • skip web build on Windows — Next.js webpack hits EPERM on system dirs
  • include web build in main build command
  • fall through to prose slice parser when checkbox parser yields empty under ## Slices (#1744)
  • auto: verify merge anchored before worktree teardown (#1829)
  • auto: reject execute-task with zero tool calls as hallucinated (#1838)
  • also convert --import resolver path to file URL for Windows
  • use pathToFileURL for Windows-safe ESM import in verification-gate test
  • gsd: read depends_on from CONTEXT-DRAFT.md when CONTEXT.md is absent (#1743)
  • roadmap: detect ✓ completion marker in prose slice headers (#1816)
  • auto: reverse-sync root-level .gsd files on worktree teardown (#1831)
  • tui: prevent freeze when using @ file finder (#1832)
  • prevent silent data loss when milestone merge fails due to dirty working tree (#1752)
  • verification: avoid DEP0190 by passing command to shell explicitly (#1827)
  • state: treat zero-slice roadmap as pre-planning instead of blocked (#1826)
  • hooks: process depth verification in queue mode (#1823)
  • auto: register SIGHUP/SIGINT handlers to clean lock files on crash (#1821)
  • auto-dispatch discussion instead of hard-stopping on needs-discussion phase (#1820)
  • doctor: fix roadmap checkbox and UAT stub immediately instead of deferring (#1819)
  • auto: resolve pending unitPromise in stopAuto to prevent hang (#1818)
  • git: handle unborn branch in nativeBranchExists to prevent dispatch deadlock (#1815)
  • doctor: prevent cleanup from deleting user work files (#1825)
  • use realpathSync.native on Windows to resolve 8.3 short paths
  • detect and skip ghost milestone directories in deriveState() (#1817)
  • create milestone directory when triage defers to a not-yet-existing milestone (#1813)
  • add @gsd/pi-tui to test module resolver in dist-redirect (#1811)
  • surface unmapped active requirements when all milestones complete (#1805)
  • normalize paths in tests to handle Windows 8.3 short-path forms (#1804)
  • share milestone ID reservation between preview and tool (#1569) (#1802)
  • tui,gsd: tool-call loop guard + TUI stack overflow prevention (#1801)
  • validate paused-session milestone before restoring it (#1664) (#1800)
  • detect REPLAN-TRIGGER.md in deriveState for triage-initiated replans (#1798)
  • dispatch uat targets last completed slice instead of activeSlice (#1693) (#1796)
  • read depends_on from CONTEXT-DRAFT.md when CONTEXT.md absent (#1795)
  • worktree: sync root-level files and all milestone dirs on worktree teardown (#1794)
  • dashboard highlights UAT target slice instead of advanced activeSlice (#1793)
  • dispatch guard skips completed milestones with SUMMARY file (#1791)
  • ensureDbOpen creates DB + migrates Markdown in interactive sessions (#1790)
  • add require condition to pi-tui exports for CJS resolution
  • update integration test to match dependency-aware dispatch guard wording
  • use createRequire instead of bare require for lazy pi-tui import
  • update doctor-git test to match PR #1633 behavior change
  • increase resolveProjectRootFromGitFile walk-up limit from 10 to 30
  • include ensure-workspace-builds.cjs in npm package files
  • resolve extension typecheck errors in test files
  • resolve CI build errors from Wave 4+5 merges
  • return retry from postUnitPreVerification when artifact verification fails (#1571) (#1782)
  • hook model field uses model-router resolution instead of Claude-only registry (#1720) (#1781)
  • stop auto-mode immediately on infrastructure errors (ENOSPC, ENOMEM, etc.) (#1780)
  • add missing milestones/ segment in resolveHookArtifactPath (#1779)
  • break needs-discussion infinite loop when survivor branch exists (#1726) (#1778)
  • tear down browser sessions at unit boundaries and in stopAuto (#1733) (#1777)
  • rebuild STATE.md and reset completed-units on milestone transition (#1576) (#1775)
  • resolve pending unit promise on all exit paths to prevent orphaned auto-loop (#1774)
  • closeout unit on pause and heal runtime records on resume (#1625) (#1773)
  • call selfHealRuntimeRecords before autoLoop to clear orphaned dispatched records (#1772)
  • dispatch guard uses dependency declarations instead of positional ordering (#1638) (#1770)
  • add configurable timeout to await_job to prevent indefinite session blocking (#1769)
  • parallel: restore orchestrator state from session files and add worker stderr logging (#1748)
  • prevent getLoadedSkills crash and auto-build workspace packages (#1767)
  • session lock multi-path cleanup and false positive hardening (#1578) (#1765)
  • robust node_modules symlink handling to prevent extension loading failures (#1762)
  • lazy-load @gsd/pi-tui in shared/ui.ts to prevent /exit crash (#1761)
  • validate worktree .git file and fix metrics toolCall casing (#1713) (#1754)
  • verify implementation artifacts before milestone completion (#1703) (#1760)
  • make task closeout crash-safe by unchecking orphaned checkboxes (#1650) (#1759)
  • preserve milestone branch on merge-back during transitions (#1573) (#1758)
  • write crash lock after newSession so it records correct session path (#1757)
  • handle symlinked .gsd in git add pathspec exclusions (#1712) (#1756)
  • guard worktree teardown on empty merge to prevent data loss (#1672) (#1755)
  • resolve symlinks in doctor orphaned-worktree check (#1715) (#1753)
  • silence spurious extension load error for non-extension libraries (#1709) (#1747)
  • reset completion state when post_unit_hooks retry_on signal is consumed (#1746)
  • route needs-discussion phase to showSmartEntry, preventing infinite /gsd loop (#1745)
  • roadmap: parse table-format slices in roadmap files (#1741)
  • extract milestone title from CONTEXT.md when ROADMAP is missing (#1729)
  • gsd: harden auto-mode telemetry — metrics idempotency, elapsed guard, title sanitization (#1722)
  • gsd: make saveJsonFile atomic via write-tmp-rename pattern (#1719)
  • gsd: syncWorktreeStateBack recurses into tasks/ subdirectory (#1678) (#1718)
  • prevent parallel worktree path resolution from escaping to home directory (#1677)
  • add web search budget awareness to discuss and queue prompts (#1702)
  • harden auto-mode against stale integration metadata and Windows file locks (#1633)
  • autocomplete: repair /gsd skip, add widget/next completions, add discuss to hint (#1675)
  • search: keep loop guard armed after firing to prevent infinite loop restart (#1671) (#1674)
  • worktree: detect default branch instead of hardcoding "main" on milestone merge (#1668) (#1669)
  • remove duplicate TUI header rendered on session_start (#1663)
  • worktree: recurse into tasks/ when syncing slice artifacts back to project root (#1678) (#1681)

Changed

  • split shared/mod.ts into pure and TUI-dependent barrels (#1807)
  • replace hardcoded /tmp paths with os.tmpdir()/homedir() (#1708)
  • ci: reduce pipeline minutes with shallow clones, npm caching, and exponential backoff (#1700)
  • split auto-loop.ts monolith into auto/ directory modules (#1682)

Don't miss a new gsd-2 release

NewReleases is sending notifications on new releases.