Skip to content

feat(ipc): runner-aware task IPC infra + auto env tracking#430

Draft
wan9chi wants to merge 1 commit into
mainfrom
infra-env-track
Draft

feat(ipc): runner-aware task IPC infra + auto env tracking#430
wan9chi wants to merge 1 commit into
mainfrom
infra-env-track

Conversation

@wan9chi
Copy link
Copy Markdown
Member

@wan9chi wan9chi commented Jun 7, 2026

PR 1 of 2 — splits #410 into a Graphite stack.

Stack:

Establishes the runner ↔ vite IPC channel and the auto env-tracking half of runner-aware caching:

  • vite_task_ipc_shared, vite_task_server, vite_task_client (+napi): the IPC protocol, Rust transport, and embedded napi client vite loads by absolute path (no-op when absent).
  • vite reports getEnv/getEnvs/disableCache to the runner; the fingerprint diffs the tracked env value/glob match-set across runs and reports envs changed on a miss (wording matches manual env config).
  • ignoreInput/ignoreOutput are accepted over IPC but applied as a no-op here — they land in feat(cache): runner-aware auto output tracking + ignore consumption #431.
  • Auto output restoration stays disabled: output: None resolves to a disabled glob config (matching prior behavior), so a cache hit replays recorded output without restoring written files.

The napi type-def emission for the embedded client cdylib is redirected to a discarded sink in its build.rs so it doesn't leak RunnerClient/load into consumer bindings.

🤖 Generated with Claude Code

Establishes the runner ↔ vite IPC channel and the auto env-tracking half
of runner-aware caching:

- `vite_task_ipc_shared`, `vite_task_server`, `vite_task_client`(+napi):
  the IPC protocol, Rust transport, and embedded napi client vite loads
  by absolute path (no-op when absent).
- vite reports `getEnv`/`getEnvs`/`disableCache` to the runner; the
  fingerprint diffs the tracked env value/glob match-set across runs and
  reports `envs changed` on a miss (wording matches manual env config).
- `ignoreInput`/`ignoreOutput` are accepted over IPC but applied as a
  no-op for now — they land with auto output tracking.
- Auto output restoration stays disabled: `output: None` resolves to a
  disabled glob config (matching prior behavior), so a cache hit replays
  recorded output without restoring written files.

The napi `type-def` emission for the embedded client cdylib is redirected
to a discarded sink in its build.rs so it doesn't leak `RunnerClient`/`load`
into consumer bindings.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Copy link
Copy Markdown
Member Author

wan9chi commented Jun 7, 2026

@socket-security
Copy link
Copy Markdown

Review the following changes in direct dependencies. Learn more about Socket for GitHub.

Diff Package Supply Chain
Security
Vulnerability Quality Maintenance License
Addedcargo/​napi@​3.9.08210093100100
Addedcargo/​napi-build@​2.3.29810093100100
Addedcargo/​napi-derive@​3.5.69910093100100

View full report

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant