You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
#88 detached Job dogfood exposed a separate Windows operations problem: even with structured execution, Job observation, Computer Use, and detached execution, replacing or deploying the Windows Runner still depends on host-specific launcher behavior and out-of-band recovery steps.
This is post-0.3.8 follow-up work, not a blocker for v0.3.8. Detached execution from #88 already removes the most important self-maintenance failure mode by allowing owned work to survive a Runner process restart.
Dogfood evidence
On MSI, the production Runner was originally launched as:
That topology prevented the #88 detached supervisor from using CREATE_BREAKAWAY_FROM_JOB safely. Final #88 dogfood required a host-level launcher topology that kept the interactive user/session but placed the main Runner under a breakaway-capable process lineage:
The same work also exposed a lifecycle identification problem: a replacement wrapper that identified the main Runner only by executable path could mistake a surviving internal detached supervisor (webcodex-runner.exe --webcodex-internal-*) for the main Runner and therefore fail to start a replacement.
These are deployment/lifecycle concerns, not detached-execution ownership defects.
Direction
Add a narrow, first-class Windows Runner lifecycle/deployment substrate for a single local Runner installation.
It should make the supported topology and replacement contract explicit rather than relying on machine-private wrapper conventions.
At minimum, define and support:
an interactive-user/session-compatible launcher topology suitable for Computer Use;
a main Runner process that is not trapped in a non-breakaway outer Job when detached execution is enabled;
exact main-Runner identification that excludes internal detached supervisor/watchdog modes;
PID + process creation/start identity fencing before replacement effects;
bounded replacement and readiness observation using the exact new agent_instance_id and build/source identity;
rollback when a replacement cannot become Ready;
preservation of existing private ManagedChild / Job Object ownership semantics;
bounded diagnostics that distinguish launcher failure, stale Runner identity, and replacement registration failure.
Non-goals
Do not turn this into:
a fleet upgrade manager;
a generic Windows service framework;
an arbitrary process-detach/broker API;
a shell/WMI fallback inside normal WebCodex execution semantics;
WMI or another bootstrap mechanism may be appropriate for the Windows installation topology, but it should remain part of the explicit Runner lifecycle/deployment boundary rather than an implicit fallback in ordinary tools.
Context
#88 detached Job dogfood exposed a separate Windows operations problem: even with structured execution, Job observation, Computer Use, and detached execution, replacing or deploying the Windows Runner still depends on host-specific launcher behavior and out-of-band recovery steps.
This is post-0.3.8 follow-up work, not a blocker for v0.3.8. Detached execution from #88 already removes the most important self-maintenance failure mode by allowing owned work to survive a Runner process restart.
Dogfood evidence
On MSI, the production Runner was originally launched as:
That topology prevented the #88 detached supervisor from using
CREATE_BREAKAWAY_FROM_JOBsafely. Final #88 dogfood required a host-level launcher topology that kept the interactive user/session but placed the main Runner under a breakaway-capable process lineage:The same work also exposed a lifecycle identification problem: a replacement wrapper that identified the main Runner only by executable path could mistake a surviving internal detached supervisor (
webcodex-runner.exe --webcodex-internal-*) for the main Runner and therefore fail to start a replacement.These are deployment/lifecycle concerns, not detached-execution ownership defects.
Direction
Add a narrow, first-class Windows Runner lifecycle/deployment substrate for a single local Runner installation.
It should make the supported topology and replacement contract explicit rather than relying on machine-private wrapper conventions.
At minimum, define and support:
agent_instance_idand build/source identity;ManagedChild/ Job Object ownership semantics;Non-goals
Do not turn this into:
WMI or another bootstrap mechanism may be appropriate for the Windows installation topology, but it should remain part of the explicit Runner lifecycle/deployment boundary rather than an implicit fallback in ordinary tools.
Acceptance criteria
--webcodex-internal-*processes with the primary Runner.agent_instance_id, expected build commit, and clean source identity.Scheduling
Target this after v0.3.8. Do not expand the v0.3.8 release scope for this issue.