Skip to content

feat: OpenSpecUI 14 — adapt to OpenSpec CLI 1.14.x (target-openspec-cli-114-line) - #297

Merged
Gaubee merged 12 commits into
mainfrom
target-openspec-cli-114-line
Oct 1, 2026
Merged

Gaubee merged 12 commits into
mainfrom
target-openspec-cli-114-line

Conversation

@Gaubee

@Gaubee Gaubee commented Oct 1, 2026

Copy link
Copy Markdown
Contributor

OpenSpecUI 14 — adapt to OpenSpec CLI 1.14.x (target-openspec-cli-114-line)

Single-series window: >=1.14.0 <1.15.0; stable 1.14.x is current/recommended; 1.15 is not
pre-claimed. CLI <1.14.0 (including the whole 1.13 v13 window), prereleases, and >=1.15.0 are
blocked by default.

Change: openspec/changes/target-openspec-cli-114-line/ (five Codex review rounds 6.2 → 7.4 → 7.8 →
8.1 → 9.1 GO before implementation). Evidence: references/openspec-1.14.0-report.md (pin v1.14.0,
94ca9c1e).

Protocol surfaces typed end-to-end

  • openspec version [--check] [--json] — schemaVersion-1 envelope, no network probing.
  • instructions apply task sourcePath/line — present whenever tasks exist; fixtures assert real
    1.14 output; the 1132 tracking regressions stay.
  • list --archived/--all — per-entry archived is the one new list member (nested/list
    warnings are 1.13.1 carry-forward; fixtures migrate only).
  • status advisory warnings — single + batch entry shapes, batch never synthesizes a top-level
    array; preserved verbatim through the kernel projectWorkflowStatus explicit rebuild on both paths
    (the decode .passthrough() is stripped at that rebuild — pre-fix red captured), then rendered on
    the Change Detail direct plane as a collapsed summary row (role=status, openspec status
    attribution, in-place verbatim expansion) that never gates actions and never synthesizes state.
  • show --type spec --json — requirement/scenario name typed and asserted on real output.
  • store-backed allowedEditRoots two-branch action context — declaring project present:
    [implementationRoot, storeRoot]; absent: [storeRoot] + ask-user constraint. Both branches
    asserted executably against a real store fixture.

Agent registry

Series rotates to '1.14' with ten new tools: amp and gsd join the shared .agents skills root —
SHARED_AGENTS_SKILLS_OWNER_CANDIDATES widens to the five upstream 1.14 writers (antigravity stays
commands-only) — plus atomcode, codestudio, dsh, easycode, gigacode, grok, veai, warp, and IBM Bob.
Generator staleness rotates to the 1.14.0 baseline with the historical provenance union retained.

Fixture matrix

Pinned openspec-cli-114 (1.14.0) proves accepted contracts: 11 migrated suites (git-mv history
kept) + v14-version-report + v14-change-list-inventory. The retained openspec-cli-113 (1.13.2)
boundary suite proves the just-retired line rejected — identity, unsupported classification, and
1.14-only members absent (never asserting v13-era members absent). openspec-cli-112 stays as an
alias for its two historical consumers while the v12 boundary suite and both v12/v13 helpers retire.
Mutation red recorded (helper bins → 113, provenance assertion fails, restored).

Delivery

Changeset major; repository README (en/zh) version table + v13 archived snapshots + CLI package
README per the release README law; CLAUDE.md session pointer; AGENTS.md architecture decision and
submodule pin rotation.

Verification

  • Focused gates per slice (red → green) recorded in loop/implementation.md.
  • Full local gates: format:check, lint:ci, typecheck, test:ci, test:browser:ci.
  • Browser acceptance walkthrough remains Owner-owned per the acceptance boundary law.

GitHub issues related to the 1.14 line will be surveyed after CI settles.

Gaubee added 11 commits October 2, 2026 02:26
…ence report, change artifacts

CP0 of the OpenSpecUI 14 line: references/openspec pinned to v1.14.0
(94ca9c1e), executed-CLI evidence report, and the validated change (v14
admission window >=1.14.0 <1.15.0; version-report / change-list-inventory /
status-warnings / apply-task-source-location contracts; ten registry entries
with the widened shared-.agents root; fixture rotation with boundary
retention). Baseline notes record the already-delivered 1132 patch line
(kilo root, apply tracking, glob parity) so it is not repeated.
…to the v14 plan

B1 show spec names join the six-surface contract set with a Spec Requirement
Names delta and show-suite fixture scope. B2 the kernel projectWorkflowStatus
rebuild (single + batch) is named as the owner that strips status warnings
today; red is verbatim-end-to-end through the kernel. B3 both store edit-root
branches gain a normative contract and executable fixtures. B4 the boundary
executable unifies to the just-retired 1.13.2 line; v12 boundary artifacts
retire. B5 the matrix becomes a file-level list (11 migrate + 2 new + boundary)
matching checkpoints. B6 inherited contradicting scenario titles recorded with
a proposed spec-hygiene follow-up. B7 the full verbatim skip_design warning is
re-captured and embedded.
…s retention, title-identity note

B1: the boundary suite asserts 1.13.2 identity + unsupported + 1.14-only
members absent (never v13-era absence); residual 1.13.0 wordings synced.
B2: the openspec-cli-112 alias stays for its two historical generator test
consumers; retirement narrows to the v12 boundary suite + helper.
B3: the inherited 'Accept ...' titles get an explicit identity note in the
requirement intro (bodies normative; rename mechanism proposed separately).
B4: report owner map gains the show-names row; list row/count wording unified
to six surfaces with archived as the one new list member.
…y and report single-source sync

C1: the Round-B disposition now describes the real diff (requirement-level
identity note; inherited bodies unchanged; rename mechanism Owner-gated and
non-blocking). C2: the report protocol tree marks nested/list-warnings as
1.13.1 carry-forward (fixtures migrate only); the fixture owner map keeps the
openspec-cli-112 npm alias for its two historical consumers while retiring
the v12 boundary suite and helper; the broken list sentence rewritten.
…ply)

The Round-C correction script aborted on a later assertion before write(),
so the protocol-tree carry-forward line and the list-sentence rewrite never
reached the file while the disposition claimed them. Re-applied and verified
in place: the 1.13.1 carry-forward note is in the delta tree, the stale
list --json row is removed, and the list paragraph is a complete sentence.
…y to CLI 1.14

Batch A of the target-openspec-cli-114-line change:

- Slice 1: openspec-compat MAJOR 14 window (>=1.14.0 <1.15.0) with
  diagnose/setup-example mirror rotation and boundary reds recorded.
- Slice 2: typed 1.14 CLI contract chain — apply-task sourcePath/line,
  spec requirement/scenario names, status warnings (single + batch entry
  shapes), list entry archived, version envelope schema; kernel
  projectWorkflowStatus now carries warnings through its explicit
  ChangeStatusSchema rebuild on both paths (decode passthrough is
  stripped there), with the pre-fix red captured in the new
  opsx-kernel-status-warnings suite.
- Slice 3: agent registry series 1.14 with ten new entries (amp, gsd
  shared .agents root, atomcode, codestudio, dsh, easycode, gigacode,
  grok, veai, warp, IBM Bob label); integrator widened
  SHARED_AGENTS_SKILLS_OWNER_CANDIDATES to the five upstream 1.14
  .agents skills writers (antigravity stays commands-only).
- Server tool-subscription install assertion rotated 1.13 -> 1.14.

Focused gates: core 6 files 114 passed, registry trio 93 passed,
server trio 27 passed, scripts root 75 passed, per-package typecheck 0.
…arnings surface, and cross-package alignment

Batch B of the target-openspec-cli-114-line change:

- Slice 4: status warnings render on the Change Detail direct plane —
  collapsed advisory summary row (role=status, openspec status
  attribution) with in-place verbatim expansion; absent field degrades
  with zero synthesis and never gates actions; static mode shares the
  projection and renders nothing.
- Slice 5: pin guards rotated to v1.14.0 (94ca9c1e) with recorded red;
  openspec-cli-114 alias added (shim 1.14.0, lockfile +23 lines) while
  openspec-cli-112 stays for its two historical consumers; 11 v13
  suites migrated (apply keeps 1132 tracking regressions and adds
  sourcePath/line; default-store adds store edit-roots both branches;
  show adds spec requirement/scenario names) plus version-report and
  change-list-inventory suites; 1.13.2 boundary suite proves the
  retired line rejected with 1.14-only members absent; v13/v12 helpers
  and v12 boundary suite retired with clean orphan scan; mutation red
  recorded and restored.
- Slice 6: four alignment groups rotated (web compat copy, server
  evidence, web evidence, cli/scripts) — real reds recorded where
  literals rotated, constant-follow recorded elsewhere; production
  logic untouched.
- Lane hygiene: Batch A typed-fact annotations corrected to optional
  members; opsx-kernel-schemas-root fixture migrated off the retired
  v13 helper.

Integrator gates: core 18 files/91 tests, web 6 files/65 tests
(cross-slice change-view fixpoint closed), server 4 files, core+web
typecheck clean.
Slice 7 of the target-openspec-cli-114-line change plus full-gate residue:

- Changeset major x4 (core/server/web/openspecui) describing the 1.14 line.
- Repository README (en/zh): @^14 row, 1.15 non-pre-claim, v14 feature
  prose, @1.14 upgrade command, v13 archived snapshots; CLI package
  README scoped to the v14 release line (release README law).
- CLAUDE.md session pointer to openspec-1.14.0-report.md; AGENTS.md
  v14 architecture decision and submodule pin rotation.
- Full-gate residue: two capability-gated suites with hand-written
  version fixtures were outside every slice list and still modeled the
  v13 window — opsx-kernel-cli-projection.test.ts (batch/findings
  transport fell back to serial spawns, 7 real failures) and web
  change-diff-evidence.test.tsx (admitted 1.13.0 fixture rejected, 7
  failures). Both rotate to '1.14.0' admitted / '1.13.0' retired.

Gates: format:check, lint:ci, typecheck, test:ci green after the
rotation (first test:ci run also proved the pnpm -r recursion masks
later packages after a core failure — full re-run recorded).
…tion retention, real-kernel status-warnings transport, governance pin drift

Round-F of target-openspec-cli-114-line (Codex implementation review
7.8/10 REVISE), all three blockers fixed:

- F-B1: the opsx-change-list projection entry schema stripped the CLI
  `archived` fact at the PlanningCliProjectionDataSchema boundary. The
  member is now optional typed evidence with three-state assertions
  (--archived true, --all mixed false/true, default absent and never
  synthesized); the Server service reuses this schema so its boundary
  parse retains the member.
- F-B2: the promised Server-visible status-warnings mirror evidence now
  exists as a real-kernel transport suite — fake 1.14 executable ->
  real CliExecutor -> real OpsxKernel projectWorkflowStatus -> real
  PlanningCliProjectionService — asserting the verbatim skip_design
  warning on single opsx-status and batch opsx-status-list reads with
  clean-entry absence. Mutation red proven by removing the kernel copy
  (2 failed) and restoring.
- F-B3: Release README law and Pinned CLI clean-build law rotated to the
  v14 current line (full pinned SHA); research-plan README row @^14.

Focused gates: projection + kernel-warnings + service suites green,
core tsc clean.
@Gaubee
Gaubee merged commit edb00c7 into main Oct 1, 2026
7 checks passed
@Gaubee
Gaubee deleted the target-openspec-cli-114-line branch October 2, 2026 06:47
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant