Commit Graph
100 Commits
Author SHA1 Message Date
nessar 40a11c245a perf(planning): incremental exact scoring for the loaded year
CI / policy (push) Successful in 6s
CI / validate (push) Successful in 57s
CI / build (push) Successful in 1m1s
CI / security (push) Successful in 54s
CI / test (push) Successful in 3m9s
CI / benchmark (push) Successful in 7m25s
CI / images (push) Successful in 1m10s
CI / required (push) Successful in 1s
close #280

See pull request #287
2026-10-17 02:18:27 +02:00
nessarandClaude Opus 5.5 3bbe989eca test(benchmark): print a readable summary table
CI / policy (push) Successful in 7s
CI / validate (push) Successful in 1m5s
CI / build (push) Successful in 1m38s
CI / policy (pull_request) Successful in 10s
CI / security (push) Successful in 1m19s
CI / test (push) Successful in 3m29s
CI / validate (pull_request) Successful in 1m42s
CI / benchmark (push) Successful in 4m13s
CI / security (pull_request) Successful in 56s
CI / build (pull_request) Successful in 1m42s
CI / test (pull_request) Successful in 3m8s
CI / images (push) Successful in 1m15s
CI / required (push) Successful in 1s
CI / benchmark (pull_request) Successful in 3m37s
CI / images (pull_request) Successful in 1m11s
CI / required (pull_request) Successful in 1s
Print the calibration and a Markdown table with one aligned row per
scenario as soon as it finishes: both planning times, mean, budget, ratio,
multiplier, outcome, placements, determinism and budget status. Write
directly to stdout so Vitest adds no per-line headers. The complete TSV
report still follows the table.

Refs #281, #285

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-17 02:09:54 +02:00
nessarandClaude Opus 5.5 cfdb28c90a ci(benchmark): size the hang guard for the slowest runner
CI / policy (push) Successful in 6s
CI / validate (push) Successful in 53s
CI / build (push) Successful in 1m18s
CI / policy (pull_request) Successful in 9s
CI / security (push) Successful in 1m12s
CI / validate (pull_request) Successful in 1m18s
CI / benchmark (push) Successful in 3m56s
CI / test (push) Successful in 4m6s
CI / build (pull_request) Successful in 36s
CI / security (pull_request) Successful in 1m5s
CI / test (pull_request) Successful in 3m2s
CI / images (push) Successful in 1m15s
CI / required (push) Successful in 1s
CI / benchmark (pull_request) Successful in 7m18s
CI / images (pull_request) Successful in 1m50s
CI / required (pull_request) Successful in 1s
The first PR run landed on srvhome, about 1.9 times slower than
nessar-desktop. The fixed 300-second timeout killed its protocol during the
loaded year, although every completed scenario was within its relative
budget. Raise the CI timeout to 600 seconds and the test timeout to 570
seconds so they only guard against hangs, and record the first CI-runner
ratios.

Refs #285

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-17 01:40:41 +02:00
nessarandClaude Opus 5.5 63b50c4311 docs(benchmark): record the remaining gap to the speed target
CI / policy (push) Successful in 6s
CI / validate (push) Successful in 1m1s
CI / build (push) Successful in 1m27s
CI / policy (pull_request) Successful in 9s
CI / security (push) Successful in 1m16s
CI / validate (pull_request) Successful in 1m34s
CI / benchmark (push) Successful in 4m31s
CI / test (push) Successful in 4m36s
CI / build (pull_request) Successful in 39s
CI / test (pull_request) Successful in 3m24s
CI / security (pull_request) Successful in 1m11s
CI / images (push) Successful in 1m16s
CI / required (push) Successful in 1s
CI / benchmark (pull_request) Failing after 6m0s
CI / images (pull_request) Skipped
CI / required (pull_request) Failing after 2s
The exact optimizations bring the loaded year from 66.0 s to 44.1 s, but the
target of 10 s for the loaded year and 3 s for the other scenarios is not
reached for the loaded year, typed obligations and three years. Record the
gap and the remaining profile, keep the relative-gate multipliers and the
300-second hang guard unchanged, and note that ADR 0003's five-second target
should be revisited together with a decision on search changes.

Refs #286

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-17 00:45:28 +02:00
nessarandClaude Opus 5.5 acdb19352a ci(benchmark): gate scenario speed relative to the runner
Before the protocol, time the frozen engine on the two-year scenario, best
of three, and fail any scenario whose mean planning time exceeds its
multiplier times that calibration. Multipliers come from development-machine
ratios with about 1.5x headroom until #286 tightens them. The 300-second
timeout stays only as a hang guard. The benchmark keeps running on push and
pull_request events because the push run gates image publication.

This replaces the absolute 300-second acceptance protocol named in #78.

Refs #285

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-17 00:45:28 +02:00
nessarandClaude Opus 5.5 68a9e33de6 perf(planning): prune candidates that cannot beat the protected prefix
Finalizing a candidate never moves or retypes a placement, so preference
results and calendar optimizations already have their final values before
it, and leave-balance optimizations do too when nothing can be earned.
Reject a candidate before finalizing when the first differing such
objective of the protected prefix is worse than the baseline. Leave-placement
objectives and earning contexts stop the walk.

The frozen-engine check now also compares cancelled asynchronous runs,
including checkpoints and retained incumbents. The loaded year drops from
48.5 s to 44.3 s; outcomes, explanations and final states are unchanged.

Refs #284

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-17 00:45:28 +02:00
nessarandClaude Opus 5.5 7890a03a74 perf(planning): update plan observations incrementally
Cache an immutable occupancy per placements map and derive a candidate's
time-off period groups, holiday-week completeness and placement tie key
from its parent when one date is added or removed. The from-scratch
computation stays as the test oracle and an opt-in shadow mode. A
fast-check property test compares both after every operation.

The loaded year drops from 66.5 s to 48.5 s and the protocol from 262.0 s
to 193.7 s. Outcomes, explanations and final states stay identical.

Refs #283

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-17 00:45:28 +02:00
nessarandClaude Opus 5.5 87d72064be refactor(planning): consolidate plan observations in one module
Move time-off periods, work sequences, public-holiday weeks, balance
observations, the placement list and both tie keys into
plan-observations.ts. The code moves without behavior changes; all seven
benchmark scenarios produce byte-identical outcomes, explanations and final
states, and the frozen-engine check passes. Benchmark timings stay within
noise.

Refs #282

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-16 23:47:34 +02:00
nessarandClaude Opus 5.5 24c35542a8 test(benchmark): report each scenario as it finishes
Print the report header before the measured runs and each scenario's rows
as soon as its repetitions complete, so a timed-out job still shows the
finished scenarios. The final report, scenarios, warm-ups, repetitions,
assertions, heap limit and timeout are unchanged.

