Skip to content

override-remove reports success when the dev-server guard blocked the operation #139

Description

@alamb-hex

Follow-up from #136.

runWithDevServerGuard now aborts with blocked: true, ranOperation: false when it cannot stop the dev server — that path is new, because before #90 was fixed stopProject effectively always claimed success, so a failed stop was unreachable.

src/app/api/projects/[id]/override-remove/route.ts:121 doesn't check blocked. It returns { success: true, output: guardOutcome.result ?? '' }, so an operation that never ran surfaces to the user as a success with empty output.

The sibling routes (update, cve-lite/[id]/fix, overrides/[id]/fix) should be audited for the same pattern — none of them branch on stopped either.

Two smaller items from the same review, worth folding in:

  • A failed guard-stop leaves the server down. The abort takes an early return that skips the finally calling deps.start, so a partially-stopped server is never restarted, and stopped: false is reported inaccurately.
  • shell: false projects are force-killed 500ms after releasing their port. When shell is false the tracked child is the server, so the process-exit grace period applies to a real graceful shutdown and truncates the 4s SIGTERM budget by 8x.

Activity

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions