Skip to content

feat: interactive runtime config UI + dynamic vacations and staffing - #195

Merged
Vhivi merged 4 commits into
mainfrom
feature/config-ui-and-runtime-config
May 1, 2026
Merged

Vhivi merged 4 commits into
mainfrom
feature/config-ui-and-runtime-config

Conversation

@Vhivi

@Vhivi Vhivi commented May 1, 2026

Copy link
Copy Markdown
Owner

Summary

This PR introduces a full interactive configuration workflow and makes planning generation use runtime config updates immediately, without backend restart.

What changed

Backend

  • Added runtime config endpoints:
    • GET /config
    • GET /config/default
    • PUT /config
  • Added config validation using JSON Schema before saving.
  • Added atomic config write and in-memory hot reload after save.
  • Generation now uses active runtime config directly.
  • Added clearer error handling for invalid runtime config values.

Solver

  • Added support for dynamic vacation names (no longer hard-coded to Jour/Nuit/CDP only).
  • Added staffing_requirements support for simultaneous agent count per vacation/day.
  • Added fallback staffing value (1) when not configured.
  • Updated constraints/objective internals to work safely when some vacations are absent (e.g. no Nuit, no CDP).

Frontend

  • Added interactive configuration mode in App.vue:
    • Load active config
    • Load default config
    • Edit vacations, durations, staffing, agents, holidays, solver values
    • Save to config.json
  • Added auto-save-before-generate behavior.
  • Fixed generation flow so planning still runs immediately after autosave.

Documentation

  • Updated README.md, docs/config-reference.md, CHANGELOG.md for:
    • runtime config API
    • dynamic vacations
    • staffing requirements
    • interactive config workflow

Tests

  • Backend: python -m pytest -q -> passing
  • Frontend: npm test -- --runInBand -> passing
  • Frontend lint: npm run lint -> passing
  • Frontend build: npm run build -> passing

Notes

  • backend/config.json is local runtime config; tests were validated with config.example.json compatibility.
  • Infeasible staffing/vacation combinations correctly return No solution found..

@Vhivi Vhivi added documentation Improvements or additions to documentation enhancement New feature or request backend frontend test labels May 1, 2026
@Vhivi Vhivi self-assigned this May 1, 2026
@Vhivi Vhivi added this to the 5 - Requests features milestone May 1, 2026
@Vhivi
Vhivi merged commit 2f26d87 into main May 1, 2026
2 checks passed
@Vhivi
Vhivi deleted the feature/config-ui-and-runtime-config branch May 1, 2026 16:52
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

backend documentation Improvements or additions to documentation enhancement New feature or request frontend optimization test

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant