chore(deps-dev): bump the dev-dependencies-minor group across 1 directory with 9 updates#12
Open
dependabot[bot] wants to merge 1 commit into
Open
Conversation
Jason-Shen2
added a commit
that referenced
this pull request
May 24, 2026
…onRepo Task #8 of the Option D rearchitecture (agent loop in Electron main). Wires the crest integration layer on top of the pi source committed in 2a4945b: pane gets a session via pi's JsonlSessionRepo, the session is bound to its creation cwd, each send refreshes the system prompt with the latest pane cwd via a minimal PaneHarness adapter. Design lock-in docs/agent-runtime-architecture.md (397 lines, 10 sections): §3 — why pi as foundation and the "pi design wins by default" posture (codified after one wrong-shaped runtime.ts iteration) §4 — session model + cwd-grouped JSONL storage (warp vs pi compared) §5 — pane ↔ session binding via block.meta["agent:session"] §6 — pane lifecycle (open / first send / restart / cross-pane) §7 — decisions log, 10 entries each with reasoning §9 — pi file refs + warp file:line citations Schema (Go + generated TS) pkg/waveobj/wtypemeta.go: AgentChatID dropped, AgentSessionMeta added. AgentSessionMeta = {id, createdAt, cwd, path} — structurally a subset of pi's JsonlSessionMetadata so round-trip is identity. createdAt is camelCase (Y1 exception, doc §7.2); rest of crest stays lowercase until task #15 migrates project-wide. pkg/waveobj/metaconsts.go regenerated via task generate. emain/agent integration layer (219 LOC non-test, target was <250) sessions.ts (108 lines): - getSessionsRepo() — process-wide JsonlSessionRepo singleton - createPaneSession(cwd) — mints fresh session, returns metadata shape that goes straight into block.meta - openPaneSession(metadata) — re-opens by AgentSessionMeta - listSessionsForCwd(cwd) — backs the future "resume recent" banner - defaultSessionsDir() — mirrors Go's GetWaveConfigDir resolution build-system-prompt.ts (40 lines): - buildSystemPrompt(SystemPromptInputs) → string - Composes base instruction + cwd + git branch + connection + last 5 cmds. Called per turn via AgentHarness function-form systemPrompt so cwd updates between sends are reflected. harness-factory.ts (71 lines): - buildPaneHarness({session, model, ...}) → {harness, update(inputs)} - The PaneHarness is a 30-line adapter that exposes the env.cwd mutation seam pi leaves implicit. NOT a runtime wrapper — subscribe/prompt/abort/message storage are direct AgentHarness usage. update() refreshes env.cwd + the system-prompt closure so warp-style "session stays put, exchange carries latest cwd" semantics work. terminal-view.tsx — chatId persistence reverted to in-memory useMemo The earlier persistence path referenced agent:chatid in block.meta, which is now removed from the schema. The legacy useChat + Go-backend path stays alive until task #12 (usePiChat); in the meantime an in-memory UUID is enough. _spike.ts — rewritten to drive AgentHarness through a real session Mints sessions into a tmp dir (does not pollute real config home), builds PaneHarness with model + cwd + git, subscribes via AgentHarness.subscribe (not .on() — that one is reserved for AgentHarness-OWN hooks), runs prompt(), prints event tally + final stopReason + persisted JSONL line count. Tests emain/agent/sessions.test.ts — 15 tests: - 6 session round-trip cases (mint, header, reopen, list, empty) - 1 shape-conformance (AgentSessionMeta ≡ JsonlSessionMetadata) - 3 defaultSessionsDir env resolution branches - 5 buildSystemPrompt rendering cases (cwd-only, git, connection, cmd cap, no-cmds) No tests touch LLM providers. Full suite: 126/126 pass (was 111 pre-#8; +15 here; -16 from the earlier wrong-shaped runtime.test.ts that was deleted in the reset). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Jason-Shen2
added a commit
that referenced
this pull request
May 24, 2026
Task #9. Wires the per-pane harness cache + ipcMain handlers + preload surface so the renderer can talk to the integrated agent runtime without touching wavesrv. No renderer code consumes this yet — usePiChat (task #12) is the first consumer. New: emain/agent-ipc.ts (~210 LOC) - harnessCache: Map<sessionPath, PaneHarness> - subscriptions: per-(sender, sessionPath) tracking + auto-release on sender 'destroyed' - registerAgentIpcHandlers() wires: handle "agent:create-session" (cwd) → AgentSessionMeta handle "agent:list-sessions-for-cwd" (cwd) → AgentSessionMeta[] handle "agent:send" (opts) → {sessionMetadata} (returns immediately; prompt runs in background) on "agent:abort" (sessionPath) on "agent:subscribe" (sessionPath) on "agent:unsubscribe" (sessionPath) - Single "agent:event" channel carries {sessionPath, event} — mirrors the dir-watch pattern (renderer strings never embed in channel names, security per emain-ipc.ts:518 comment). Wired in: emain/emain-ipc.ts initIpcHandlers() calls registerAgentIpcHandlers() before the rest of the init body. Preload: emain/preload.ts - Single ipcRenderer.on("agent:event") dispatcher fans events to per-sessionPath callback sets (same shape as dirWatchCallbacks). - exposeInMainWorld api.agent namespace: createSession(cwd) → Promise<AgentSessionMeta> listSessionsForCwd(cwd) → Promise<AgentSessionMeta[]> send(opts) → Promise<{sessionMetadata}> abort(sessionPath) subscribe(sessionPath, callback) → unsubscribe fn Types: frontend/types/custom.d.ts - ElectronApi.agent: matching surface declaration - AgentSendOptions: send-payload shape (provider/model/reasoning + pane context + optional sessionMetadata) Send semantics send() returns immediately with the resolved sessionMetadata so the renderer can write block.meta and begin streaming. The prompt() call fires in background; AgentHarness emits the assistant message stream + any errors through "agent:event". This matches the architecture doc §5.2 + §6.3 contract. What's NOT in this commit - Renderer-side hook (usePiChat) — task #12; the legacy useChat / HTTP-to-wavesrv path stays live until that lands. - Crest-specific tools — task #10; AgentHarness is built with tools: [] for now. - Permissions hook — task #11; no beforeToolCall yet. - Integration test against an actual LLM — task #14. Verification - tsc --noEmit -p tsconfig.json: 0 new errors in emain/ (58 pre-existing project-wide). - vitest run: 126/126 (no test changes; existing surface intact). - npx tsx emain/agent/_spike.ts: imports + harness construction still load cleanly. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Jason-Shen2
added a commit
that referenced
this pull request
May 24, 2026
Task #11. Replaces the deleted Go pkg/agent/permissions/ posture-and- rules engine (1500 LOC) with a 50-LOC allowlist + bench-mode bypass on top of pi's AgentHarness "tool_call" event hook. See docs/agent-runtime-architecture.md §7.9 for the decision rationale. What this enforces in v1 - When allowAll is true (the default and the only value the IPC currently sets), every tool call passes. There is no approval UI yet, so the agent stays functional and the hook is effectively a no-op slot. - When allowAll is false + allowedTools provided, only listed tool names pass; others get { block: true, reason: '"<name>" is not allowed for this session.' }. The reason surfaces as the tool result content (inline in the agent block). - Bench mode: process.env.CREST_AGENT_BENCH=1 forces allowAll, used by the eval harness so test runs aren't gated. Files emain/agent/permissions.ts (~80 lines) - PermissionsConfig: { allowedTools?, allowAll? } - buildPermissionsHook(config) → ToolCallHook compatible with AgentHarness's .on("tool_call", handler) registration. - isBenchMode() — reads CREST_AGENT_BENCH from env. emain/agent/permissions.test.ts — 8 tests covering allow/block/bench. emain/agent/harness-factory.ts — BuildPaneHarnessOptions.toolCallHook threads through to harness.on("tool_call", hook). emain/agent-ipc.ts — wires the hook in ensurePaneHarness(): bench → allowAll; else allowedTools from send opts; else allowAll (v1 default). SendOptions gains an optional allowedTools field for future renderer-side configuration. Design notes - AgentHarness's tool gate is `.on("tool_call", ...)`, NOT the bare Agent constructor's beforeToolCall option — the harness emits a slimmer ToolCallEvent { toolName, toolCallId, input } and expects a ToolCallResult { block?, reason? } back. The hook shape mirrors that exactly so we don't add an adapter layer. - The interactive "approve this tool call?" UI is a future feature (task ~#12.5 or beyond). When wired, the hook will return a Promise that resolves after the renderer sends a click. The current synchronous Promise path is forward-compatible. - Per-tool-args matching (the dropped posture engine's main feature) is intentionally NOT in v1. Add when there's a concrete need; the rebuilt engine should be a separate file, not woven into this permissions stub. Verification - vitest run: 134/134 (was 126; +8 permissions tests). - tsc --noEmit -p tsconfig.json: 0 new errors in emain/ (58 pre-existing project-wide). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Jason-Shen2
added a commit
that referenced
this pull request
May 24, 2026
Implements the React hook + reducer that consumes the agent IPC bridge
(window.api.agent). Conservative scope for the autonomous handoff:
ship the hook in isolation, do NOT touch AgentChatHost /
agent-block-element / terminal-model / package.json yet.
Rationale for the split
Replacing useChat in the live agent path is risky:
- ai-sdk's UIMessage parts shape ≠ pi's AgentMessage content shape
- agent-block-element renders the parts loop; one wrong assumption
could break the entire agent panel rendering
- terminal-model's apply* methods are tied to current shape
Doing all of that without human review during an autonomous session
is exactly the kind of blast-radius the user warned about. The
hook itself is self-contained and easy to drop in; the wiring is
the dangerous half.
What this ships
frontend/app/store/use-pi-chat.ts (~290 LOC)
- usePiChat(opts) → { messages, status, errorMessage,
sessionMetadata, send, abort }
- opts: { initialSession?, onSessionMinted?, paneContext,
modelSelection, allowedTools? }
- Subscribes via window.api.agent.subscribe AFTER it has a
sessionPath; pre-session sends are still supported (they mint
a session, the effect picks it up next render).
- Status transitions: agent_start/turn_start → streaming;
assistant message_end w/ stopReason:error → error;
agent_end → idle.
- Surfaces minted sessionMetadata via onSessionMinted callback so
the consumer can write it to block.meta["agent:session"].
- Pure reducer (reducePiChatEvent) exported for testing and reuse.
frontend/app/store/use-pi-chat.test.tsx (~80 LOC, 8 tests)
- Tests the pure reducer end-to-end: message_start append,
message_update tail-replace, message_end finalization,
agent_end authoritative snapshot, missing-payload no-ops,
unknown-event no-ops.
- Hook-lifecycle tests (renderHook + waitFor) are NOT included
because @testing-library/react isn't installed. When the wiring
task adds it, the hook tests should cover:
- subscribe on initialSession; unsubscribe on unmount
- send round-trip: sessionMetadata minted + onSessionMinted called
- send error path: status flips to error with err.message
- abort: calls window.api.agent.abort with current sessionPath
frontend/types/custom.d.ts
- AgentSendOptions gains the allowedTools?: string[] field
(renderer can pre-approve a tool subset per pane).
What's NOT in this commit (left for the wiring task)
- AgentChatHost: still uses @ai-sdk/react useChat; the new hook
is unused by production code.
- agent-block-element: still consumes UIMessagePart shape.
- terminal-model.applyAgentParts / applyAgentText: unchanged.
- terminal-view: still mints chatId via useMemo; needs to mint
sessions via window.api.agent.createSession (or let usePiChat
handle minting on first send + writing the result to
block.meta["agent:session"] via onSessionMinted).
- package.json: @ai-sdk/react still a dep.
Wiring checklist for the human review pass (also documented in the
use-pi-chat.ts module-doc):
1. Swap AgentChatHost from useChat to usePiChat; drop transport prop.
2. Rewrite agent-block-element's parts loop to walk
AgentMessage.content (text / toolCall / toolResult / etc.)
instead of UIMessagePart parts.
3. Update terminal-model apply* APIs (or stop using them — pi
events stream directly to the hook, no Jotai-atom hop required).
4. Update terminal-view to pass onSessionMinted that writes
block.meta["agent:session"] = meta.
5. Remove @ai-sdk/react + provider deps from package.json.
6. Smoke test end-to-end against each of OpenAI/Anthropic/Google/OpenRouter.
Verification
- vitest run: 171/171 (was 163; +8 reducer tests).
- tsc --noEmit -p tsconfig.json: 0 new errors.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Jason-Shen2
added a commit
that referenced
this pull request
May 24, 2026
…up plan Snapshot for the morning review. Records what landed in the autonomous session (tasks #9, #10-partial, #11, #12-half), what was explicitly NOT done and why (high-blast-radius wiring, deferred tool designs, missing API-key access), the architecture invariants the new code commits to, and a recommended pickup order keyed to how much time the user has when they come back. Read this first in the morning. The architecture story itself is already in docs/agent-runtime-architecture.md; this doc is just the "where we are right now" companion. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Jason-Shen2
added a commit
that referenced
this pull request
May 24, 2026
Step 1/6 of task #12 wiring. Pure helper that converts a flat AgentMessage[] into PiRun[], one entry per user-initiated send. Each run carries the user message + every subsequent non-user message (assistant + toolResult) until the next user message, plus a derived status (streaming | done | error) from the last assistant's stopReason. This is the unit AgentBlockElement will render against in the upcoming rewrite. runId is "run-{i}" where i is the user message's array index — stable for React keying within a session; rebuilds cleanly if compaction shifts indices later. 13 tests cover: empty input, leading-noise defense, streaming / done / error status derivation, multi-user multi-run, tool-call + toolResult co-location, mid-stream status, error mid-tool-loop, "status reads LAST assistant" guarantee, edge cases. Next steps (will commit separately): 2. New ToolUseCard against pi shape 3. New AgentBlockElement consuming PiRun 4. AgentChatHost rewrite + TerminalModel agent path deletion 5. terminal-view + cmdblock-input adaptation 6. Drop @ai-sdk/react + smoke test Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Jason-Shen2
added a commit
that referenced
this pull request
May 24, 2026
Step 2/6 of task #12. Lean replacement for ToolUseCard — renders one pi toolCall + paired toolResult (linked by toolUseId). Three states: running / done / error. Click header to expand input JSON + result. Intentionally drops: - approval flow (needs-approval / user-approved / user-denied) - askquestion UI takeover - citations - diff view (originalcontent / modifiedcontent) - file-jump / open-block linking - suggestions / suggested rules These were Wave-era UX bound to tools we deprecated (ask_user_question, dangerous, transfer_to_user, file_tracker, write_plan, etc. — see the deferred-tools decision). When a future tool needs richer display it'll own a custom card variant rather than retrofit this one. The old tool-use-card.tsx + its 5 satellite files (tool-action-header, tool-ask-card, tool-command-card, tool-diff-card, citation-chips — ~1180 LOC total) become dead after step 4 wires the new AgentBlockElement. Deletion in step 6. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Jason-Shen2
added a commit
that referenced
this pull request
May 24, 2026
Steps 3+4+5 of task #12 in one commit (intentionally co-located so the project compiles at every commit boundary). After this, the renderer is fully driven by usePiChat → slicePiRuns → AgentBlockElement on the pi AgentMessage shape; the ai-sdk WaveUIMessage path and TerminalModel's agent-state Jotai atoms are gone. Engine layer (terminal-model + Block) - engine/types.ts: Removed AgentPayload (assistantText / parts / status etc.) and replaced with AgentBlockRef = { runId, createdAt }. Agent state lives on the React side now; the engine only carries a marker. - engine/block.ts: Replaced block.agentPayload with block.agentRef. Deleted appendAgentText / setAgentText / setAgentStatus (the mutators the ai-sdk useChat → applyAgentDelta bridge called). - engine/blocks.ts: appendAgentBlock(runId) — single-arg factory; no userText or payload bookkeeping. Block id = `agent_${runId}`. - terminal-model.ts: Removed agentChatStatusAtom, agentChatIdAtom, agentModelOverrideAtom, agentPartsAtom (~4 jotai atoms gone). Removed submitAgentMessage, applyAgentDelta, applyAgentText, applyAgentParts, applyAgentStatus (~5 methods, ~60 LOC). Added appendAgentRun(runId) — idempotent, just appends a marker block and bumps revision. - Removed WaveUIMessagePart import. Renderer - agent-chat-host.tsx (full rewrite, 224 → ~165 LOC): Uses usePiChat with model selection / pane context / session metadata from terminal-view. Watches chat.messages, slices into runs via slicePiRuns, calls model.appendAgentRun for newly-seen runIds, fires onRunsChange to feed BlockListElement. Exposes a stable AgentChatHostApi (send / abort / getRuns) via onReady. Refuses to send when selection unresolved — surfaces specific resolver error via onUserError. - agent-block-element.tsx (full rewrite, 328 → ~245 LOC): Takes a PiRun. Walks run.responseMessages, accumulates text from assistant.content[type=text], emits a ToolCallCard for each assistant.content[type=toolCall] paired with the matching toolResult message (looked up by toolUseId). Header status comes from run.status; error footer from run.errorMessage. Markdown rendering preserved via react-markdown. - block-list-element.tsx: agentChatId prop replaced with agentRunsById: Map<runId, PiRun>. Agent block branch: look up run via block.agentRef.runId, render placeholder if not yet in map (handles first message_start in-flight or pane reopened pre-load), else mount AgentBlockElement. - terminal-view.tsx: Replaced chatId useMemo with block.meta["agent:session"] (read via useOrefMetaKeyAtom). onSessionMinted writes back when first send mints metadata. Replaced agentSubmitRef with agentApiRef holding the full AgentChatHostApi. Added agentRunsById state, updated via AgentChatHost.onRunsChange. Removed aiConfig / aiConfigError / chatId props passed to AgentChatHost; replaced with modelSelection / paneContext / sessionMetadata / selectionError shape matching the new contract. Test layer - engine/agent-flow.test.ts: DELETED — tested the old payload mutator API which no longer exists. slicePiRuns + AgentBlockElement integration is covered by slice-pi-runs.test.ts + the rewrite covers the rest. - engine/blocks.test.ts: rewritten — new appendAgentBlock(runId) signature, asserts agentRef.runId + agent_${runId} id format. - engine/block-handler.test.ts: defensive-guard test now asserts agentRef.runId is preserved (instead of agentPayload.assistantText). - terminal-model.test.ts: agent-section rewritten — covers appendAgentRun idempotency, revision bump, empty-runId no-op. Preview env - preview-electron-api.ts: stubbed api.agent.* so the preview pages still satisfy ElectronApi after the task #9 IPC addition. What's still dead-but-present (cleanup in next commit): - tool-use-card.tsx + tool-action-header / tool-command-card / tool-diff-card / tool-ask-card / citation-chips (~1180 LOC) — no longer imported by anything; deleting in step 6 cleanup. - aitypes.ts WaveUIMessage / WaveUIMessagePart / WaveUIDataToolUse — same. - @ai-sdk/react in package.json — deletable next commit. Verification - tsc --noEmit -p tsconfig.json: 58 pre-existing errors unchanged, 0 new errors in the agent path. - vitest run: 172/172 pass. - Manual smoke deferred to step 6. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Jason-Shen2
added a commit
that referenced
this pull request
May 24, 2026
Step 6/6 of task #12. With AgentChatHost + AgentBlockElement now driven by usePiChat (commit c0222e1), nothing imports the following any more — delete: frontend/app/store/aitypes.ts (~150 LOC) WaveUIMessage / WaveUIMessagePart / WaveUIDataToolUse + Citation / SuggestedRule / AskUserQuestion* / ApprovalDestination types. Pi shape replaces all of this end-to-end. frontend/app/term/render/tool-use-card.tsx (~275 LOC) frontend/app/term/render/tool-action-header.tsx (~91 LOC) frontend/app/term/render/tool-command-card.tsx (~61 LOC) frontend/app/term/render/tool-diff-card.tsx (~170 LOC) frontend/app/term/render/tool-ask-card.tsx (~451 LOC) frontend/app/term/render/citation-chips.tsx (~132 LOC) Wave-era rich tool-card UX (approval flow, askquestion takeover, file/line citations, diff view). These supported the 11 tools deferred-to-deprecated in task #10 (ask_user_question, dangerous, transfer_to_user, file_tracker, write_plan, etc.); no surviving code path needs them. The new ToolCallCard (committed dc9cd6e) is the lean replacement: name + input preview + collapsible result, no approval / citation / askquestion machinery. Total dead-code deletion: ~1330 LOC across 7 files. npm deps removed: @ai-sdk/react (the React useChat hook crest used pre-pi) ai (the underlying ai-sdk core) + 16 transitive dependencies via npm uninstall. Verification - tsc --noEmit -p tsconfig.json: 58 pre-existing errors unchanged. - vitest run: 172/172 pass. Task #12 (usePiChat + drop @ai-sdk/react) is now complete. Tasks #13 (delete Go agent stack) and #14 (E2E regression) unblocked. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
6669ad7 to
a05522a
Compare
Jason-Shen2
added a commit
that referenced
this pull request
May 24, 2026
…ee model One-off runner that exercises the full integrated agent stack (sessions + AgentHarness + pi-ai openai-completions provider + tools) against a real OpenRouter free model. Used for the post-#12 manual smoke; keep for future regression checks against OpenRouter specifically (the registry-driven providers have their own paths). Usage: OPENROUTER_API_KEY=sk-or-v1-... \ npx tsx emain/agent/_test-openrouter.ts ["prompt text"] # override model: OPENROUTER_MODEL=openai/gpt-oss-20b:free ... Confirmed working today: - text-only round-trip (single-word reply) - tool-calling round-trip: agent invokes list_dir, gets real filesystem output, summarizes; 2 turns, 130 streaming chunks, 5-line JSONL session, stopReason: stop, $0 cost (free tier). Implementation notes - Constructs Model<"openai-completions"> by hand because OpenRouter's :free model variants aren't in pi-ai's models.generated.ts (LiteLLM doesn't enumerate them). - baseUrl is "https://openrouter.ai/api/v1" — the openai SDK pi delegates to appends /chat/completions itself. The crest catalog has the same field overspecified for the OLD Go HTTP path (it strips the suffix); when task #13 deletes that path we should normalize the catalog format too. - Sessions dir is sandboxed to os.tmpdir() — doesn't touch the real ~/.config/crest{-dev}/sessions/ tree. Delete this file once task #14 has a real E2E regression harness covering all 4 providers. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
a05522a to
6b5aa2e
Compare
6b5aa2e to
232acd2
Compare
…tory with 9 updates Bumps the dev-dependencies-minor group with 9 updates in the / directory: | Package | From | To | | --- | --- | --- | | [@tailwindcss/vite](https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-vite) | `4.2.1` | `4.3.0` | | [@vitejs/plugin-react-swc](https://github.com/vitejs/vite-plugin-react/tree/HEAD/packages/plugin-react-swc) | `4.2.3` | `4.3.1` | | [globals](https://github.com/sindresorhus/globals) | `17.4.0` | `17.6.0` | | [node-abi](https://github.com/electron/node-abi) | `4.26.0` | `4.31.0` | | [sass](https://github.com/sass/dart-sass) | `1.91.0` | `1.101.0` | | [tailwindcss](https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/tailwindcss) | `4.2.1` | `4.3.0` | | [tsx](https://github.com/privatenumber/tsx) | `4.21.0` | `4.22.4` | | [typescript-eslint](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/typescript-eslint) | `8.56.1` | `8.61.0` | | [@tailwindcss/cli](https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-cli) | `4.2.1` | `4.3.0` | Updates `@tailwindcss/vite` from 4.2.1 to 4.3.0 - [Release notes](https://github.com/tailwindlabs/tailwindcss/releases) - [Changelog](https://github.com/tailwindlabs/tailwindcss/blob/main/CHANGELOG.md) - [Commits](https://github.com/tailwindlabs/tailwindcss/commits/v4.3.0/packages/@tailwindcss-vite) Updates `@vitejs/plugin-react-swc` from 4.2.3 to 4.3.1 - [Release notes](https://github.com/vitejs/vite-plugin-react/releases) - [Changelog](https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react-swc/CHANGELOG.md) - [Commits](https://github.com/vitejs/vite-plugin-react/commits/v4.3.1/packages/plugin-react-swc) Updates `globals` from 17.4.0 to 17.6.0 - [Release notes](https://github.com/sindresorhus/globals/releases) - [Commits](sindresorhus/globals@v17.4.0...v17.6.0) Updates `node-abi` from 4.26.0 to 4.31.0 - [Release notes](https://github.com/electron/node-abi/releases) - [Commits](electron/node-abi@v4.26.0...v4.31.0) Updates `sass` from 1.91.0 to 1.101.0 - [Release notes](https://github.com/sass/dart-sass/releases) - [Changelog](https://github.com/sass/dart-sass/blob/main/CHANGELOG.md) - [Commits](sass/dart-sass@1.91.0...1.101.0) Updates `tailwindcss` from 4.2.1 to 4.3.0 - [Release notes](https://github.com/tailwindlabs/tailwindcss/releases) - [Changelog](https://github.com/tailwindlabs/tailwindcss/blob/main/CHANGELOG.md) - [Commits](https://github.com/tailwindlabs/tailwindcss/commits/v4.3.0/packages/tailwindcss) Updates `tsx` from 4.21.0 to 4.22.4 - [Release notes](https://github.com/privatenumber/tsx/releases) - [Changelog](https://github.com/privatenumber/tsx/blob/master/release.config.cjs) - [Commits](privatenumber/tsx@v4.21.0...v4.22.4) Updates `typescript-eslint` from 8.56.1 to 8.61.0 - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/typescript-eslint/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.61.0/packages/typescript-eslint) Updates `@tailwindcss/cli` from 4.2.1 to 4.3.0 - [Release notes](https://github.com/tailwindlabs/tailwindcss/releases) - [Changelog](https://github.com/tailwindlabs/tailwindcss/blob/main/CHANGELOG.md) - [Commits](https://github.com/tailwindlabs/tailwindcss/commits/v4.3.0/packages/@tailwindcss-cli) --- updated-dependencies: - dependency-name: "@tailwindcss/cli" dependency-version: 4.3.0 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: dev-dependencies-minor - dependency-name: "@tailwindcss/vite" dependency-version: 4.3.0 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: dev-dependencies-minor - dependency-name: "@vitejs/plugin-react-swc" dependency-version: 4.3.1 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: dev-dependencies-minor - dependency-name: globals dependency-version: 17.6.0 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: dev-dependencies-minor - dependency-name: node-abi dependency-version: 4.31.0 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: dev-dependencies-minor - dependency-name: sass dependency-version: 1.100.0 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: dev-dependencies-minor - dependency-name: tailwindcss dependency-version: 4.3.0 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: dev-dependencies-minor - dependency-name: tsx dependency-version: 4.22.3 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: dev-dependencies-minor - dependency-name: typescript-eslint dependency-version: 8.59.4 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: dev-dependencies-minor ... Signed-off-by: dependabot[bot] <support@github.com>
232acd2 to
f07ed6f
Compare
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 the dev-dependencies-minor group with 9 updates in the / directory:
4.2.14.3.04.2.34.3.117.4.017.6.04.26.04.31.01.91.01.101.04.2.14.3.04.21.04.22.48.56.18.61.04.2.14.3.0Updates
@tailwindcss/vitefrom 4.2.1 to 4.3.0Release notes
Sourced from @tailwindcss/vite's releases.
... (truncated)
Changelog
Sourced from @tailwindcss/vite's changelog.
... (truncated)
Commits
588bd734.3.0 (#20023)d194d4cdocs: fix various typos in comments and documentation (#19878)db27049fix(@tailwindcss/vite): include@variantin feature detection (#19966)5a79990Always resolve relative files, relative to the current .css file (#19965)f3fdda2fix(vite): avoid resolving JS plugins to browser CSS entries (#19949)69ad7cc4.2.4 (#19948)685c19eFix issue around resolving paths in@tailwindcss/vite(#19947)2e3fa494.2.3 (#19944)5cb1efdfix(vite): resolve tsconfig paths in CSS and JS resolvers (#19803)d596b0c4.2.2 (#19821)Maintainer changes
This version was pushed to npm by GitHub Actions, a new releaser for
@tailwindcss/vitesince your current version.Updates
@vitejs/plugin-react-swcfrom 4.2.3 to 4.3.1Release notes
Sourced from @vitejs/plugin-react-swc's releases.
Changelog
Sourced from @vitejs/plugin-react-swc's changelog.
Commits
Updates
globalsfrom 17.4.0 to 17.6.0Release notes
Sourced from globals's releases.
Commits
6b1587017.6.000a4dd9Update globals (2026-05-01) (#343)b8170c817.5.05d84602Update globals (2026-04-12) (#342)1b727e5Fix build script for ES globals (#341)Updates
node-abifrom 4.26.0 to 4.31.0Release notes
Sourced from node-abi's releases.
Commits
bc8d01ffeat: update ABI registry (#288)7d58262feat: update ABI registry (#287)7455da6feat: update ABI registry (#284)ef6749ebuild(deps): bump actions/setup-node from 6.3.0 to 6.4.0 (#281)04cfa07build(deps): bump electron/github-app-auth-action from 2.0.0 to 2.1.0 (#282)1604ccabuild(deps): bump actions/github-script from 8.0.0 to 9.0.0 (#283)80c3250build: oxc.rs (#280)0f48016ci: don't deploy to auto-updater environment (#279)01a4804feat: update ABI registry (#277)3277437ci: fixups to pass zizmor audit (#276)Install script changes
This version adds
preparescript that runs during installation. Review the package contents before updating.Updates
sassfrom 1.91.0 to 1.101.0Release notes
Sourced from sass's releases.
... (truncated)
Changelog
Sourced from sass's changelog.
... (truncated)
Commits
63b9922Load import-only files through package.jsonexports(#2772)c7e9947Migrate from bufbuild/buf-setup-action to bufbuild/buf-action (#2773)7674a4cBump postcss from 8.5.13 to 8.5.15 in /pkg/sass-parser (#2774)5fd18c7Bump node engine requirement to >=20.19.0 and chokidar requirement to ^5.0.0 ...8c1d984Deprecate adjacent compound selectors (#2765)8e5f718Bump postcss from 8.5.12 to 8.5.13 in /pkg/sass-parser (#2767)1447f9bBump postcss from 8.5.8 to 8.5.12 in /pkg/sass-parser (#2766)83c39feSupport the top-level parent selector (#2758)ec85871Bump EndBug/add-and-commit from 9 to 10 (#2756)a604acd[Function Name] Implement changes (#2731)Maintainer changes
This version was pushed to npm by GitHub Actions, a new releaser for sass since your current version.
Updates
tailwindcssfrom 4.2.1 to 4.3.0Release notes
Sourced from tailwindcss's releases.
... (truncated)
Changelog
Sourced from tailwindcss's changelog.
... (truncated)
Commits
588bd734.3.0 (#20023)59936c6Addtab-*utilities (#20022)90a2373addzoom-*utilities (#20020)2e1ccf7Addscrollbar-gutter-*utilities (#20018)754e751Use non-existing example in tests (#20021)12eb5aeCleanup noisy test output (#20015)4255671Improve snapshot tests (#20013)8c77989Ensure math operators are surrounded by whitespace in arbitrary values (#20011)b4db3b9Add scrollbar-width and scrollbar-color utilities (#19981)08cad84Support--default(…)in--value(…)and--modifier(…)to support fallbac...Updates
tsxfrom 4.21.0 to 4.22.4Release notes
Sourced from tsx's releases.
... (truncated)
Commits
1ce8463fix: resolve CommonJS directory requires inside dependencies (#803)dce02fcfix: decode typed loader source68f72f3fix: preserve entrypoint with TypeScript preload hooks69455cftest: cover package exports for ambiguous ESM reexports35b700bfix: preserve CJS JSON require in ESM hooksef807dbchore: update testing dependencies3917090test: document compatibility test taxonomyde8113frefactor: centralize Node capability factsc1f62dbtest: consolidate tsconfig path edge coverage4e08174test: consolidate loader hook coverageMaintainer changes
This version was pushed to npm by GitHub Actions, a new releaser for tsx since your current version.
Updates
typescript-eslintfrom 8.56.1 to 8.61.0Release notes
Sourced from typescript-eslint's releases.