# gsd-hermes v1.4.0 — Upstream Sync to get-shit-done cd057255

Release date: 2026-04-25
Package: `gsd-hermes@1.4.0`
Upstream GSD base: `upstream/main@cd057255`
Previous package: `gsd-hermes@1.3.0`
Previous upstream base: `upstream/main@0a049149`

## Summary

`gsd-hermes@1.4.0` publishes the upstream alignment that merged `gsd-build/get-shit-done` through `upstream/main@cd057255` into the Hermes downstream package line.

This release is intended for users who want the latest synced GSD workflow/SDK fixes while continuing to install and run through the Hermes-focused `gsd-hermes` package.

## Highlights

- Syncs 25 upstream commits after the `v1.3.0` base.
- Preserves the independent `gsd-hermes` package identity and Hermes runtime adapter.
- Keeps Hermes command discovery compatible with hyphenated command frontmatter while importing upstream colon-form Claude/Qwen behavior where upstream owns the path.
- Adds upstream tarball guardrails that build SDK dist artifacts and verify `sdk/dist/cli.js` ships in the package.
- Imports upstream SDK/query regression coverage for config schema parity, state mutation, roadmap handling, sub-repo root resolution, init progress precedence, and workflow-agent skill consistency.

## Notable fixes from upstream

- Per-agent model overrides now propagate through Codex/OpenCode transports.
- Workstream-aware query dispatch and root state synchronization are improved.
- ROADMAP checkbox precedence and milestone state/frontmatter mutation are hardened.
- `gsd-sdk query` failures are surfaced instead of silently swallowed.
- Installer behavior fails fast when SDK dist artifacts are missing rather than attempting unsafe nested npm installs.
- Tarball publication now validates that bundled SDK dist files are present before publishing.

## Hermes-specific compatibility retained

- Hermes install remains available through:

```bash
npx gsd-hermes --hermes --global
```

- Stable package install after this release:

```bash
npm install -g gsd-hermes@latest
# or
npx gsd-hermes@latest --hermes --global
```

- Hermes-owned skill frontmatter remains command-discoverable by Hermes. Upstream-owned Claude/Qwen colon-form paths remain tracked separately.
- Model/runtime routing remains strict: configured per-agent model bindings should run as configured or fail with actionable diagnostics, not silently fall back.

## Verification

Before release preparation:

- `git diff --check`
- `node --test tests/bug-2649-sdk-fail-fast.test.cjs tests/stale-colon-refs.test.cjs`
- `node --test tests/bugs-1656-1657.test.cjs tests/hermes-install.test.cjs tests/hermes-core-workflow.test.cjs tests/hermes-lifecycle.test.cjs`
- `npm run test:hermes`
- `npm test` — 5591 tests passed
- Pull request CI for the upstream sync passed before merge.

The formal release workflow additionally runs `npm ci`, `npm run test:coverage`, `npm run build:sdk`, `scripts/verify-tarball-sdk-dist.sh`, `npm publish --dry-run --tag latest`, npm publish verification, and GitHub Release creation.

## Links

- Upstream sync PR: https://github.com/pingchesu/gsd-hermes/pull/26
- Upstream sync tracking issue: https://github.com/pingchesu/gsd-hermes/issues/27
- Upstream repository: https://github.com/gsd-build/get-shit-done
