Skip to content

Show the planning check's state in the review view #198

Open

Description

@mchwang

Follow-up from #164 (PR #193).

Problem

PR #193 adds a planning check (PlanningCheck in runner/planning.ts). When the check fails, or has not finished yet, codeboost refuses each planning request with a 409 whose message starts "Planning is unavailable:" and names the reason. That is the only place the state shows.

The review view shows nothing about it when it loads. A person learns planning is off only after clicking Suggest edits or Draft. #164's acceptance asks for "a clear 'planning unavailable' state", and this half of it was left out of #193, because web/server.ts and web/public/* belonged to other work at the time.

Proposal

  • Expose the check's state in the review payload: one of passed, running, failed (with the reason) or no vendor chosen. The state comes from PlanningCheck through productionPlanning.
  • In the Plans screen:
    • While the check runs or has failed, show the state beside the planning controls, with the reason when it failed.
    • Disable Suggest edits and Draft until the check passes.

Also in scope (accepted limits recorded in #193, all needing web/server.ts)

  • When a later startup step fails, startServer does not close planning. The check keeps running for any caller other than the CLI.
  • A check deferred out of the Store transaction can start during shutdown. PlanningCheck cannot see the server's stopping flag.
  • A Store read error during the check's wait is recorded as a refusal under the action ID, and is replayed on a resend.

Acceptance

  • A review loaded while the check is running, has failed, or has no vendor chosen shows that state without a click.
  • The planning buttons are disabled until the check passes.
  • Browser tests for passed, running and failed states.

Activity

  1. added 2 commits that reference this issue on Oct 21, 2026
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