worclaude 2.9.0 → 2.9.1
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 +12 -0
- package/SECURITY.md +54 -35
- package/package.json +5 -2
package/CHANGELOG.md
CHANGED
|
@@ -4,6 +4,18 @@ All notable changes to worclaude are documented in this file. Format loosely fol
|
|
|
4
4
|
|
|
5
5
|
## [Unreleased]
|
|
6
6
|
|
|
7
|
+
## [2.9.1] — 2026-04-28
|
|
8
|
+
|
|
9
|
+
Security patch clearing three transitive dev-dep advisories surfaced by Socket.dev and `npm audit` (esbuild dev-server CORS, vite path-traversal in optimized-deps, postcss XSS in CSS stringify). All three were dev-only, gated behind running `npm run docs:dev` and visiting a hostile origin in the same session — neither CI nor end-user installs trigger the conditions — but they kept appearing in scanner output and drowning out signal. Resolved via `npm overrides` in `package.json` (esbuild ^0.25.0, vite ^6.4.2, postcss ^8.5.10) which forces vitepress 1.6.4 onto patched transitives despite its declared `vite ^5.4.14` peer range; `npm run docs:build` verified clean. SECURITY.md rewritten: stale "pending upstream fixes" section replaced with "fixed via overrides", new false-positive subsections for Socket's AI-typosquat alert ("Did you mean: claude") and URL-strings alert (template content, not endpoints), supported-version table bumped to 2.9.x.
|
|
10
|
+
|
|
11
|
+
### Fixed
|
|
12
|
+
|
|
13
|
+
- **Three transitive dev-dep CVEs cleared via `npm overrides`** (PR #153) — esbuild 0.21.5 → 0.25.12 ([GHSA-67mh-4wv8-2f99](https://github.com/advisories/GHSA-67mh-4wv8-2f99) / CVE-2026-41305), vite 5.4.21 → 6.4.2 ([GHSA-4w7w-66w2-5vf9](https://github.com/advisories/GHSA-4w7w-66w2-5vf9) / CVE-2026-39365), postcss 8.5.8 → 8.5.12 ([GHSA-qx2v-qp2m-jg93](https://github.com/advisories/GHSA-qx2v-qp2m-jg93)). `npm audit` now reports 0 vulnerabilities; all 947 tests still pass; `npm run docs:build` succeeds against vitepress 1.6.4.
|
|
14
|
+
|
|
15
|
+
### Docs
|
|
16
|
+
|
|
17
|
+
- **`SECURITY.md` refresh** (PR #153) — replaces the obsolete "pending upstream fixes" section with a "fixed via overrides" section listing each advisory and resolved version. Adds two new false-positive subsections documenting Socket's AI-typosquat alert ("Did you mean: claude" — permanent, package was published under this name from day one) and URL-strings alert (flagged hostnames/filenames are template prose under `templates/`, not runtime endpoints; only `src/utils/npm.js` makes a network call). Bumps the supported-version table from `2.6.x` to `2.9.x`.
|
|
18
|
+
|
|
7
19
|
## [2.9.0] — 2026-04-28
|
|
8
20
|
|
|
9
21
|
Audit-driven workflow rebuild executing the canonical 7-phase plan derived from the 2026-04 master architecture audit, plus the @claude GitHub Action surface and post-phase polish. Phase 1 cleaned drift and gap-filled hooks. Phase 2 rebuilt the slash-command surface, retired three superseded commands, and split `/start`/`/end` into distinct forward-looking-handoff and backward-looking-session-summary artifacts with `sha:` frontmatter for SHA-based drift detection. Phase 3 made agent files the routing source of truth via a new frontmatter contract (`category`, `triggerType`, `whenToUse`, `whatItDoes`, `expectBack`, `situationLabel`) regenerated on every `/sync` and `worclaude upgrade`. Phase 4 introduced the memory-architecture skill and the `/update-claude-md` promotion algorithm. Phase 5 added the `worclaude doc-lint` subcommand. Phase 6a shipped end-to-end observability — capture, the `worclaude observability` aggregator, and the `/observability` slash command. Phase 7 added an `init` opt-in for the @claude GitHub Action workflow. Post-phase polish required explicit human invocation of `/commit-push-pr` or `/sync` for any git write (no more conversational "yes" authorizations) and extracted multi-line bash from three slash commands into POSIX helper scripts under `templates/scripts/` so each invocation matches a single allow rule. Test surface grew from 804/58 files to 947/69 files.
|
package/SECURITY.md
CHANGED
|
@@ -4,8 +4,8 @@
|
|
|
4
4
|
|
|
5
5
|
| Version | Supported |
|
|
6
6
|
| ------- | ------------------ |
|
|
7
|
-
| 2.
|
|
8
|
-
| < 2.
|
|
7
|
+
| 2.9.x | :white_check_mark: |
|
|
8
|
+
| < 2.9 | :x: |
|
|
9
9
|
|
|
10
10
|
## Reporting a Vulnerability
|
|
11
11
|
|
|
@@ -69,39 +69,33 @@ an opt-in `workflow-meta.json`. The `fs-extra`-based filesystem capability
|
|
|
69
69
|
flag is a disclosure, not a vulnerability — removing it would delete the
|
|
70
70
|
tool's core function.
|
|
71
71
|
|
|
72
|
-
### Dev-only transitive advisories
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
`
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
`
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
`
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
- Worclaude's CI does not run `docs:dev`; it runs `test`, `lint`, and
|
|
100
|
-
`docs:build` only.
|
|
101
|
-
|
|
102
|
-
Tracking: a GitHub issue is opened to bump `vitepress` once a release
|
|
103
|
-
using `vite@>=6.4.2` lands upstream. Until then the scanner will continue
|
|
104
|
-
to flag these, and we accept the dev-only risk.
|
|
72
|
+
### Dev-only transitive advisories (fixed via overrides)
|
|
73
|
+
|
|
74
|
+
Three advisories sat deep in the dev-dependency tree, all pulled through
|
|
75
|
+
`vitepress@1.6.4 → vite@5.x → esbuild@0.21.x`. They are now pinned to
|
|
76
|
+
patched versions via `"overrides"` in `package.json`:
|
|
77
|
+
|
|
78
|
+
- **[GHSA-67mh-4wv8-2f99](https://github.com/advisories/GHSA-67mh-4wv8-2f99)
|
|
79
|
+
/ CVE-2026-41305** — `esbuild` dev-server CORS misconfiguration.
|
|
80
|
+
Override: `"esbuild": "^0.25.0"` (resolved 0.25.12).
|
|
81
|
+
- **[GHSA-4w7w-66w2-5vf9](https://github.com/advisories/GHSA-4w7w-66w2-5vf9)
|
|
82
|
+
/ CVE-2026-39365** — `vite` path traversal in optimized-deps handling
|
|
83
|
+
(affects vite 6.0.0–6.4.1; Socket's range matcher also flags 5.x).
|
|
84
|
+
Override: `"vite": "^6.4.2"` (resolved 6.4.2).
|
|
85
|
+
- **[GHSA-qx2v-qp2m-jg93](https://github.com/advisories/GHSA-qx2v-qp2m-jg93)** —
|
|
86
|
+
`postcss` XSS via unescaped `</style>` in CSS stringify output.
|
|
87
|
+
Override: `"postcss": "^8.5.10"` (resolved 8.5.12).
|
|
88
|
+
|
|
89
|
+
Verified clean: `npm audit` reports 0 vulnerabilities, `npm run docs:build`
|
|
90
|
+
succeeds against `vitepress@1.6.4` despite its declared `vite@^5.4.14`
|
|
91
|
+
peer range, and all 947 tests pass.
|
|
92
|
+
|
|
93
|
+
These were not exploitable in worclaude's actual usage — every advisory
|
|
94
|
+
required an active local dev server (`npm run docs:dev`) and the operator
|
|
95
|
+
visiting a hostile origin in the same session. `npm test`, `npm run lint`,
|
|
96
|
+
`npm run docs:build`, and CI never start a server. They are flagged
|
|
97
|
+
nonetheless because Socket and `npm audit` scan the lockfile by version,
|
|
98
|
+
not by exploit reachability.
|
|
105
99
|
|
|
106
100
|
### brace-expansion DoS (fixed via override)
|
|
107
101
|
|
|
@@ -109,3 +103,28 @@ to flag these, and we accept the dev-only risk.
|
|
|
109
103
|
`brace-expansion@<1.1.13` zero-step sequence. Fixed in 1.1.13; enforced
|
|
110
104
|
via `"overrides": { "brace-expansion": "^1.1.13" }` in `package.json`
|
|
111
105
|
since v2.6.2. Pulled by `eslint@9.x → minimatch@3.x`.
|
|
106
|
+
|
|
107
|
+
### AI-detected typosquat alert (false positive)
|
|
108
|
+
|
|
109
|
+
Socket's "AI-detected possible typosquat — Did you mean: claude" flag
|
|
110
|
+
triggers because the package name `worclaude` contains the substring
|
|
111
|
+
`claude`. The package was published under this name from day one
|
|
112
|
+
(2026-02), the npm namespace is owned by the original author
|
|
113
|
+
(`sefaertunc`), and the package is the canonical home for the workflow
|
|
114
|
+
described in this README. There is no upstream `claude` workflow
|
|
115
|
+
scaffolder being typosquatted — `claude` on npm is an unrelated
|
|
116
|
+
abandoned package. Renaming a published, indexed package would break
|
|
117
|
+
every existing user's CLI alias and slash-command muscle memory; the
|
|
118
|
+
alert is accepted as a permanent false positive.
|
|
119
|
+
|
|
120
|
+
### URL-strings supply-chain alert (template content)
|
|
121
|
+
|
|
122
|
+
Socket's "URL strings" alert lists hostnames and filenames extracted
|
|
123
|
+
from the package's text content (e.g. `gitforwindows.org`, `Fly.io`,
|
|
124
|
+
`Platform.sh`, `CLAUDE.md`, `SKILL.md`). Every match is documentation
|
|
125
|
+
or template prose under `templates/` — instruction text the scaffolder
|
|
126
|
+
writes into the user's project. Worclaude does not make network calls
|
|
127
|
+
at runtime; the only HTTP code path is `src/utils/npm.js`, which
|
|
128
|
+
queries the npm registry for the latest published version during
|
|
129
|
+
`worclaude upgrade` and `worclaude status`. The flagged strings are
|
|
130
|
+
content, not endpoints.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "worclaude",
|
|
3
|
-
"version": "2.9.
|
|
3
|
+
"version": "2.9.1",
|
|
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": {
|
|
@@ -79,6 +79,9 @@
|
|
|
79
79
|
"vitest": "^3.0.9"
|
|
80
80
|
},
|
|
81
81
|
"overrides": {
|
|
82
|
-
"brace-expansion": "^1.1.13"
|
|
82
|
+
"brace-expansion": "^1.1.13",
|
|
83
|
+
"esbuild": "^0.25.0",
|
|
84
|
+
"vite": "^6.4.2",
|
|
85
|
+
"postcss": "^8.5.10"
|
|
83
86
|
}
|
|
84
87
|
}
|