[Debt] Optimize dev-server reload behavior with many enabled modules #262

Closed
opened 2026-07-14 00:13:18 +02:00 by zemion · 2 comments
Owner

Current Cost

The dev launcher watches every enabled module source tree. With many modules enabled, ordinary edits trigger full backend reloads and startup checks across a large workspace. This affects developer feedback time, especially as module count grows.

Desired Shape

Make dev reload behavior configurable and cheaper while keeping the default convenient for normal multi-module development.

Scope

  • Owning repository: govoplan-core and meta launcher integration if needed.
  • Add a way to watch only selected module source trees or disable broad watch dirs.
  • Keep module startup and migration checks correct when the backend does restart.
  • Document the mode for full-product versus focused-module work.

Checklist

  • Inspect current dev launcher watch-dir construction.
  • Add focused watch configuration or launcher flag.
  • Ensure default behavior remains backwards-compatible for broad development.
  • Document recommended focused-module workflow.

Verification Target

  • Dev launcher starts with full watch and focused watch modes.
  • Editing an unwatched module does not reload in focused mode; editing a watched module still reloads.
## Current Cost The dev launcher watches every enabled module source tree. With many modules enabled, ordinary edits trigger full backend reloads and startup checks across a large workspace. This affects developer feedback time, especially as module count grows. ## Desired Shape Make dev reload behavior configurable and cheaper while keeping the default convenient for normal multi-module development. ## Scope - Owning repository: `govoplan-core` and meta launcher integration if needed. - Add a way to watch only selected module source trees or disable broad watch dirs. - Keep module startup and migration checks correct when the backend does restart. - Document the mode for full-product versus focused-module work. ## Checklist - [ ] Inspect current dev launcher watch-dir construction. - [ ] Add focused watch configuration or launcher flag. - [ ] Ensure default behavior remains backwards-compatible for broad development. - [ ] Document recommended focused-module workflow. ## Verification Target - Dev launcher starts with full watch and focused watch modes. - Editing an unwatched module does not reload in focused mode; editing a watched module still reloads.
zemion added the area/devexcodex/readymodule/core
priority
p2
status
ready
type
debt
labels 2026-07-29 14:15:06 +02:00
Author
Owner

Codex State: reviewed

Reviewed after Core 68328f3. The linked WebUI Vite invalidation problem is fixed, and backend discovery watches enabled module roots, but this debt remains open: the launcher has only additive --reload-dir; it still lacks a focused-module watch selector/exclusion mode and the required watched/unwatched reload proof.

## Codex State: reviewed Reviewed after Core `68328f3`. The linked WebUI Vite invalidation problem is fixed, and backend discovery watches enabled module roots, but this debt remains open: the launcher has only additive `--reload-dir`; it still lacks a focused-module watch selector/exclusion mode and the required watched/unwatched reload proof.
Author
Owner

Implemented and pushed in govoplan-core@a80caf7 and govoplan@aa4050c.

  • Added repeatable --reload-module MODULE_ID and --reload-core-only modes while preserving broad watch as the default.
  • Core/config and explicit --reload-dir paths remain watched in focused mode; disabled module selectors fail clearly.
  • Exposed focused launch through GOVOPLAN_BACKEND_RELOAD_MODULES=calendar,campaign and core-only through none.
  • Documented full-product and focused workflows.
  • Added tests proving selected modules are watched, unrelated modules are excluded, core remains watched, and invalid selectors are rejected.

Verification: python -m unittest tests.test_devserver (4 tests), bash -n tools/launch/launch-dev.sh, and git diff --check.

Implemented and pushed in `govoplan-core@a80caf7` and `govoplan@aa4050c`. - Added repeatable `--reload-module MODULE_ID` and `--reload-core-only` modes while preserving broad watch as the default. - Core/config and explicit `--reload-dir` paths remain watched in focused mode; disabled module selectors fail clearly. - Exposed focused launch through `GOVOPLAN_BACKEND_RELOAD_MODULES=calendar,campaign` and core-only through `none`. - Documented full-product and focused workflows. - Added tests proving selected modules are watched, unrelated modules are excluded, core remains watched, and invalid selectors are rejected. Verification: `python -m unittest tests.test_devserver` (4 tests), `bash -n tools/launch/launch-dev.sh`, and `git diff --check`.
zemion removed the
status
ready
codex/ready
labels 2026-07-29 18:53:17 +02:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: GovOPlaN/govoplan-core#262