100 Commits
Author SHA1 Message Date
nessar 0d900fd72d feat(planning): make optimization rules composable
Closes #70, #71, #72, #73, and #74

See merge request nessar/vac-optimizer!189
2026-10-10 14:56:48 +00:00
nessar ae68e31575 docs: describe the advisory planning benchmark 2026-10-10 16:42:04 +02:00
nessar 98e87fecee ci: make the deferred planning benchmark non-blocking
Run the unchanged benchmark as a separate advisory job while #78 is open.
Keep functional coverage and other checks required, and retain the 2 GB heap
and 300-second protocol limit. Record #78's obligation to restore the gate.

Refs: #75, #78
2026-10-10 16:36:11 +02:00
nessar 6811142299 feat(planning): make optimization rules composable
Evaluate explicit, ordered optimization configurations through one shared
planner model. Add six editable presets, durable one-time legacy migration,
and consistent completed and cancelled plan provenance.

Include functional regressions and the agreed trace-removal and benchmark
follow-up specs. Performance acceptance remains in #78 under unchanged gates.

Refs: #70, #71, #72, #73, #74, #75, #76, #77, #78
2026-10-10 16:07:34 +02:00
nessar 209bf05f36 feat(docs): add detailed planning objectives and optimization rules documentation 2026-10-08 23:20:40 +02:00
nessar 0c266a4b9d fix(deps): update angular-cli monorepo to v22.2.2
See merge request nessar/vac-optimizer!185
2026-10-08 19:08:11 +00:00
nessar f786872a18 feat(ui): configure planning horizon alongside leave balances
See merge request nessar/vac-optimizer!183
2026-10-08 19:07:27 +00:00
nessar ad5ef69f5f docs: document GitFlow rules for agents
See merge request nessar/vac-optimizer!186
2026-10-08 08:10:35 +00:00
nessar 749348ec0d docs: document GitFlow rules for agents 2026-10-08 08:56:00 +02:00
nessar 6777cbc282 feat(ui): use Material datepickers for planning horizon 2026-10-08 06:49:06 +00:00
nessar 31d4333783 feat(ui): configure planning horizon alongside leave balances 2026-10-08 06:49:06 +00:00
nessar 964abd3546 ci: enforce GitFlow and publish branch images
See merge request nessar/vac-optimizer!184
2026-10-08 06:48:18 +00:00
nessar 42f1114709 ci: serialize test workers and cap Node memory 2026-10-08 01:05:41 +02:00
nessar 8fcd53fc32 ci: allow the complete benchmark to finish on shared runners 2026-10-08 00:54:49 +02:00
nessar 6b3113de9a ci: bound the benchmark heap on shared runners 2026-10-08 00:43:21 +02:00
nessar 2a53bb6cb4 ci: enforce GitFlow and publish branch images 2026-10-08 00:09:29 +02:00
nessar 06adeb12d6 feat(stats): count holidays connected to weekends (#68) 2026-10-07 23:12:06 +02:00
nessar da08ee054d feat(stats): show gross earned leave by rule (#67) 2026-10-07 22:58:15 +02:00
nessar 3fbf9c3172 feat(stats): show work and time-off lengths (#66) 2026-10-07 22:39:05 +02:00
nessar d9f3f8d34a feat(stats): open calculated plan statistics (#65) 2026-10-07 22:12:56 +02:00
nessar 3dc601982a feat: enhance user input component with new styling and functionality
- Added informational styling to warning cards in user input component.
- Improved remaining days details and history display with new computed properties.
- Updated user input service to manage planning outcomes and traces more effectively.
- Enhanced leave planner service to classify remaining balances with detailed reasons.
- Expanded translation service to support new balance reasoning and suggestions.
- Updated translations for multiple languages to reflect new features and terminology.
2026-10-07 21:49:33 +02:00
nessar 9851edf906 feat(planning): #62 #63 #64 enhance leave planner with calculation date and entitlement details
- Introduced calculationDate in various service interfaces and snapshots to track the date of planning calculations.
- Added futureEntitlement and includedEntitlement fields to the translation service and respective language files for better user feedback.
- Updated leave-planner.worker to handle calculationDate and declaredDays in requests.
- Enhanced tests to ensure proper handling of calculation dates and artifact retention during planning processes.
- Improved snapshot and explanation outputs to include calculation date for clarity in planning results.
2026-10-07 19:22:46 +02:00
nessar 036a8c0e1e #61 2026-10-07 00:28:29 +02:00
nessar 03841c6e3d docs: update README to clarify planner functionality and enhance architectural details 2026-10-06 21:25:14 +02:00
nessar 4de2b9e63f feat: add functionality for declaring non-working days and their impact on leave balances 2026-10-05 18:55:15 +02:00
nessar bc8570d8ca feat: add PlanningDurationService for estimating planning duration
- Implemented PlanningDurationService to provide an indicative wait time before calculation based on user input and calendar settings.
- Introduced duration estimation logic that considers horizon dates, balances, and rules without triggering a calculation.
- Enhanced user input component to display estimated duration using the new service.
- Updated translation files to include new duration estimate strings in multiple languages.
- Added tests for PlanningDurationService to ensure accurate duration estimation and calibration.
- Refactored leave planner service to remove hardcoded deadlines and improve worker responsiveness.
2026-10-05 17:06:17 +02:00
nessar 2edf2004f5 feat(planner): implement cancellation for planning calculations
- Refactor leave-planner.worker.ts to support cancellation of ongoing calculations.
- Introduce `calculatePlanningAsyncInternal` for asynchronous planning calculations.
- Add cancellation handling in the worker message event.
- Update planning-date.ts with new utility functions for date manipulation.
- Extend translation-service.ts and translation files (en.json, de.json, es.json, fr.json) to include new strings related to planning horizon and cancellation.
- Create documentation for the cancellation feature in planner-cancellation.md.
- Add unit tests for cancellation functionality in leave-planner-cancellation.spec.ts and leave-planner.worker.spec.ts.

#57 #58
2026-10-05 15:34:07 +02:00
nessar 5c35a59805 docs(planning): record horizon and cancellation decisions (#12) 2026-10-05 11:19:46 +02:00
nessar f94ed3fc50 test: update calendar year planning tests for user interaction and state management 2026-10-05 10:08:51 +02:00
nessar 6681d438dc style: update scrollbar styling for mat-dialog-content 2026-10-05 09:41:46 +02:00
nessar 8d8b5c8e7f Merge branch 'renovate/node-24.x' into 'main'
chore(deps): update node.js to v24

See merge request nessar/vac-optimizer!182
2026-10-05 07:41:33 +00:00
nessar b76e311576 #23 2026-10-04 23:33:07 +02:00
nessar b0ba4227ac #22 2026-10-04 23:19:21 +02:00
nessar 578aafbf91 #21 2026-10-04 22:48:37 +02:00
nessar 5a34160ab2 feat: add unified Settings dialog (#18) 2026-10-04 22:01:00 +02:00
nessar bdb1e3e230 docs: add ADR for restoring saved planning inputs before generating random defaults 2026-10-04 21:31:38 +02:00
nessar 96a39473e6 Merge branch 'renovate/major-angular-monorepo' into 'main'
fix(deps): update angular monorepo to v22

See merge request nessar/vac-optimizer!178
2026-10-04 18:24:03 +00:00
nessar d79e9fa5cf fix(deps): update AnalogJS for Angular 22 2026-10-04 20:19:06 +02:00
nessar d64ba608c2 fix(deps): align Angular framework and CLI upgrades 2026-10-04 20:12:55 +02:00
nessar a5c9b4bc9b fix: format Angular hydration providers 2026-10-04 20:07:18 +02:00
nessar f119dd5dda Merge remote-tracking branch 'origin/main' into renovate/major-angular-monorepo
# Conflicts:
#	bun.lock
2026-10-04 20:05:49 +02:00
nessar f227085fa7 Merge branch 'renovate/major-nx-monorepo' into 'main'
chore(deps): update nx monorepo to v23

See merge request nessar/vac-optimizer!176
2026-10-04 17:57:56 +00:00
nessar c118d8c2b3 Merge remote-tracking branch 'origin/main' into renovate/major-nx-monorepo
# Conflicts:
#	bun.lock
2026-10-04 19:53:34 +02:00
nessar 3e6bb9c3a2 Merge branch 'renovate/vite-tsconfig-paths-6.x' into 'main'
chore(deps): update dependency vite-tsconfig-paths to v6

See merge request nessar/vac-optimizer!174
2026-10-04 17:47:24 +00:00
nessar da9bea2a97 Merge remote-tracking branch 'origin/main' into renovate/vite-tsconfig-paths-6.x
# Conflicts:
#	bun.lock
#	package.json
2026-10-04 19:43:13 +02:00
nessar 54d4d95426 Merge branch 'renovate/jsdom-30.x' into 'main'
chore(deps): update dependency jsdom to v30

See merge request nessar/vac-optimizer!171
2026-10-04 17:35:44 +00:00
nessar a37f6ad875 ci: run jsdom tests on supported Node runtime 2026-10-04 19:31:59 +02:00
nessar aa69eb8552 Merge remote-tracking branch 'origin/main' into renovate/jsdom-30.x
# Conflicts:
#	bun.lock
#	package.json
2026-10-04 19:23:34 +02:00
nessar 2e58ea6d31 Merge branch 'renovate/major-vitest-monorepo' into 'main'
chore(deps): update vitest monorepo to v5

See merge request nessar/vac-optimizer!177
2026-10-04 17:16:39 +00:00
nessar 3f1c2990aa Merge remote-tracking branch 'origin/main' into renovate/major-vitest-monorepo
# Conflicts:
#	bun.lock
2026-10-04 19:12:45 +02:00
nessar 0b21677541 Merge branch 'renovate/vite-8.x' into 'main'
chore(deps): update dependency vite to v8

See merge request nessar/vac-optimizer!173
2026-10-04 17:03:49 +00:00
nessar f5c7bff848 Merge branch 'renovate/docker-29.x' into 'main'
chore(deps): update docker docker tag to v29

See merge request nessar/vac-optimizer!175
2026-10-04 16:58:59 +00:00
nessar 153d675194 Merge branch 'renovate/jest-preset-angular-17.x' into 'main'
chore(deps): update dependency jest-preset-angular to v17

See merge request nessar/vac-optimizer!170
2026-10-04 16:50:25 +00:00
nessar b0a70050e0 Merge branch 'renovate/angular-cli-monorepo' into 'main'
fix(deps): update angular-cli monorepo to v21.2.24

See merge request nessar/vac-optimizer!168
2026-10-04 16:01:50 +00:00
nessar d497d353b2 Merge remote-tracking branch 'origin/main' into renovate/angular-cli-monorepo
# Conflicts:
#	bun.lock
2026-10-04 17:57:32 +02:00
nessar df1c441d5a Merge branch 'renovate/node-26.x' into 'main'
chore(deps): update dependency @types/node to v26

See merge request nessar/vac-optimizer!169
2026-10-04 15:50:08 +00:00
nessar 4716a794ad Merge branch 'renovate/angular-monorepo' into 'main'
fix(deps): update angular monorepo to v21.2.25

See merge request nessar/vac-optimizer!167
2026-10-03 17:37:00 +00:00
nessar ea6236bb96 fix(deps): update Angular lockfile 2026-10-03 19:33:28 +02:00
nessar 580772446c Merge remote-tracking branch 'origin/main' into renovate/angular-monorepo 2026-10-03 19:31:02 +02:00
nessar 4887e8457e Merge branch 'renovate/docker-24.x' into 'main'
chore(deps): update docker docker tag to v24.0.9

See merge request nessar/vac-optimizer!166
2026-10-03 17:21:16 +00:00
nessar cdf00ee634 Merge branch 'main' into renovate/docker-24.x 2026-10-03 19:17:24 +02:00
nessar 7f3cf2aea2 fix(test): hide runtime worker in jsdom 2026-10-03 18:42:36 +02:00
nessar 274e81c656 fix(ci): stabilize planner tests 2026-10-03 18:19:02 +02:00
nessar dd16db8c87 feat(calendar): add explained period feature and update translations 2026-10-03 17:40:42 +02:00
nessar 01c87d1e44 feat(planning): complete verified explanations and trace delivery (#46)
Implement plan explanations, original decision traces, calendar replay, and worker counterfactual analysis. Preserve incomplete checkpoints and conflict reasons, with accessible navigation and localized comparison details.

Keep planning outcomes independent of tracing and bound worker delivery with receiver acknowledgements. Retain complete candidate history while releasing temporary buffers and benchmark references.

Validated with 201 tests, app/spec type checks, lint, production build, baseline outcome comparisons, and repeated loaded browser measurements. Document performance and remaining limits.
2026-10-03 16:26:56 +02:00
nessar 0ce33cc9d6 UI improvments 2026-10-02 15:05:30 +02:00
nessar c9dbe82b79 fix(planning): complete explanation and trace behavior (#46) 2026-10-02 15:05:30 +02:00
nessar 57a39c81ce Merge branch 'renovate/configure' into 'main'
chore: Configure Renovate

See merge request nessar/vac-optimizer!165
2026-10-02 12:42:56 +00:00
nessar f1f08356df feat(benchmark): enhance benchmark documentation and add emulated run details
fix(benchmark): update deterministic checks and improve measurement accuracy

fix(service): refine candidate recording and enhance balance assignment logic

test(service): add test for balance recording with preference assignment
2026-09-25 14:07:00 +02:00
nessar ff86cf48b4 update skills 2026-09-25 10:00:00 +02:00
nessar 9fb18f57ec Merge branch 'main' of gitlab.nessar.fr:nessar/vac-optimizer 2026-09-02 23:48:59 +02:00
nessar aac9887d77 fix(config): disable analytics in Angular CLI configuration 2026-09-02 23:48:57 +02:00
nessar e7e0f210e9 feat(docs): add explanation for separating plan explanations from calculation traces 2026-08-31 21:21:37 +02:00
nessar fb0c86da3f fix(ui): hide planning details by default 2026-08-31 00:23:09 +02:00
nessar d7a13b0b1e feat(planning): explain and trace planning decisions 2026-08-31 00:02:45 +02:00
nessar 609b3dece9 feat: enhance user input and rules panel components
- Updated dark-light mode button styles for improved responsiveness.
- Enhanced rules panel with additional buttons for moving rules up and down, and updated styles for better layout.
- Added active rule count display in the rules panel header.
- Improved user input component layout with section headings and updated button styles.
- Refactored day input component to use grid layout for better alignment and responsiveness.
- Added new translations for user input and rules panel features.
- Implemented tests for new functionality in rules panel and day input components.
- Added application routes test to ensure correct routing configuration.
2026-08-30 19:16:36 +02:00
nessar 31314f3969 fix(planning): prioritize complete holiday weeks 2026-08-30 17:16:30 +02:00
nessar 5a81e38b95 docs: update README to enhance clarity on planning model and architecture 2026-08-29 13:24:03 +02:00
nessar 7ceaf1a57a feat(planning): implement constraint-first leave planner 2026-08-28 22:44:14 +02:00
nessar ba8dbe92d9 feat: enhance documentation for leave planning concepts and solver recommendations 2026-08-28 17:00:12 +02:00
nessar dfb25b249b refactor(theme): remove obsolete compatibility 2026-08-28 14:56:45 +02:00
nessar c19b62ff85 feat(theme): add system preference (#20) 2026-08-28 14:45:16 +02:00
nessar bb8d09dda4 Add writing-for-agents skill documentation and related files
- Created SKILL.md and SKILL-MECHANICS.md for writing agent skills.
- Added openai.yaml for agent interface configuration.
- Introduced AGENTS.md for agent skills overview.
- Established CONTEXT.md for personal leave planning terminology.
- Documented ordered heuristic optimization in ADRs.
- Defined personal client-side planner limitations in ADRs.
- Created domain documentation for engineering skills.
- Added issue tracker guidelines for GitLab.
- Mapped triage labels for issue tracking.
- Initialized skills-lock.json to manage skill dependencies.
2026-08-11 23:34:09 +02:00
nessar a990e7e971 refactor: remove global animations provider and enable deprecation linting rule 2026-05-31 01:38:05 +02:00
nessar 9c9114879d feat: implement internationalization with multi-language support and runtime language selection 2026-05-30 21:03:12 +02:00
nessar 2de09383b9 chore: install Node.js dependency and disable prerendering in build configuration 2026-05-30 18:16:11 +02:00
nessar 9a77665593 build: add oven/bun:latest image to build stage 2026-05-30 17:43:36 +02:00
nessar d22c8845a6 feat: add dayjs dependencies, adjust budget, and initialize agent verification rules 2026-05-30 17:05:59 +02:00
nessar a508c42694 chore: migrate vitest coverage provider from v8 to istanbul 2026-05-30 16:20:21 +02:00
nessar 7ce139c310 forks 2026-05-30 16:12:14 +02:00
nessar edc003ff49 chore: remove jasmine from compiler options types in tsconfig.spec.json 2026-05-30 16:07:24 +02:00
nessar 598e071bd6 style: update indentation in test-setup.ts to use tabs 2026-05-30 16:02:17 +02:00
nessar 11924df19e refactor: migrate testing framework from Karma/Jasmine to Vitest with Angular support 2026-05-30 15:57:36 +02:00
nessar 237d995e16 refactor: clean up karma configuration by removing unused launcher flags and simplifying reporter formatting 2026-05-30 15:45:45 +02:00
nessar 3a105097c3 feat: add Karma configuration with ChromeHeadlessCI launcher and update test CI pipeline 2026-05-30 15:40:16 +02:00
nessar 7702efc165 style: apply consistent code formatting and indentation to rules panel component 2026-05-30 15:26:28 +02:00
nessar 17afa909a9 chore: update healthcheck command to use bun instead of node in compose files 2026-05-30 15:03:59 +02:00
nessar 3b042fa4f5 chore: migrate build and CI pipeline from npm to bun 2026-05-30 15:01:57 +02:00
nessar 08ee84e5c9 feat: implement rules engine and management panel for custom holiday optimization 2026-05-30 15:00:07 +02:00
nessar c0549de4dd ci: switch to --password-stdin for secure docker registry login 2026-05-05 21:26:27 +02:00