Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
31 changes: 0 additions & 31 deletions .changeset/a-lease-says-who.md

This file was deleted.

10 changes: 5 additions & 5 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

30 changes: 30 additions & 0 deletions packages/cli/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,35 @@
# @openspec-ui/cli

## 0.8.0

### Minor Changes

- 394d426: A workspace lease says who took it, and can be asked about.

The lease records the git identity of the working directory that took it
— `user.email`, falling back to `user.name`. It is attribution, never
authentication: anybody can set that value to anything, so it is called
"git author" wherever it is shown and nothing is permitted or refused on
the strength of it. A lease taken where no identity is configured is
valid and records none, exactly like every lease written before this.

It is read once where a host starts up, never in the heartbeat — that
renews every five seconds, and the value cannot change during a run.

`openspec-ui-cli lease` answers who holds a workspace without trying to
start a run and reading the refusal, which was the only way to ask
before. It exits `0` held or free: the question was answered either way.

`openspec-ui-cli lease release` clears a lease only where it can
establish that the holder is gone — the heartbeat is already stale, or
the holder is on this machine and its process is not running, checked
with a signal that delivers nothing. There is deliberately no `--force`.
A holder that died already self-heals once its heartbeat goes stale; a
holder that is alive still has the workspace open, and taking its lease
would permit a second mutating run against files it is still holding,
which is what the lease exists to prevent. A stuck holder is stopped,
not robbed.

## 0.7.0

### Minor Changes
Expand Down
2 changes: 1 addition & 1 deletion packages/cli/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@openspec-ui/cli",
"version": "0.7.0",
"version": "0.8.0",
"description": "Non-interactive OpenSpec change validation for CI merge gates (see docs/adr/0007-ci-cli-third-delivery-target.md).",
"license": "MIT",
"repository": {
Expand Down
30 changes: 30 additions & 0 deletions packages/core/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,35 @@
# @openspec-ui/core

## 0.73.0

### Minor Changes

- 394d426: A workspace lease says who took it, and can be asked about.

The lease records the git identity of the working directory that took it
— `user.email`, falling back to `user.name`. It is attribution, never
authentication: anybody can set that value to anything, so it is called
"git author" wherever it is shown and nothing is permitted or refused on
the strength of it. A lease taken where no identity is configured is
valid and records none, exactly like every lease written before this.

It is read once where a host starts up, never in the heartbeat — that
renews every five seconds, and the value cannot change during a run.

`openspec-ui-cli lease` answers who holds a workspace without trying to
start a run and reading the refusal, which was the only way to ask
before. It exits `0` held or free: the question was answered either way.

`openspec-ui-cli lease release` clears a lease only where it can
establish that the holder is gone — the heartbeat is already stale, or
the holder is on this machine and its process is not running, checked
with a signal that delivers nothing. There is deliberately no `--force`.
A holder that died already self-heals once its heartbeat goes stale; a
holder that is alive still has the workspace open, and taking its lease
would permit a second mutating run against files it is still holding,
which is what the lease exists to prevent. A stuck holder is stopped,
not robbed.

## 0.72.0

### Minor Changes
Expand Down
2 changes: 1 addition & 1 deletion packages/core/package.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"name": "@openspec-ui/core",
"private": true,
"version": "0.72.0",
"version": "0.73.0",
"type": "module",
"main": "src/index.ts",
"exports": {
Expand Down
34 changes: 34 additions & 0 deletions packages/extension/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,39 @@
# Changelog

## 0.50.2

### Patch Changes

- 394d426: A workspace lease says who took it, and can be asked about.

The lease records the git identity of the working directory that took it
— `user.email`, falling back to `user.name`. It is attribution, never
authentication: anybody can set that value to anything, so it is called
"git author" wherever it is shown and nothing is permitted or refused on
the strength of it. A lease taken where no identity is configured is
valid and records none, exactly like every lease written before this.

It is read once where a host starts up, never in the heartbeat — that
renews every five seconds, and the value cannot change during a run.

`openspec-ui-cli lease` answers who holds a workspace without trying to
start a run and reading the refusal, which was the only way to ask
before. It exits `0` held or free: the question was answered either way.

`openspec-ui-cli lease release` clears a lease only where it can
establish that the holder is gone — the heartbeat is already stale, or
the holder is on this machine and its process is not running, checked
with a signal that delivers nothing. There is deliberately no `--force`.
A holder that died already self-heals once its heartbeat goes stale; a
holder that is alive still has the workspace open, and taking its lease
would permit a second mutating run against files it is still holding,
which is what the lease exists to prevent. A stuck holder is stopped,
not robbed.
- Updated dependencies [394d426]
- @openspec-ui/core@0.73.0
- @openspec-ui/server@1.20.7
- @openspec-ui/webui@1.38.4

## 0.50.1

### Patch Changes
Expand Down
2 changes: 1 addition & 1 deletion packages/extension/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
"displayName": "OpenSpec Workbench",
"description": "A dashboard + VS Code extension for OpenSpec, with Claude, Copilot, Codex, and Gemini agents built in.",
"publisher": "openspec-ui",
"version": "0.50.1",
"version": "0.50.2",
"icon": "media/icon.png",
"license": "MIT",
"repository": {
Expand Down
7 changes: 7 additions & 0 deletions packages/server/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,12 @@
# @openspec-ui/server

## 1.20.7

### Patch Changes

- Updated dependencies [394d426]
- @openspec-ui/core@0.73.0

## 1.20.6

### Patch Changes
Expand Down
2 changes: 1 addition & 1 deletion packages/server/package.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"name": "@openspec-ui/server",
"private": true,
"version": "1.20.6",
"version": "1.20.7",
"type": "module",
"main": "src/index.ts",
"dependencies": {
Expand Down
7 changes: 7 additions & 0 deletions packages/webui/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,12 @@
# @openspec-ui/webui

## 1.38.4

### Patch Changes

- Updated dependencies [394d426]
- @openspec-ui/core@0.73.0

## 1.38.3

### Patch Changes
Expand Down
2 changes: 1 addition & 1 deletion packages/webui/package.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"name": "@openspec-ui/webui",
"private": true,
"version": "1.38.3",
"version": "1.38.4",
"type": "module",
"main": "src/index.ts",
"dependencies": {
Expand Down
Loading