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 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.4.x | :white_check_mark: |
8
- | < 2.4 | :x: |
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.0",
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
  }