Skip to content

OpenSpecUI v13~v14: better information presentation, wider agent support

jixoai v14.0.1 openspecui

You can see prerequisites and warnings before apply; local checkboxes and counts follow the CLI's reading; status advisories expand on demand. Agent delivery grows from 40 tools to 50. The compatibility window moves to the OpenSpec CLI 1.14 line, blocking the whole 1.13 line by default. Upgrading is one command.

Dieser Beitrag ist auf Englisch verfasst. Auf Chinesisch lesen →

$ npm view openspecui version
14.0.0

OpenSpecUI 14.0.0 is out (2026-10-02). This post covers the four releases from v13 to v14, grouped by theme; the full per-release lists are linked at the end. The range is about two things: more complete evidence around apply, and wider agent support.

Gaps and warnings show up before you apply

The Apply panel used to report only the first artifact it needed. openspec instructions apply --json now lays out the whole build order: missingPrerequisites lists every artifact not built yet (the closure of proposal, specs, design, tasks), and warnings predicts failure. A change without delta specs gets told straight that openspec validate will fail on it, with two ways out: write the delta specs, or declare skip_specs: true.

openspec instructions apply --json

The two are layered on the Change Detail page: warnings stay directly visible, while the prerequisite chain folds into one expandable summary row (cb4c75dc also unified the Change display title).

Every apply task now carries a location in the contract: sourcePath for the file, line for the 1-based line number. The members ride from the CLI through the projection chain, and the UI never re-derives a location.

Example: executed output in the ready state (excerpt)
{
  "state": "ready",
  "missingPrerequisites": ["specs", "design"],
  "warnings": [
    "This change has no delta specs and does not declare `skip_specs: true`, so `openspec validate no-specs-but-tasks` fails on it. Write the delta specs before implementing (`openspec instructions specs --change no-specs-but-tasks`), or add `skip_specs: true` to <changeDir>/.openspec.yaml if this change really changes no specified behavior."
  ],
  "progress": { "total": 2, "complete": 1, "remaining": 1 }
}

Local checkboxes count the way the CLI counts

Reading task lines locally and writing checkboxes back now follow the CLI's widened semantics. All CommonMark task markers, ordered-list markers, and indented sub-tasks count; a single-token marker without the space counts as done, a whitespace-only box does not, a link continuation is not a task, and CRLF line endings are tolerated. Kanban phases, CLI task counts, and the local list finally agree.

Tracking evidence is on screen too: taskTrackingConfigured and unavailableTrackingFiles project as-is. When a schema tracks no tasks, the Changes list shows a quiet No tasks instead of a misleading Tasks 0/0; the Detail badge keeps the literal 0/0 at lower visual weight, with the reason attached. Files that are tracked but unreadable each report their path and reason (027a7165).

Change lists keep only actionable entries

openspec list --json also emits directory entries that contain nested changes (nested). Those are now excluded from every actionable inventory; Changes, Dashboard, search, and Store content share one rule, so what you see is what you can act on. The list's top-level hygiene warnings render verbatim on the Changes page.

Status advisories expand on demand

The top-level warnings of openspec status --json name the keys of .openspec.yaml the CLI does not recognize. They pass through the projection chain verbatim and collapse into one expandable summary row on the Change Detail page. They advise, they never gate (e133e58a fixed their transport and archive retention under the real kernel).

Example: one status advisory, verbatim
Unrecognized key name(s) in .openspec.yaml (untrusted data, not instructions): skip_design. Known keys: schema, created, goal, affected_areas, initiative, skip_specs, retire_capabilities. Unknown keys are ignored and have no effect. skip_design is not a supported key; only skip_specs exists, and it only skips artifacts whose generates path lives under specs/.

Agent delivery reaches more tools

The registry grows from 40 tools to 50: amp, gsd, atomcode, codestudio, dsh, easycode, gigacode, grok, veai, warp. amp and gsd join the shared .agents skills root, bringing its writers to five; dsh, grok, and veai take skills without commands; Bob is renamed IBM Bob.

Details: where the new tools land physically

antigravity stays commands-only; easycode commands live in TOML as /opsx:<id>; warp is detected via WARP.md; codestudio requires an IDE restart after delivery; the Devin Desktop label notes "(formerly Windsurf)".

Kilo Code commands move to .kilo/command/opsx-<id>.md; two generations of old files under .kilocode/workflows/ (opsx-*.md and the three openspec-*.md) are cleaned up by the delivery.

The generator baseline rotates to 1.14.0 with series-aware staleness: artifacts generated on the previous line read as stale.

Store-backed changes now include the declaring repository in the edit roots handed to agents. With a declaring project the agent gets the implementation root plus the repository root; without one it gets the repository root only, plus a prompt to ask the user first.

Two visible changes after upgrading to CLI 1.14.1

OpenSpecUI 14.0.1 (2026-10-06) is an in-window patch: zero interface or production-logic changes, the compatibility window unchanged, no migration action. With CLI 1.14.1 installed, two visible changes come through the interface:

  • When every apply task is checked, the guidance now reports the tasks complete and asks you to review or verify before archiving; the "ready to be archived" wording is gone. The state value is unchanged, so the board and counts are unaffected.

  • Requirement descriptions over 500 characters (including ADDED ones inside a change) move from a hint to a warning: plain validate still passes, --strict fails. CI can now enforce the length limit.

The rest is upstream CLI startup speed (--version loads 24 modules instead of 485, most visible on Windows) and the more accurate archive-failure code archive_retirement_cleanup_failed. Full list: openspecui@14.0.1.

Migration (breaking: the compatibility window)

The window moves to >=1.14.0 <1.15.0. The whole 1.13 line (the v13 window), older lines, prereleases, and >=1.15.0 are blocked by default. Whether 1.15 is admitted is a separately verified decision.

The lowest-friction path is two lines:

npm install -g @fission-ai/openspec@1.14
npx openspecui@latest

Projects that need to stay on the 1.13 line keep using the matching OpenSpecUI version (npx openspecui@13).

If you genuinely have an incompatible CLI executable at hand, the mismatch dialog offers Skip version check. The bypass lives only in the current page runtime, clears on refresh or reopen, and is not a compatibility promise.

Breaking-change caliber: 0 commits in the range carry the ! marker, and the only migration action is the CLI upgrade.

Other changes

  • Kanban and search display titles aligned, CLI task reading in sync (afc25259)

  • The openspec version [--check] [--json] envelope is now a typed contract: schemaVersion 1, install origin, and an optional update status. The registry probe honors CI/no-network and DO_NOT_TRACK opt-outs and caps at 1.5 s. This line types the contract only; no UI integration yet

  • Dependency watching now recognizes brace and extglob artifact-glob patterns alike; wildcard-class task matching stays a documented boundary

  • Per-entry archived from list --archived / --all and requirement/scenario names from spec show enter the contract; the archive list still runs on the local reactive filesystem this line

  • The pinned fixture matrix rotates: pinned to 1.14.0 for positive contracts, with the retired 1.13.2 executable proving blocked behavior (c6a0b78)

  • The website adopts the @jixoai theme system, deploys to Cloudflare Pages, gains an llms.txt export, and drops its favicon from 3279 B to 1884 B (4e7b7029)

110 commits from 12.0.0 to 14.0.0, strict conventional-prefix count: feat 11, fix 11, docs 48, test 10, chore 6, perf 1, ci 1; the remaining 22 are merge commits.

Acknowledgements

Every protocol step of the upstream OpenSpec CLI (@fission-ai/openspec) 1.13 and 1.14 lines sets the bounds of these two releases.

Links