Refs #281

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-16 23:36:11 +02:00
nessarandClaude Opus 5.5 4d26e65672 test(planning): compare the engine against a frozen engine on random requests
Bundle the planning core at a871f8f (develop after PR #278) as a frozen
fixture and compare it with the current engine on 5,000 seeded random
requests. Outcomes, stable explanations, explanation errors and final-state
snapshots must be strictly deep-equal. Requests cover obligations,
preferences, IF_THEN and TIME_WINDOW rules, earned entitlements, composed
optimization rules, declared days, year boundaries and public holidays.

Refs #280

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-16 23:30:30 +02:00
nessar a871f8f28c add a skill
CI / policy (push) Failing after 9s
CI / validate (push) Successful in 1m3s
CI / build (push) Successful in 1m21s
CI / security (push) Successful in 57s
CI / test (push) Successful in 2m22s
CI / benchmark (push) Successful in 5m10s
CI / images (push) Skipped
CI / required (push) Failing after 1s
2026-10-16 22:47:08 +02:00
nessar a371e03462 perf(planning): restore the integrated benchmark gate
CI / policy (push) Successful in 18s
CI / validate (push) Successful in 1m17s
CI / build (push) Successful in 1m23s
CI / security (push) Successful in 1m4s
CI / test (push) Successful in 2m30s
CI / benchmark (push) Failing after 5m55s
CI / images (push) Skipped
CI / required (push) Failing after 2s
See pull request #278
2026-10-16 22:36:31 +02:00
nessarandClaude Opus 5.5 1711bc570c docs(benchmark): record PR #278 benchmark headroom
CI / policy (push) Successful in 8s
CI / validate (push) Successful in 1m13s
CI / build (push) Successful in 1m0s
CI / policy (pull_request) Successful in 7s
CI / security (push) Successful in 1m43s
CI / validate (pull_request) Successful in 54s
CI / test (push) Successful in 3m21s
CI / build (pull_request) Successful in 1m29s
CI / test (pull_request) Successful in 2m19s
CI / security (pull_request) Successful in 1m42s
CI / benchmark (push) Failing after 5m50s
CI / images (push) Skipped
CI / required (push) Failing after 2s
CI / benchmark (pull_request) Successful in 4m58s
CI / images (pull_request) Successful in 1m54s
CI / required (pull_request) Successful in 4s
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-16 22:24:22 +02:00
nessarandClaude Opus 5.5 c6610cd633 perf(planning): reject impossible mandatory moves before copying
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-16 22:04:28 +02:00
nessar 433a8b0ade perf(planning): reuse immutable non-working date counts 2026-10-16 21:19:58 +02:00
nessar c7e7abcd24 perf(planning): build placement date keys directly 2026-10-16 21:03:36 +02:00
nessar cbde23f572 perf(planning): restore the integrated benchmark gate
CI / policy (push) Successful in 7s
CI / validate (push) Successful in 1m23s
CI / test (push) Successful in 3m17s
CI / benchmark (push) Failing after 5m52s
CI / build (push) Successful in 1m31s
CI / security (push) Successful in 1m39s
CI / images (push) Skipped
CI / policy (pull_request) Successful in 7s
CI / validate (pull_request) Successful in 1m11s
CI / test (pull_request) Successful in 3m17s
CI / benchmark (pull_request) Failing after 5m57s
CI / build (pull_request) Successful in 1m30s
CI / security (pull_request) Successful in 1m40s
CI / images (pull_request) Skipped
CI / required (push) Failing after 2s
CI / required (pull_request) Failing after 1s
Reduce objective evaluation and calendar allocation work while preserving planner outcomes and deterministic explanations. Restore required benchmark gating and record the unchanged protocol, differential checks, and browser evidence for #78.
2026-10-16 14:01:32 +02:00
nessar 0852cd4444 test(planning): verify integrated planning after trace removal
CI / policy (push) Successful in 7s
CI / validate (push) Successful in 1m14s
CI / test (push) Successful in 3m21s
CI / benchmark (push) Failing after 5m53s
CI / build (push) Successful in 1m21s
CI / security (push) Successful in 1m45s
CI / images (push) Successful in 1m53s
CI / required (push) Successful in 4s
close #77

See pull request #273
2026-10-16 13:57:53 +02:00
nessar 26a8b076ba ci: use reachable Trivy database mirror
CI / policy (push) Successful in 7s
CI / validate (push) Successful in 1m11s
CI / test (push) Successful in 3m20s
CI / benchmark (push) Failing after 5m57s
CI / build (push) Successful in 1m20s
CI / security (push) Successful in 3m29s
CI / policy (pull_request) Successful in 7s
CI / validate (pull_request) Successful in 1m13s
CI / test (pull_request) Successful in 3m23s
CI / benchmark (pull_request) Failing after 6m10s
CI / build (pull_request) Successful in 1m26s
CI / images (push) Successful in 2m46s
CI / security (pull_request) Successful in 5m57s
CI / required (push) Successful in 4s
CI / images (pull_request) Successful in 3m25s
CI / required (pull_request) Successful in 1s
2026-10-15 23:23:22 +02:00
nessar 56577d23b5 test(planning): verify integrated planning after trace removal
CI / validate (push) Successful in 44s
CI / build (push) Successful in 40s
CI / policy (push) Successful in 6s
CI / policy (pull_request) Successful in 7s
CI / validate (pull_request) Successful in 1m19s
CI / test (push) Successful in 1m52s
CI / benchmark (push) Failing after 5m29s
CI / test (pull_request) Successful in 3m22s
CI / security (pull_request) Failing after 12m15s
CI / build (pull_request) Failing after 14m33s
CI / benchmark (pull_request) Failing after 17m21s
CI / security (push) Failing after 19m29s
CI / images (pull_request) Skipped
CI / images (push) Skipped
CI / required (push) Failing after 1s
CI / required (pull_request) Failing after 1s
2026-10-15 21:45:58 +02:00
nessar 2f4af14869 refactor(planning): remove the original decision trace
CI / policy (push) Successful in 21s
CI / validate (push) Successful in 48s
CI / build (push) Successful in 45s
CI / test (push) Successful in 2m10s
CI / benchmark (push) Failing after 5m49s
CI / security (push) Successful in 6m54s
CI / images (push) Successful in 3m7s
CI / required (push) Successful in 1s
close #76

See pull request #272
2026-10-15 21:26:36 +02:00
nessar d9d9befa12 refactor(planning): remove the original decision trace
CI / policy (push) Successful in 7s
CI / validate (push) Successful in 1m15s
CI / test (push) Successful in 3m18s
CI / benchmark (push) Failing after 5m53s
CI / build (push) Successful in 1m23s
CI / security (push) Successful in 7m6s
CI / policy (pull_request) Successful in 7s
CI / validate (pull_request) Successful in 1m9s
CI / build (pull_request) Successful in 43s
CI / test (pull_request) Successful in 3m19s
CI / images (push) Successful in 3m7s
CI / required (push) Successful in 2s
CI / benchmark (pull_request) Failing after 5m28s
CI / security (pull_request) Successful in 6m37s
CI / images (pull_request) Successful in 3m18s
CI / required (pull_request) Successful in 1s
2026-10-15 20:42:33 +02:00
nessar ea4256107f Merge pull request 'ci: migrate to Gitea Actions' (#271) from feature/gitea-actions into develop
CI / policy (push) Failing after 8s
CI / validate (push) Successful in 1m18s
CI / test (push) Successful in 3m42s
CI / benchmark (push) Failing after 5m59s
CI / build (push) Successful in 1m16s
CI / security (push) Successful in 6m51s
CI / images (push) Skipped
CI / required (push) Failing after 1s
Reviewed-on: #271
2026-10-15 19:55:10 +02:00
nessar d74dfb9938 ci: migrate to Gitea Actions
CI / policy (push) Successful in 48s
CI / validate (push) Successful in 1m25s
CI / test (push) Successful in 3m43s
CI / build (push) Successful in 1m20s
CI / security (push) Successful in 1m31s
CI / benchmark (push) Failing after 5m52s
CI / images (push) Failing after 1m2s
CI / required (push) Failing after 1s
CI / policy (pull_request) Successful in 9s
CI / validate (pull_request) Successful in 1m6s
CI / test (pull_request) Successful in 3m30s
CI / benchmark (pull_request) Canceled after 3s
CI / build (pull_request) Successful in 1m5s
CI / security (pull_request) Successful in 1m27s
CI / images (pull_request) Successful in 2m24s
CI / required (pull_request) Successful in 5s
2026-10-13 19:43:08 +02:00
nessar 7d60157863 docs: migrate repository guidance to Gitea 2026-10-13 19:38:32 +02:00
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