empirical-sdd 0.24.1 → 0.25.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +38 -1
- package/README.md +29 -8
- package/dist/cli.js +780 -294
- package/dist/demo-integration-repair.js +660 -257
- package/dist/index.d.ts +2 -1
- package/dist/index.js +662 -252
- package/dist/integrations.js +28 -12
- package/dist/mcp.d.ts +7 -2
- package/dist/mcp.js +722 -263
- package/dist/protocol.d.ts +1 -1
- package/dist/protocol.js +1 -1
- package/dist/tracker-auth.d.ts +31 -0
- package/dist/types.d.ts +79 -0
- package/docs/mcp.md +327 -0
- package/docs/protocol.md +226 -0
- package/docs/security.md +107 -0
- package/docs/versioning.md +5 -0
- package/package.json +6 -3
package/CHANGELOG.md
CHANGED
|
@@ -8,6 +8,42 @@ under the alpha rules in [docs/versioning.md](docs/versioning.md).
|
|
|
8
8
|
|
|
9
9
|
## [Unreleased]
|
|
10
10
|
|
|
11
|
+
## [0.25.0] - 2026-08-19
|
|
12
|
+
|
|
13
|
+
### Added
|
|
14
|
+
|
|
15
|
+
- Added a trusted-host OAuth resolver contract for Linear, GitHub, and Jira,
|
|
16
|
+
with provider tokens kept ephemeral and outside Tracker Policy, MCP tool
|
|
17
|
+
input/output, chat, logs, and repository state.
|
|
18
|
+
- Added explicit MCP URL-mode capability negotiation for out-of-band OAuth;
|
|
19
|
+
form-only, legacy-empty, absent, declined, and cancelled clients fail closed
|
|
20
|
+
to the host fallback without receiving a credential form.
|
|
21
|
+
- Added a guarded read-only user secrets file fallback at
|
|
22
|
+
`${XDG_CONFIG_HOME:-$HOME/.config}/empirical/secrets.env` on POSIX or
|
|
23
|
+
`%APPDATA%\Empirical\secrets.env` on Windows, including containment, link,
|
|
24
|
+
size, syntax, completeness, and POSIX permission checks.
|
|
25
|
+
|
|
26
|
+
### Changed
|
|
27
|
+
|
|
28
|
+
- Made new Linear setup default to `LINEAR_SECRET_KEY`, while preserving every
|
|
29
|
+
existing Tracker Policy v1/v2 name—including `LINEAR_API_KEY` and custom
|
|
30
|
+
valid names—without migration or repair rewrites.
|
|
31
|
+
- Made Jira OAuth use Atlassian's Cloud API base with Bearer authorization while
|
|
32
|
+
retaining tenant-origin Basic authentication for email/API-token fallback.
|
|
33
|
+
- Made Linear OAuth use its required Bearer authorization while preserving the
|
|
34
|
+
raw `Authorization` value required by existing personal API-key fallbacks.
|
|
35
|
+
- Aligned CLI, MCP, generated `empirical-init` guidance, Doctor, README, and
|
|
36
|
+
protocol/security documentation around OAuth-first setup, the exact host
|
|
37
|
+
fallback path, and the rule: `Never paste credentials into chat`.
|
|
38
|
+
|
|
39
|
+
### Fixed
|
|
40
|
+
|
|
41
|
+
- Made tracker secret-file path construction honor explicit POSIX and Windows
|
|
42
|
+
semantics, with platform-correct permission fixtures and recovery-path tests.
|
|
43
|
+
- Serialized the process-heavy release test suite so temporary Git worktree
|
|
44
|
+
tests cannot exhaust their timeout and race cleanup under parallel load, and
|
|
45
|
+
removed a redundant non-coverage pass from local CI to match the GitHub gate.
|
|
46
|
+
|
|
11
47
|
## [0.24.1] - 2026-08-19
|
|
12
48
|
|
|
13
49
|
### Fixed
|
|
@@ -121,7 +157,8 @@ Published through GitHub Actions trusted publishing with npm provenance.
|
|
|
121
157
|
|
|
122
158
|
- Prepared and released package version `0.20.2`.
|
|
123
159
|
|
|
124
|
-
[Unreleased]: https://github.com/goempirical/empirical-sdd/compare/v0.
|
|
160
|
+
[Unreleased]: https://github.com/goempirical/empirical-sdd/compare/v0.25.0...HEAD
|
|
161
|
+
[0.25.0]: https://github.com/goempirical/empirical-sdd/compare/v0.24.1...v0.25.0
|
|
125
162
|
[0.24.1]: https://github.com/goempirical/empirical-sdd/compare/v0.24.0...v0.24.1
|
|
126
163
|
[0.24.0]: https://github.com/goempirical/empirical-sdd/compare/v0.23.0...v0.24.0
|
|
127
164
|
[0.23.0]: https://github.com/goempirical/empirical-sdd/compare/v0.22.0...v0.23.0
|
package/README.md
CHANGED
|
@@ -4,7 +4,7 @@ Agent-neutral, resumable spec-driven development for coding agents. Empirical
|
|
|
4
4
|
turns an ordinary change request into a deterministic workflow with durable
|
|
5
5
|
state, reviewable evidence, and safe Git integration.
|
|
6
6
|
|
|
7
|
-
> Empirical 0.
|
|
7
|
+
> Empirical 0.25 is alpha software. It requires Node.js 22 or newer.
|
|
8
8
|
|
|
9
9
|
## Install
|
|
10
10
|
|
|
@@ -46,13 +46,34 @@ verified, integrated, delivered, or published.
|
|
|
46
46
|
it recommends **Track all work** and requires choosing that or **No tracking**
|
|
47
47
|
before setup can be saved. Track all selects Linear, GitHub Projects, or Jira;
|
|
48
48
|
No tracking persists a provider-free choice and makes no provider requests.
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
49
|
+
|
|
50
|
+
Authentication starts with OAuth when a trusted host supplies a connection.
|
|
51
|
+
MCP clients may open that connection only through explicitly negotiated
|
|
52
|
+
URL-mode elicitation; Empirical never requests a credential through a form,
|
|
53
|
+
tool argument, tool result, assistant message, or repository file. The default
|
|
54
|
+
standalone CLI has no hosted OAuth broker and truthfully proceeds to the
|
|
55
|
+
host-only fallback.
|
|
56
|
+
|
|
57
|
+
> **Never paste credentials into chat.** If OAuth is unavailable, edit the
|
|
58
|
+
> secrets file directly on the host: `${XDG_CONFIG_HOME:-$HOME/.config}/empirical/secrets.env`
|
|
59
|
+
> on POSIX or `%APPDATA%\Empirical\secrets.env` on Windows. Do not put a
|
|
60
|
+
> credential value in a shell command, process argument, tool call, or
|
|
61
|
+
> repository `.env` file.
|
|
62
|
+
|
|
63
|
+
New setup uses `LINEAR_SECRET_KEY` for Linear, `GITHUB_TOKEN` for GitHub, and
|
|
64
|
+
both `JIRA_EMAIL` and `JIRA_API_TOKEN` for Jira. The file must be a regular,
|
|
65
|
+
non-symbolic-link file outside the repository and, on POSIX, owner-only (for
|
|
66
|
+
example mode `0600`). Runtime precedence is connected host OAuth, then a
|
|
67
|
+
complete injected environment set, then the checked host file. Existing
|
|
68
|
+
Tracker Policy v1/v2 names—including `LINEAR_API_KEY` and custom names—remain
|
|
69
|
+
valid and are never rewritten automatically.
|
|
70
|
+
|
|
71
|
+
After authentication, Empirical discovers accessible targets and workflow
|
|
72
|
+
states, proposes all seven semantic mappings, and shows the complete
|
|
73
|
+
secret-free policy before saving. Ambiguous state suggestions require an
|
|
74
|
+
explicit choice; simple boards may intentionally reuse one provider state for
|
|
75
|
+
several phases. Repair preserves an existing tracker policy or explicit No
|
|
76
|
+
tracking choice unless you change it.
|
|
56
77
|
|
|
57
78
|
Tracker Policy v2 supports `off`, `manual`, and `ensure` ticket behavior plus
|
|
58
79
|
blockers/final, phase-milestone, or every-revision progress comments. `ensure`
|