chore(release): version packages - #1822
Merged
Merged
Conversation
openspec-release-bot
Bot
requested review from
clay-good
and removed request for
a team
September 9, 2026 16:32
Contributor
No PR-relevant drift confirmed.
|
openspec-release-bot
Bot
force-pushed
the
changeset-release/main
branch
5 times, most recently
from
September 9, 2026 17:12
fa3e31b to
b6605bb
Compare
openspec-release-bot
Bot
force-pushed
the
changeset-release/main
branch
from
September 9, 2026 17:56
b6605bb to
134ff02
Compare
alfred-openspec
approved these changes
Sep 9, 2026
alfred-openspec
left a comment
Collaborator
There was a problem hiding this comment.
Reviewed 134ff02. Changesets regeneration from current main reproduces this release tree exactly: all nine pending entries are consumed, the single minor plus eight patches correctly produce 1.13.0, the changelog matches, and current CI is green.
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.
This PR was opened by the Changesets release GitHub action. When you're ready to do a release, you can merge this and the packages will be published to npm automatically. If you're not ready to do a release yet, that's fine, whenever you add more changesets to main, this PR will be updated.
Releases
@fission-ai/openspec@1.13.0
Minor Changes
#1783
8ba4ac1Thanks @clay-good! - Apply now says when a change has no delta specs. Apply gates on the schema'sapply.requiresalone, so a change whosetasks.mdwas written ahead of its specs read as ready to implement even though it had no spec deltas at all — the stateopenspec validaterejects.openspec instructions applynow reports that gap as a warning (text and--json), naming both ways out: write the specs, or declareskip_specs: true. Changes that have specs, declareskip_specs, or are still blocked on their own required artifacts are unaffected.A blocked apply also names the whole chain now, not just the first hop: a change holding only a proposal reported
Missing artifacts: taskswhile the specs thattasksdepends on were missing too, which reads as an instruction to write the tracking file straight from the proposal. The full build order is reported asmissingPrerequisitesin--json. The remedies these messages give are CLI commands (openspec instructions <artifact> --change <name>) rather than theopenspec-continue-changeskill, which thecoreprofile never installs.Patch Changes
#1798
aedf4d0Thanks @dwin-gharibi! - Stop archive rewriting the inside of fenced code blocks. The final assembly inbuildUpdatedSpeccollapsed runs of blank lines across the whole rebuilt document to tidy the seams between the slices it rejoins, but the pass was not fence-aware, so a requirement documenting a sample with two or more consecutive blank lines had that sample silently edited on archive, and edited again on every later archive. That matters wherever whitespace carries meaning: YAML block scalars, Python, expected-output fixtures, Markdown inside Markdown. Blank runs are now collapsed only outside fenced blocks, using the samebuildCodeFenceMaskevery other structural pass in the module already used. Behavior outside fences is unchanged, including that only a truly empty line counts as blank, so a line of spaces is still never a collapse boundary. Fixes #1797.#1800
fadac3eThanks @dwin-gharibi! - Read a removal or rename written with*or+as the operation it is. CommonMark opens a bullet list with-,*or+, but the bullet form of## REMOVED Requirementsand theFROM:/TO:lines of## RENAMED Requirementsboth hardcoded-, so either other marker matched nothing at all. The operation then silently never happened:openspec validatereported the change valid,openspec archiveexited 0 with "Specs updated successfully", and the requirement that was supposed to be deleted or renamed stayed exactly as it was. The change archived as complete, leaving the spec quietly disagreeing with the delta that was meant to update it. Both forms now accept[-*+], theFROM:/TO:bullet stays optional, and the plain### Requirement:header form is unchanged. Fixes #1799.#1802
8251763Thanks @dwin-gharibi! - Apply every delta section, not just one copy of each. A delta file that wrote the same header twice, two## ADDED Requirementssections say, silently kept one of them: sections were collected into a record keyed by title, so a repeated title overwrote the earlier body, and the case-insensitive lookup returned only the first entry that folded to the target, so## ADDED Requirementsbeside## Added Requirementsleft the second unread. Every requirement under the discarded copy was gone before validation or the merge could see it, soopenspec validatereported zero issues andopenspec archiveexited 0 having applied less than the author wrote, then moved the change to the archive with the live spec quietly diverging from what was reviewed. Sections are now kept as a list and every body whose title matches is read, each keeping its own line numbers so diagnostics still point at the right copy. Rename pairs are read per section, so aFROM:in one copy of the header can never pair with aTO:in another. An author does not have to repeat a header on purpose to hit this: a delta documenting OpenSpec's own syntax inside a fenced example produces the duplicate on its own. Fixes #1801.#1657
6d2dbe6Thanks @clay-good! - Load project context before proposal planning, using the selected project or store root and honoring config precedence and validation limits. When no root exists, stop without writing files and offer initialization instead of creating an implicit root.#1700
3915db7Thanks @clay-good! - Teach the generated guidance how to find and read a project's specs.openspec list --specsappeared in no generated skill, command, or artifact instruction, whileopenspec list --json(the in-flight change list) appeared throughout, so an agent asked to read the existing specs first enumerated changes instead and reported the step complete against the wrong object. The explore skill and command now list the spec inventory alongside the change list and say which is which, and the spec-drivenproposalandspecsinstructions name the command where they ask for existing capabilities to be researched and for a delta's path to match an existing one. Both steps carry--store "<id>", and capabilities are read withopenspec show "<spec-id>" --type spec --json --no-scenariosso the read resolves against the same root the listing came from. Fixes #1689.The filtered read is only an overview. Agents read relevant specs in full, including scenarios, before deciding what is already covered or what should change.
#1779
3c6d318Thanks @clay-good! -openspec initandopenspec updatenow name the workflows your profile left out and how to add them, so a command that was never installed no longer reads as a broken setup.#1808
d9e1a28Thanks @dwin-gharibi! - Stopopenspec updatereporting a tool up to date while a damaged command file sits on disk. The check read thegeneratedByversion marker in a tool's skill files alone, which proves only that the skill files came from this CLI and says nothing about the command files written beside them, so a hand-edited or truncated command file left update printing "All 1 tool(s) up to date" and repairing nothing; the file could be restored only by knowing to pass--force. A deleted command file was already detected, so the claim was false only for a damaged one. Update now also compares command-file content, using the comparison that already existed and was simply never consulted once a skill file supplied a version. Scoped to tools configured for both skills and commands, so the commands-only path is unchanged, and skipped when the delivery mode generates no commands for the tool. Fixes #1807.#1782
c170dc7Thanks @clay-good! - Fixretire_capabilitiesrefusing any spec whose scenario bullets wrap onto a second line. The continuation line was counted as content the merge could not account for, which blocked the retirement and suppressed the hint that names the marker (#1780). A spec bulleted with+is covered too: naming only-and*as list markers reported every one of its scenario bullets as unaccounted content, so that capability could not be retired at all either.