-
9c7062104a
1
main
ferdi2go
2026-09-07 13:58:23 +00:00
-
189bcb6f38
test: add jsdom render + persistence integration tests (#13)

ferdi2goandClaude Opus 4.8
2026-06-03 14:03:00 +00:00
-
836d0eeda5
chore: unify name to "Meeting Mixer", README tech stack, name magic numbers (#16)

ferdi2goandClaude Opus 4.8
2026-06-03 13:44:45 +00:00
-
b3eeca50b3
a11y: associate form labels with inputs (#15)

ferdi2goandClaude Opus 4.8
2026-06-03 13:06:50 +00:00
-
7ab2911c2f
fix(robustness): parseInt radix, minGapDays null-guard, log silent catches (#14)

ferdi2goandClaude Opus 4.8
2026-06-03 13:05:34 +00:00
-
fd9870871b
refactor: centralize shared date/name helpers in utils.js (#12)

ferdi2goandClaude Opus 4.8
2026-06-03 13:01:28 +00:00
-
0efb9cb853
perf(state/assets): debounce saveState, defer SheetJS script (#11)

ferdi2goandClaude Opus 4.8
2026-06-03 12:54:41 +00:00
-
8cd8908f38
perf(calendar): re-render only the changed day cell, not the whole grid (#10)

ferdi2goandClaude Opus 4.8
2026-06-03 12:51:16 +00:00
-
c076b5e1ce
perf(algorithm): precompute history count, drop per-candidate sort (#9)

ferdi2goandClaude Opus 4.8
2026-06-03 12:44:45 +00:00
-
074635c037
docs(security): document localStorage privacy + note ID fallback (#8)

ferdi2goandClaude Opus 4.8
2026-06-03 12:40:58 +00:00
-
e6452fa102
fix(excel): neutralize formula injection in exported names (#7)

ferdi2goandClaude Opus 4.8
2026-06-03 12:37:32 +00:00
-
f8efcf136a
fix(security): add SRI to SheetJS CDN + Content-Security-Policy (#6)

ferdi2goandClaude Opus 4.8
2026-06-03 12:33:34 +00:00
-
142e0efa1f
fix(employees): remove history entries when deleting an employee (#5)

ferdi2goandClaude Opus 4.8
2026-06-03 12:29:16 +00:00
-
7b53618921
fix(state): surface localStorage save failures instead of silent loss (#4)

ferdi2goandClaude Opus 4.8
2026-06-03 12:21:23 +00:00
-
065876ced4
fix(import): validate/normalize imported data, guard Excel I/O (#3)

ferdi2goandClaude Opus 4.8
2026-06-03 12:20:41 +00:00
-
e851bb2833
fix(calendar): preserve manual picks when regenerating a month (#2)

ferdi2goandClaude Opus 4.8
2026-06-03 12:17:22 +00:00
-
700ec6de1c
fix(calendar): use dynamic year range instead of hardcoded 2026 (#1)

ferdi2goandClaude Opus 4.8
2026-06-03 12:12:18 +00:00
-
6736021af1
feat(employees): default minGapDays to 14, robust ID fallback

ferdi2goandClaude Opus 4.8
2026-06-03 12:11:36 +00:00
-
294de5276b
feat(history): sort by date desc + name asc, delete single entry
ferdi2go
2026-04-28 11:37:31 +00:00
-
078d74f09f
feat(calendar): pass slotsPerDay to generator, show skipped-dates warning
ferdi2go
2026-04-28 11:26:53 +00:00
-
fa28640c28
feat(calendar): N moderator slots per day with disable-on-duplicate
ferdi2go
2026-04-28 11:17:08 +00:00
-
3b84fce1e6
feat(calendar): add 'Pro Tag' moderator-count selector
ferdi2go
2026-04-28 11:09:42 +00:00
-
69e424519d
feat(excel): group entries by date, join names with ' & '
ferdi2go
2026-04-28 11:03:05 +00:00
-
ad680ae1f6
feat: state.settings.moderatorsPerDay with localStorage persistence
ferdi2go
2026-04-28 10:48:58 +00:00
-
a825a63961
feat(data): settings.moderatorsPerDay in load/save JSON
ferdi2go
2026-04-28 10:38:51 +00:00
-
7bda92a0a3
feat(data): removeHistoryEntry supports optional employeeId
ferdi2go
2026-04-28 10:31:38 +00:00
-
23683102bc
feat(data): dedupe history by (date, employeeId)
ferdi2go
2026-04-28 10:21:18 +00:00
-
3d314e84fd
feat(algo): skip day when candidates < slotsPerDay
ferdi2go
2026-04-28 10:07:22 +00:00
-
625f9c7037
feat(algo): slotsPerDay parameter for top-N selection
ferdi2go
2026-04-28 09:59:44 +00:00
-
790ea72987
refactor: generatePlan returns {assignments, skippedDates}
ferdi2go
2026-04-28 09:55:25 +00:00
-
e4ae866375
chore: ui polish — extract inline styles to CSS classes, add header art

ferdi2goandClaude Opus 4.7
2026-04-28 09:43:53 +00:00
-
6fd2cfcf04
docs: implementation plan for multiple moderators per day

ferdi2goandClaude Opus 4.7
2026-04-28 09:31:43 +00:00
-
b794581a06
docs: spec for multiple moderators per day

ferdi2goandClaude Opus 4.7
2026-04-28 09:24:42 +00:00
-
ac5e80726f
chore: add README
Ferdinand
2026-04-15 09:00:28 +02:00
-
dca82fe381
feat: auto-persist state to localStorage on every change
Ferdinand
2026-04-08 14:17:24 +02:00
-
6ecf3e4409
feat: complete morning meeting planner v1.0
Ferdinand
2026-04-08 13:25:39 +02:00
-
b9fb08299e
fix: wire year selector and fix shallow copy in loadPlanFromHistory
Ferdinand
2026-04-08 13:25:36 +02:00
-
bcdba20e09
feat: data tab with JSON load/save and history management
Ferdinand
2026-04-08 13:22:48 +02:00
-
d6b013132a
refactor: use removeHistoryEntry API and remove unnecessary spread in calendar
Ferdinand
2026-04-08 13:22:08 +02:00
-
d65758ed91
feat: calendar tab with plan generation, holiday marking and manual override
Ferdinand
2026-04-08 13:21:00 +02:00
-
d61dcbe6b2
feat: employees tab with constraint editor (DOM-based, XSS-safe)
Ferdinand
2026-04-08 13:18:48 +02:00
-
72a2af3a74
feat: Excel import/export module via SheetJS
Ferdinand
2026-04-08 13:17:12 +02:00
-
adf656c9f3
test: add missing tests for companyClosures, lowPriorityDays, and manual flag
Ferdinand
2026-04-08 13:16:46 +02:00
-
b5cfe5b336
feat: algorithm module with unit tests

FerdinandandClaude Sonnet 4.6
2026-04-08 13:10:49 +02:00
-
b0dfd1f716
fix: add error handling, empty name guard, and input validation to data module
Ferdinand
2026-04-08 13:03:54 +02:00
-
0a1f30553a
feat: data module with JSON load/save and employee CRUD
Ferdinand
2026-04-08 10:42:53 +02:00
-
3240f78904
fix: add type=button to tab buttons to prevent accidental form submit
Ferdinand
2026-04-08 10:42:22 +02:00
-
f306c634d5
feat: project scaffold with tabs, styles and package.json
Ferdinand
2026-04-08 10:40:32 +02:00
-
0997689d82
docs: add implementation plan for morning meeting planner
Ferdinand
2026-04-08 10:29:56 +02:00
-
72891f770f
Add morning meeting planner design spec
Ferdinand
2026-04-07 16:28:09 +02:00