build(deps): bump vite from 8.0.3 to 8.0.5#1282
Merged
OneStepAt4time merged 45 commits intomainfrom Apr 6, 2026
Merged
Conversation
- Add P1 auto-escalation for critical keywords (auth bypass, RCE, data loss, etc.) - Add dedicated CI gate for auto-label changes (runs when .github/actions/auto-label/** changes) - Reduce false positives: require explicit 'tmux' or 'terminal' for tmux area label - Improve observability: log applied rules and matched keywords - Add 11 new unit tests for P1 escalation and false-positive reduction Refs: #1174 Co-authored-by: Hephaestus <hephaestus@aegis.dev>
) Bumps [@modelcontextprotocol/sdk](https://github.com/modelcontextprotocol/typescript-sdk) from 1.28.0 to 1.29.0. - [Release notes](https://github.com/modelcontextprotocol/typescript-sdk/releases) - [Commits](modelcontextprotocol/typescript-sdk@v1.28.0...v1.29.0) --- updated-dependencies: - dependency-name: "@modelcontextprotocol/sdk" dependency-version: 1.29.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 20.19.37 to 25.5.2. - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node) --- updated-dependencies: - dependency-name: "@types/node" dependency-version: 25.5.2 dependency-type: direct:development update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [actions/download-artifact](https://github.com/actions/download-artifact) from 4 to 8. - [Release notes](https://github.com/actions/download-artifact/releases) - [Commits](actions/download-artifact@v4...v8) --- updated-dependencies: - dependency-name: actions/download-artifact dependency-version: '8' dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [actions/deploy-pages](https://github.com/actions/deploy-pages) from 4 to 5. - [Release notes](https://github.com/actions/deploy-pages/releases) - [Commits](actions/deploy-pages@v4...v5) --- updated-dependencies: - dependency-name: actions/deploy-pages dependency-version: '5' dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…nstead of silently swallowing (#1244) Generated by Hephaestus (Aegis dev agent) Co-authored-by: Hephaestus <hephaestus@aegis.dev>
Bumps [actions/configure-pages](https://github.com/actions/configure-pages) from 5 to 6. - [Release notes](https://github.com/actions/configure-pages/releases) - [Commits](actions/configure-pages@v5...v6) --- updated-dependencies: - dependency-name: actions/configure-pages dependency-version: '6' dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [actions/checkout](https://github.com/actions/checkout) from 4 to 6. - [Release notes](https://github.com/actions/checkout/releases) - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md) - [Commits](actions/checkout@v4...v6) --- updated-dependencies: - dependency-name: actions/checkout dependency-version: '6' dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
- All 25 MCP tools documented with parameters, descriptions, and examples - 3 MCP prompts documented (implement_issue, review_pr, debug_session) - 6 categories: Session Management, Communication, Observability, Permissions, Orchestration, State - Tool summary table for quick reference - README updated with link to MCP Tools doc Co-authored-by: Hephaestus <hephaestus@aegis.dev>
Add integration tests for: - Session lifecycle: create -> poll -> kill - Auth + rate limiting: token validation, throttle enforcement - SSE events: session isolation, event emission - Permission flow: mode changes, pending permission 25 new tests in src/__tests__/integration/ Refs: #1205 Co-authored-by: Hephaestus <hephaestus@aegis.dev>
* fix: resolve 11 macOS test failures and add macos-latest to CI (#1228) * fix: resolve 11 macOS test failures and add macos-latest to CI (#1228) - Fix tmux window ID parsing for macOS pty format - Update jsonl-watcher tests for macOS compatibility - Add macOS to CI matrix [no design doc] --------- Co-authored-by: Argus <argus@openclaw.ai>
…1246) - Remove describe.skipIf(process.platform === 'win32') from tmux-polling-395.test.ts - Remove describe.skipIf from worktree-lookup-884.test.ts - Fix /tmp paths to use tmpdir() for cross-platform compatibility - Add mock-tmux.ts helper for future TmuxManager mocking Windows CI can now run these tests without tmux/psmux binary. Refs: #1194 Co-authored-by: Hephaestus <hephaestus@aegis.dev>
The auto-label-test CI job runs vitest from the action directory but vitest was not listed as a dependency. This caused develop CI to fail with ERR_MODULE_NOT_FOUND.
Prevents vitest from loading root vitest.config.ts which imports vitest/config not available in the action directory.
…vel code splitting (#1249) Generated by Hephaestus (Aegis dev agent) Co-authored-by: Hephaestus <hephaestus@aegis.dev>
Add TTL cache (30s) for cleanupStaleSessionHooks to avoid running on every createSession during batch session creation. Before: N sessions created = N file reads + N parses + N writes After: N sessions created = 1 file read + 1 parse + at most 1 write per 30s window Refs: #1134 Co-authored-by: Hephaestus <hephaestus@aegis.dev>
…nt cleanup The 'GET /v1/sessions lists all sessions' test expected exactly 2 sessions but could see fewer if the stale session cleanup timer fires between POST and GET. Use >= instead of exact count. Fixes #1251.
… test POST /v1/sessions returns 200 (not 201). Use >= 2 for list count to tolerate concurrent stale session cleanup in CI (#1251).
The SessionMonitor cleans up sessions without real tmux windows between POST and GET in CI. Assert >= 1 instead of >= 2, and verify session has an id property. Root cause is monitor, not cleanupStaleSessionHooks. Fixes #1251.
The bug: cleanupStaleSessionHooks runs BEFORE the new session is added to this.state.sessions (line 692). So cleanup doesn't see the new session and may remove its hooks from settings.local.json. Fix: add the new session's ID to activeIds before cleanup runs, so the new session's hooks are preserved. This is the root cause fix — not just a test workaround. Refs: #1134 Co-authored-by: Hephaestus <hephaestus@aegis.dev>
windowExistsCache (src/tmux.ts:80) was dead code — declared but never referenced anywhere in the codebase. The actual cache in use is windowCache (line 94), which is properly: - TTL-based (WINDOW_CACHE_TTL_MS = 2s) - Deleted on killWindow (line 963 → now ~962 after removal) Refs: #1126 Co-authored-by: Hephaestus <hephaestus@aegis.dev>
Previously, signal-cleanup-helper.ts called sessions.killSession but did NOT call cleanupTerminatedSessionState. When SIGTERM/SIGINT fired, all monitor/metrics/toolRegistry per-session Maps accumulated stale entries. Fix: pass SessionCleanupDeps to killAllSessions and killAllSessionsWithTimeout, call cleanupTerminatedSessionState for each killed session. Refs: #1115 Co-authored-by: Hephaestus <hephaestus@aegis.dev>
#1257) Previously, when tickPoll detected a dead session (no session entry or capturePane failure), it evicted all subscribers and returned — but the interval timer kept firing and the poll entry remained in sessionPolls. Fix: explicitly clear the interval timer and null the reference in BOTH error cases: - !session (session entry gone) - capturePane failure (tmux window dead) This prevents orphaned poll timers and ensures immediate cleanup. Refs: #1122 Co-authored-by: Hephaestus <hephaestus@aegis.dev>
…1128) (#1259) Removed continue-on-error: true from ClawHub login step. Added if: secrets.CLAWHUB_TOKEN != '' to both login and publish steps. This makes auth failures explicit (clear error) instead of silently continuing and failing later with an opaque error on publish. Refs: #1128 Co-authored-by: Hephaestus <hephaestus@aegis.dev>
…#1260) * fix(ci): harden GitHub Actions permissions to least privilege (#1172) Move from broad workflow-level permissions to per-job least-privilege: release.yml: - Removed top-level permissions (contents: write, id-token: write) - test: contents: read only - publish-npm: contents: write + id-token: write (required for npm publish + OIDC) - publish-clawhub: contents: write only (required for ClawHub publish) auto-label.yml: - Added contents: read (needed for actions/checkout) Other workflows (ci.yml, pages.yml, discord-notify.yml, ci-failure-alert.yml, release-please.yml) already have minimal permissions. Refs: #1172 * Update base --------- Co-authored-by: Hephaestus <hephaestus@aegis.dev> Co-authored-by: Argus <argus@openclaw.ai>
…blish (#1258) Co-authored-by: Hephaestus <hephaestus@aegis.dev>
Previously redactPayload replaced session.id and name (which are NOT secrets) with '[REDACTED]', making webhooks useless for automation. Now: - session.id: kept (not a secret — UUID visible in CI logs anyway) - session.name: kept (not a secret — window name) - session.workDir: redacted (contains filesystem paths) Also removed the fake API URLs from the redaction — they added no value and were misleading. Updated tests to match new behavior. Refs: #1123 Co-authored-by: Hephaestus <hephaestus@aegis.dev>
…1262) Combine 3 sequential tmux calls (2x set-option + select-pane) into a single shell script executed with 'sh /tmp/script.sh'. This reduces per-window creation overhead from 6 to 4 process spawns. Implementation: - New protected tmuxShellBatch() method writes commands to a temp script and runs: sh /tmp/script.sh (avoids shell escaping issues) - createWindow calls tmuxShellBatch() with the 3 window setup commands - Protected for testability (spyOnable in tests) Test: Updated tmux-race-403.test.ts to mock tmuxShellBatch. Refs: #1116 Co-authored-by: Hephaestus <hephaestus@aegis.dev>
…ugh (#1264) Replace O(n) term.reset() on every message with incremental appending. Track rendered message count and only write new messages on updates. Generated by Hephaestus (Aegis dev agent) Co-authored-by: Hephaestus <hephaestus@aegis.dev>
…1265) Generated by Hephaestus (Aegis dev agent) Co-authored-by: Hephaestus <hephaestus@aegis.dev>
…1266) Add generate-checksums job to release.yml: - Generates SHA256 checksums for all release artifacts (.tgz) - Uploads checksums.txt as artifact (30-day retention) - attach-checksums job adds checksums.txt to GitHub Release Acceptance criteria met: ✅ Checksums generated for each artifact ✅ Signed checksum manifest attached to release (via gh CLI) (Provenance attestation via npm publish --provenance already exists) Refs: #1171 Co-authored-by: Hephaestus <hephaestus@aegis.dev>
…1267) Validation errors from Zod schema checks are deterministic - retrying won't help since the response structure won't change. Added check for "validation failed" and "validateResponse" in error messages to prevent unnecessary retry attempts. Closes #1103 Generated by Hephaestus (Aegis dev agent) Co-authored-by: Hephaestus <hephaestus@aegis.dev>
) Add generate-sbom job to release.yml: - Runs 'npm ci' to install production deps - Generates CycloneDX SBOM via @cyclonedx/cyclonedx-npm - Uploads sbom.json as artifact (30-day retention) - attach-sbom job adds sbom.json to GitHub Release Acceptance criteria met: ✅ SBOM generated on every release tag ✅ SBOM uploaded as release asset Refs: #1169 Co-authored-by: Hephaestus <hephaestus@aegis.dev>
…#1269) Generated by Hephaestus (Aegis dev agent) Co-authored-by: Hephaestus <hephaestus@aegis.dev>
Add configFileSchema to validate config file fields before merging with defaults. Uses safeParse instead of basic typeof check — catches wrong types like stateDir: 42 (number instead of string). Acceptance criteria met: ✅ Config file parsed with Zod schema validation ✅ Invalid fields logged and rejected ✅ Type errors caught at load time, not runtime Refs: #1109 Co-authored-by: Hephaestus <hephaestus@aegis.dev>
…) (#1271) Replace unsafe '(req as unknown as Record).authKeyId = ...' cast with Fastify's proper decorateRequest('authKeyId', ...) + type augmentation. Acceptance criteria met: ✅ Fastify request augmented via type-safe decorate pattern ✅ Type safety: TypeScript now enforces authKeyId on FastifyRequest ✅ No more unsafe 'as unknown as Record' cast Refs: #1108 Co-authored-by: Hephaestus <hephaestus@aegis.dev>
needsFastPolling() now only returns true if at least one session has received a hook. If no session has ever received a hook, hooks are likely not configured — use slow polling (30s) instead of fast polling (5s), reducing CPU load 6x. Before: lastHook === undefined → always fast-poll After: lastHook === undefined → skip (no hook history) Ref: #1097 Co-authored-by: Hephaestus <hephaestus@aegis.dev>
…1096) (#1275) execFileSync('claude', ['--version']) blocked the event loop for up to 5s during session creation. Replaced with promisified execFileAsync to avoid serializing concurrent session creation requests. Before: execFileSync — blocks event loop After: await execFileAsync — non-blocking Ref: #1096 Co-authored-by: Hephaestus <hephaestus@aegis.dev>
…1276) detectWaitingForInput() was reading the entire JSONL transcript from offset 0 on every call, even though session.byteOffset tracks the last processed position. Use session.byteOffset to read only new entries. Note: GET /v1/sessions/:id/tools endpoint still reads from offset 0 — it would need a separate toolOffset field to avoid double-counting tools (processEntries does count++). Left as follow-up. Truncation fallback (line 1366) correctly stays at offset 0. Ref: #1095 Co-authored-by: Hephaestus <hephaestus@aegis.dev>
…1279) ENV_NAME_RE rejects lowercase names before DANGEROUS_ENV_PREFIXES is checked, making prefix blocklist entries like 'npm_config_' dead code. Fix: check DANGEROUS_ENV_PREFIXES FIRST — prefixes are case-sensitive and should be blocked regardless of whether the name passes the regex. Before: regex check → prefix check (never reached for lowercase) After: prefix check → regex check Also fixes the error message for prefix matches to show the actual matched prefix. Ref: #1093 Co-authored-by: Hephaestus <hephaestus@aegis.dev>
Bumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) from 8.0.3 to 8.0.5. - [Release notes](https://github.com/vitejs/vite/releases) - [Changelog](https://github.com/vitejs/vite/blob/main/packages/vite/CHANGELOG.md) - [Commits](https://github.com/vitejs/vite/commits/v8.0.5/packages/vite) --- updated-dependencies: - dependency-name: vite dependency-version: 8.0.5 dependency-type: indirect ... Signed-off-by: dependabot[bot] <support@github.com>
c510d50 to
887b516
Compare
Contributor
There was a problem hiding this comment.
LGTM. Vite 8.0.4 → 8.0.5 patch. Resolves 3 CVEs (GHSA-4w7w-66w2-5vf9, GHSA-v2wj-q39q-566r, GHSA-p9ff-h696-f583).
OneStepAt4time
approved these changes
Apr 6, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Bumps vite from 8.0.3 to 8.0.5.
Release notes
Sourced from vite's releases.
Changelog
Sourced from vite's changelog.
Commits
1a12d4crelease: v8.0.579f002ffix: avoid path traversal with optimize deps sourcemap handler (#22161)a9a3df2fix: checkserver.fsafter stripping query as well (#22160)f02d9fdfix: apply server.fs check to env transport (#22159)f05f501fix: disallow referencing files outside the package from sourcemap (#22158)7339bdcrelease: v8.0.454229e7docs: addenvironment.fetchModuledocumentation (#22035)b0da973feat: allow esbuild 0.28 as peer deps (#22155)22b0166fix(deps): update all non-major dependencies (#22143)17330d2fix: add types forvite/modulepreload-polyfill(#22126)Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting
@dependabot rebase.Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
@dependabot rebasewill rebase this PR@dependabot recreatewill recreate this PR, overwriting any edits that have been made to it@dependabot show <dependency name> ignore conditionswill show all of the ignore conditions of the specified dependency@dependabot ignore this major versionwill close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)@dependabot ignore this minor versionwill close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)@dependabot ignore this dependencywill close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)You can disable automated security fix PRs for this repo from the Security Alerts page.