worclaude 2.6.0 → 2.6.2
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 +28 -0
- package/SECURITY.md +90 -2
- package/package.json +4 -1
package/CHANGELOG.md
CHANGED
|
@@ -4,6 +4,34 @@ All notable changes to worclaude are documented in this file. Format loosely fol
|
|
|
4
4
|
|
|
5
5
|
## [Unreleased]
|
|
6
6
|
|
|
7
|
+
## [2.6.2] — 2026-04-22
|
|
8
|
+
|
|
9
|
+
Dev-dependency security bump. Adds an npm `overrides` entry pinning `brace-expansion` to `^1.1.13` to clear [GHSA-f886-m6hf-6m8v](https://github.com/advisories/GHSA-f886-m6hf-6m8v) — a moderate regex-DoS advisory against the 1.1.12 pulled transitively by `eslint → minimatch`. Post-override the lockfile resolves `brace-expansion@1.1.14` and `npm audit` drops from four moderate advisories to three. `SECURITY.md` is extended with a "Dev-only transitive advisories pending upstream fixes" section documenting the two remaining alerts ([GHSA-4w7w-66w2-5vf9](https://github.com/advisories/GHSA-4w7w-66w2-5vf9) vite path traversal, [GHSA-67mh-4wv8-2f99](https://github.com/advisories/GHSA-67mh-4wv8-2f99) esbuild dev-server CORS) as upstream-blocked by the vitepress `1.6.4 → vite ^5 → esbuild ^0.21.3` chain — `npm overrides` cannot force esbuild past the vite peer contract, and no `vitepress@2.x` is on npm yet. Both advisories are dev-only (excluded from the published tarball by the `files` whitelist) and only reachable while a local dev server is running; tracked for upgrade in [issue #109](https://github.com/sefaertunc/Worclaude/issues/109). No runtime change for worclaude consumers.
|
|
10
|
+
|
|
11
|
+
### Fixed
|
|
12
|
+
|
|
13
|
+
- **`brace-expansion` regex DoS** (PR #110) — `"overrides": { "brace-expansion": "^1.1.13" }` added to `package.json`; lockfile now resolves `brace-expansion@1.1.14` under `eslint 9.39.4 → minimatch 3.1.5`. Clears GHSA-f886-m6hf-6m8v.
|
|
14
|
+
|
|
15
|
+
### Docs
|
|
16
|
+
|
|
17
|
+
- **SECURITY.md — "Dev-only transitive advisories pending upstream fixes"** (PR #110) documents GHSA-4w7w-66w2-5vf9 and GHSA-67mh-4wv8-2f99 as accepted risk pending a `vitepress` release on `vite >=6.4.2`. Rationale: both are devDeps only, excluded from the npm tarball, and only reachable while `npm run docs:dev` is running. Tracking issue #109.
|
|
18
|
+
|
|
19
|
+
## [2.6.1] — 2026-04-22
|
|
20
|
+
|
|
21
|
+
Supply-chain scanner hygiene. Adds a `socket.yml` at the repo root so Socket (and any tool honoring the same schema) stops treating `tests/fixtures/scanner/**` manifests as real worclaude dependencies. The fixtures pin intentionally-outdated packages (`next@14.2.3`, `vitest@1.4.0`, `prisma@5.10.0`, etc.) as deterministic inputs to the Part A detectors — they are never installed (not referenced from root `package.json`), never shipped (`tests/` is excluded by the npm `files` whitelist), and never executed. Without the ignore, fixture deps surface on PR reviews as critical CVEs (CVE-2025-29927 Next.js middleware auth bypass, Vitest 1.4.0 RCE) that do not apply to worclaude. `SECURITY.md` is expanded with a "Supply Chain Scanner Findings" section documenting the fixture rationale, the real seven-package runtime dependency list, and the by-design `filesystemAccess` capability disclosure on `fs-extra`-heavy scaffolding code.
|
|
22
|
+
|
|
23
|
+
### Added
|
|
24
|
+
|
|
25
|
+
- **`socket.yml` at repo root** (PR #107) — `version: 2` schema with `projectIgnorePaths: [tests/fixtures/**]`. Respected by Socket's GitHub App on every PR review and by the Socket CLI's `socket scan create` command. Verified locally via `socket scan create --report`: manifests discovered drop from 21 to 6, scan verdict goes from unhealthy (2 critical + many high/medium false positives) to `healthy: true, alerts: 0` at warn level.
|
|
26
|
+
|
|
27
|
+
### Changed
|
|
28
|
+
|
|
29
|
+
- **`SECURITY.md` supported-versions row** bumped to `2.6.x` (from `2.4.x`) to reflect the current support window.
|
|
30
|
+
|
|
31
|
+
### Docs
|
|
32
|
+
|
|
33
|
+
- **`SECURITY.md` — Supply Chain Scanner Findings section** (PR #107) documents (1) why `tests/fixtures/scanner/**` manifests are not real dependencies, (2) worclaude's real seven-package runtime dep list, and (3) the `filesystemAccess` capability flag as a by-design disclosure for a scaffolding CLI rather than a vulnerability. Intended as a standing reference for any future SCA tool that surfaces the same false positives.
|
|
34
|
+
|
|
7
35
|
## [2.6.0] — 2026-04-22
|
|
8
36
|
|
|
9
37
|
Diagnose-first `/setup`. This release lands both halves of Phase Setup Diagnose in a single version: Part A (PR #103) ships the static project scanner and the new `worclaude scan` subcommand, and Part B (PR #104) rewrites `/setup` on top of it as a deterministic 12-state state machine with on-disk persistence, a tool-call whitelist, and a Claude-rendered selectable UI. Running `/setup` against a mature project now scans first (14 Tier 1 detectors produce a `DetectionReport`), presents the high-confidence facts as a numbered checklist for the user to confirm or uncheck, handles multi-candidate medium-confidence items (e.g., competing lockfiles), and only asks residual questions during the interview — cutting the interview from ~30 questions to whatever detection didn't cover. State survives interruption via `.claude/cache/setup-state.json`, persisted after every mutation through the new `worclaude setup-state` CLI (the sole write path `setup.md` is permitted to use under its tool whitelist). WRITE merges into existing output files conservatively: `CLAUDE.md` replaces `## Tech Stack` and `## Commands` sections by ATX heading; `SPEC.md` and SKILL files are rewritten only when template-only per CRLF-normalized SHA-256 match against `workflow-meta.json`, otherwise append a timestamped section; `PROGRESS.md` is append-only.
|
package/SECURITY.md
CHANGED
|
@@ -4,8 +4,8 @@
|
|
|
4
4
|
|
|
5
5
|
| Version | Supported |
|
|
6
6
|
| ------- | ------------------ |
|
|
7
|
-
| 2.
|
|
8
|
-
| < 2.
|
|
7
|
+
| 2.6.x | :white_check_mark: |
|
|
8
|
+
| < 2.6 | :x: |
|
|
9
9
|
|
|
10
10
|
## Reporting a Vulnerability
|
|
11
11
|
|
|
@@ -19,3 +19,91 @@ Please do **not** open a public issue for security vulnerabilities.
|
|
|
19
19
|
|
|
20
20
|
You can expect an initial response within 48 hours.
|
|
21
21
|
If the vulnerability is accepted, a fix will be prioritized and released as a patch version.
|
|
22
|
+
|
|
23
|
+
## Supply Chain Scanner Findings
|
|
24
|
+
|
|
25
|
+
Automated SCA tools (Socket, Snyk, GitHub Dependabot) sometimes surface
|
|
26
|
+
alerts that are not real exposures for worclaude. The most common cases:
|
|
27
|
+
|
|
28
|
+
### Test fixture manifests are not real dependencies
|
|
29
|
+
|
|
30
|
+
`tests/fixtures/scanner/**` contains static `package.json`, `pnpm-lock.yaml`,
|
|
31
|
+
`package-lock.json`, and `pyproject.toml` files used to exercise the
|
|
32
|
+
project-scanner detectors in `src/core/project-scanner/`. They pin
|
|
33
|
+
intentionally-outdated versions (e.g. `next@14.2.3`, `vitest@1.4.0`,
|
|
34
|
+
`prisma@5.10.0`) so the detectors have realistic inputs to match against.
|
|
35
|
+
|
|
36
|
+
These fixtures are:
|
|
37
|
+
|
|
38
|
+
- **Never installed.** They are not referenced from the root `package.json`.
|
|
39
|
+
- **Not shipped to npm.** `package.json`'s `files` whitelist publishes only
|
|
40
|
+
`src/`, `templates/`, and top-level docs. `tests/` is excluded.
|
|
41
|
+
- **Not executed.** The scanner reads them as JSON/TOML and inspects the
|
|
42
|
+
dependency lists; it never imports or runs the packages named inside.
|
|
43
|
+
|
|
44
|
+
Worclaude's repo includes `socket.yml` to stop Socket from scanning this
|
|
45
|
+
directory. Other SCA tools may need an equivalent `ignore` directive.
|
|
46
|
+
|
|
47
|
+
### Real runtime dependencies
|
|
48
|
+
|
|
49
|
+
```
|
|
50
|
+
chalk ^5.4.1
|
|
51
|
+
commander ^13.1.0
|
|
52
|
+
fs-extra ^11.3.0
|
|
53
|
+
inquirer ^12.5.0
|
|
54
|
+
ora ^8.2.0
|
|
55
|
+
smol-toml ^1.6.1
|
|
56
|
+
yaml ^2.8.3
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
No Next.js, React, Express, Prisma, or Stripe appear at runtime despite
|
|
60
|
+
what a fixture-inclusive scan might suggest.
|
|
61
|
+
|
|
62
|
+
### Filesystem access flag is by design
|
|
63
|
+
|
|
64
|
+
Worclaude scaffolds files into the user's project tree: templates → `.claude/`,
|
|
65
|
+
settings.json merges, timestamped backups under `.claude-backup-*/`, and
|
|
66
|
+
an opt-in `workflow-meta.json`. The `fs-extra`-based filesystem capability
|
|
67
|
+
flag is a disclosure, not a vulnerability — removing it would delete the
|
|
68
|
+
tool's core function.
|
|
69
|
+
|
|
70
|
+
### Dev-only transitive advisories pending upstream fixes
|
|
71
|
+
|
|
72
|
+
Two advisories sit deep in the dev-dependency tree and cannot currently be
|
|
73
|
+
resolved without either forking `vitepress` or waiting for its next release:
|
|
74
|
+
|
|
75
|
+
- **[GHSA-4w7w-66w2-5vf9](https://github.com/advisories/GHSA-4w7w-66w2-5vf9)** —
|
|
76
|
+
`vite@5.4.21` path traversal in optimized-deps handling. Fixed in
|
|
77
|
+
`vite@>=6.4.2`.
|
|
78
|
+
- **[GHSA-67mh-4wv8-2f99](https://github.com/advisories/GHSA-67mh-4wv8-2f99)** —
|
|
79
|
+
`esbuild@0.21.5` dev-server CORS misconfiguration. Fixed in
|
|
80
|
+
`esbuild@>=0.25.0`.
|
|
81
|
+
|
|
82
|
+
Both are pulled through `vitepress@1.6.4` (the current latest on npm),
|
|
83
|
+
which pins `vite` at `^5.0.0`, which in turn pins `esbuild` at `^0.21.3`.
|
|
84
|
+
`npm overrides` cannot force newer major versions without breaking the
|
|
85
|
+
vite peer contract.
|
|
86
|
+
|
|
87
|
+
Why these do not block a release:
|
|
88
|
+
|
|
89
|
+
- Both packages are in `devDependencies` only. The `files` whitelist in
|
|
90
|
+
`package.json` does not include `tests/` or any dev tooling; end users
|
|
91
|
+
installing `worclaude` via npm do not get these packages.
|
|
92
|
+
- Both advisories require an **active local dev server** to exploit. The
|
|
93
|
+
vite/vitest attack surface only exists while `npm run docs:dev` is
|
|
94
|
+
running and the operator browses to a hostile origin in the same
|
|
95
|
+
session. `npm test`, `npm run lint`, `npm run docs:build`, and CI
|
|
96
|
+
runs do not start a server.
|
|
97
|
+
- Worclaude's CI does not run `docs:dev`; it runs `test`, `lint`, and
|
|
98
|
+
`docs:build` only.
|
|
99
|
+
|
|
100
|
+
Tracking: a GitHub issue is opened to bump `vitepress` once a release
|
|
101
|
+
using `vite@>=6.4.2` lands upstream. Until then the scanner will continue
|
|
102
|
+
to flag these, and we accept the dev-only risk.
|
|
103
|
+
|
|
104
|
+
### brace-expansion DoS (fixed via override)
|
|
105
|
+
|
|
106
|
+
[GHSA-f886-m6hf-6m8v](https://github.com/advisories/GHSA-f886-m6hf-6m8v) —
|
|
107
|
+
`brace-expansion@<1.1.13` zero-step sequence. Fixed in 1.1.13; enforced
|
|
108
|
+
via `"overrides": { "brace-expansion": "^1.1.13" }` in `package.json`
|
|
109
|
+
since v2.6.2. Pulled by `eslint@9.x → minimatch@3.x`.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "worclaude",
|
|
3
|
-
"version": "2.6.
|
|
3
|
+
"version": "2.6.2",
|
|
4
4
|
"description": "The Workflow Layer for Claude Code — scaffold agents, commands, skills, hooks, and memory into any project",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
@@ -77,5 +77,8 @@
|
|
|
77
77
|
"prettier": "^3.5.3",
|
|
78
78
|
"vitepress": "^1.6.4",
|
|
79
79
|
"vitest": "^3.0.9"
|
|
80
|
+
},
|
|
81
|
+
"overrides": {
|
|
82
|
+
"brace-expansion": "^1.1.13"
|
|
80
83
|
}
|
|
81
84
|
}
|