Repository navigation
feat: OpenSpecUI 15 — adapt to OpenSpec CLI 1.15.x (>=1.15.0 <1.16.0) - #312
Merged
Merged
Conversation
…nce report, change artifacts
…four MODIFIED deltas, full audit rules
… 1.15.0 report owner map
…e (target-openspec-cli-15-line Slice 1) Rotate the ten compat constants to the single-series >=1.15.0 <1.16.0 window (TARGET_MAJOR 15, TARGET/SUPPORTED_SERIES 1.15, MIN/TARGET_MIN/RECOMMENDED_MIN 1.15.0, NEXT_SERIES_MIN 1.16.0, ACCEPTED/RECOMMENDED_RANGE >=1.15.0 <1.16.0, REFERENCE_TAG_PATTERN v1.15.*) and admit the 1.15 standalone distribution in the CliVersionSchema install.scope closed enum beside the four historical values. Rotate the two Keep-in-sync mirrors (diagnose-cli-runner.mjs, setup-example.ts) with their mirror-consistency test. Red->green evidence: CliVersionSchema standalone decode failed on the old enum (Invalid enum value, received 'standalone') then passed; the rewritten compat classification suite failed 7 cases on the old constants (literal anchors, 1.15-current, retired-window copy, below/above range, mismatch naming, 1.15 capability grant, no-capability set) then passed 10/10; mirror suite failed 3 mirror-consistency cases on rotated core then passed 3/3. Known expected reds deferred to Slice 4: workflow.test.ts capability-argv cases still sampling 1.14.0 as an admitted session (3 failures).
…-cli-15-line Slice 2)
Pure series rotation with zero upstream tool changes (AI registry byte-identical;
1.15.0 adds no tools): AgentCliSeries '1.15', '1.14' joins the provenance history
union with the 14/15 ordering cases, parseOpenSpecCliSeries admits only minor 15,
and every physical fact (ten 1.14 entries, Kilo command-path rotation, provenance
gates) carries forward. PINNED_AGENT_GENERATOR_VERSION rotates to 1.15.0 and the
replacement label to the 1.15 line.
Helpful-green rewrites: registry selection now proves selectAgentDeliveryRegistry
('1.15.0') returns the full inventory (the old suite asserted the 1.15 gap), the
1.14 classification cases move to the retired-lines history ('1.14.3' joins the
below-range set), and the parse matrix admits 1.15.x while prerelease/2.0.0/
garbage/null stay empty. Server projection gains the retired-1.14 boundary
(1.14.3 -> [] agreeing with the Core selector) and the admitted-1.15 session
(1.15.0 -> full inventory, value-sequence equality with the selector; the service
strips internal provenance fields before publishing); router fixture session
rotates to 1.15.0.
Green gates: core registry/tool-init-state/policy/compat battery 99/99, server
projection+router 20/20, core+server+web typechecks exit 0. Known expected reds
deferred to Slice 4: web admitted-session fixtures still sampling 1.14.0 as the
current line (35 failures in 5 files, capability/gate-copy class) and the three
workflow.test.ts capability-argv cases from Slice 1.
…c-cli-15-line Slice 3) - Rename the 13 official-cli-v14 matrix suites to official-cli-v15 (git-tracked renames R081-R097); imports rotate to the new v15 helper and identity literals/describe titles rotate to the pinned 1.15.0 executable. - Add __tests__/official-cli-v15-fixtures.ts (PINNED_OPENSPEC_V15_VERSIONS = ['1.15.0'], bins -> openspec-cli-115) mirroring the v14 helper surface. - Keep official-cli-v14-fixtures.ts at 1.14.3 as the boundary-only service; header intent rewritten for the boundary role. - package.json: add openspec-cli-115 (@fission-ai/openspec@1.15.0), retire openspec-cli-113 with its 1.13.2 negatives; 114 stays @1.14.3. - Rewrite the boundary suite as official-cli-v14-boundary-fixtures.test.ts: 1.14.3 identity, v15-gate unsupported classification, 1.15-only standalone surfaces absent on the real binary (update --dry-run unknown option, install unknown command, both exit 1 with empty stdout), and the v14-era members asserted present (LocatedTask sourcePath/line, status warnings advisory, show-Spec names, working list --archived). - Move the 14th helper consumer (opsx-kernel-schemas-root) to the v15 helper with local bins key 1.15.0; update the stale fixture-role notes in tool-init-state/agent-command-content to point at the v15 suite. - CP1 observation: renamed matrix ran 13 files / 47 tests green on 1.15.0 with zero contract reds before any contract assertion changed (the three 1.14.2-era semantic fixtures - x- keys, brace-depth guard, unapplied-content warning - all survive on 1.15.0). - Audit: zero code references to the v14 helper outside the boundary suite and zero live openspec-cli-113 references.
…ndow (target-openspec-cli-15-line Slice 4) - Admitted-session samples rotate to 1.15.0 across core/server/web; the kernel capability-transport fixture pair follows the d0af507 precedent (admitted 1.15.0 / retired 1.14.0) and the two silent-serial-fallback fakes now report 1.15.0 so the batch transport is genuinely exercised; capability-gated expectations restored (capabilities115 admitted, 114 first below-window refusal); cli-health-gate boundary reworked (admitted 1.15.x, retired 1.13/1.14 window, prerelease 1.15.0-rc.1, next-series block 1.16.0+). - Pin guards rotate to 8e0288df / 1.15.0: prepare-openspec-reference, the core upstream-contract-regression, the server root-context cold-start integration, and the w2 project-binding playwright guard (found by content grep — the file name carries no version). tool-subscription-router now derives its npm install spec from OPENSPEC_CLI_TARGET_SERIES instead of a hardcoded @1.14 literal. - cli-validate-findings-router range copy rotates to >=1.15.0 <1.16.0. - Docs: CLAUDE.md session pointer to the 1.15.0 report; AGENTS.md pin line plus the 2026-10-25 v15 architecture decision; README.md/README-zh.md re-faced for the 1.15 line with byte-exact archives README-1.14.0.md/README-zh-1.14.0.md (c6a0b78 precedent); packages/cli/README.md re-scoped to v15 per the release README law; settings.tsx install-stream comment rotated (comment-only). - Major changeset x4 (fixed-group propagation); release notes point standalone CLI users at openspec install / openspec update. - Gates: official-cli-v15 matrix + pin regression 54 green; boundary + rotated core suites 185 green; server rotated suites 187 green; web rotated suites 75 green; core/server/web typechecks green; prettier clean on the explicit set.
…t openspec update (Round-C P1-2)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
OpenSpecUI 15 opens a new single-series admission window for OpenSpec CLI
>=1.15.0 <1.16.0(one-line-per-series cadence; new major). CLI<1.15.0(including the whole 1.14 v14 window), prereleases, and>=1.16.0stay blocked by default.CliVersionSchema.install.scopegains'standalone'beside the four historical values (1.15.0 legally emits it; without it a standalone install'sversion --jsonfails the whole decode).update --dry-run/--json(B1: needs a typed contract that does not exist) andopenspec install(B2: standalone-aware update-method display deferred like the v14version --checkprecedent). Standalone CLI installs are installed and upgraded withopenspec install(upstreamversion-check.tsstandaloneUpgradeCommand()reinstalls in place);openspec updateremains the project instruction-file updater.'1.15'with every 1.14 physical fact carried forward (upstream AI_TOOLS is byte-identical — no new/removed tools); generator staleness baseline rotates to 1.15.0 with the historical provenance union retained.openspec-cli-115(1.15.0) positive line;openspec-cli-114(1.14.3) becomes the below-admitted boundary (identity, unsupported classification,update --dry-rununknown option /installunknown command — both verified on the real binary);openspec-cli-113retires; 112/111 stay as historical generator-evidence facts. CP1 observation: the renamed matrix ran 47 tests against the 1.15.0 binary with zero contract reds (the 1.14-era brace-depth / x-keys / unapplied-content semantics all survive).tool-subscription-routernow derives its version string fromOPENSPEC_CLI_TARGET_SERIES; four pin guards rotate (prepare script, upstream-contract-regression, cold-start, w2 — the w2 script has no version in its filename and was caught by content-only grep).README-1.14.0.md/README-zh-1.14.0.md;packages/cli/README.mdre-scoped to the v15 line per the Release README law.@openspecui/core,@openspecui/server,@openspecui/web,openspecui), fixed-group propagation.Evidence map:
references/openspec-1.15.0-report.md(pinv1.15.0,8e0288df); change artifacts underopenspec/changes/target-openspec-cli-15-line/.Review chain
Dual-channel Round-A (Codex 7/10 + research 5/10 → two P0s folded) → Round-B approval 9/10 → implementation Slices 1–4 → Round-C 7/10 with three P1s → all three resolved (P1-2 standalone guidance corrected to
openspec installper upstreamversion-check.ts— commit dd75315; P1-3 was a brief omission, implementation was already correct) → Round-C2: 9/10, approved for PR.Evidence
Focused suites: official-cli-v15 matrix + pin regression 54 green; boundary + rotated core suites 185 green; server rotated suites 187 green (incl. cold-start integration); web rotated suites 75 green; core/server/web typechecks green.
Broad gates:
format:check/lint:ci/typecheck/test:ci/test:browser:ciall green. Note: the firsttest:cirun had exactly one failure (worktree-web-assets-product-chain.test.ts) caused by a port collision with the concurrently running walkthrough app server (lsof-evidenced, PID held :3100); a zero-change rerun of that file passed and a fulltest:cirerun was recorded green afterward.Vision smoke walkthrough (automated evidence only; final browser walkthrough stays Owner-owned): 5/5 PASS — admission under a 1.15.0 session with no mismatch dialog and Settings showing "Current 1.15 line"; Dashboard; Changes list + Detail + Evidence tab; Config → Agents inventory (50 official entries) rendering; Context ready. The negative case was also exercised: the system's 1.14.1 CLI correctly triggers the version-mismatch dialog. Environment note for local repro: the app resolves a bare
openspecvia$SHELL -lc, so a shell env that reorders PATH can shadow a caller-supplied PATH prefix (SHELL=/bin/shwas used to pin the walkthrough binary).Release notes (for the changeversion/release step)
Standalone CLI users: install and upgrade the OpenSpec CLI with
openspec install— the standalone upgrade command reinstalls the binary in place.openspec updateremains the project instruction-file updater. Never switch an install to a different method on your own.