Repository navigation
What's Changed
- refactor(ui): D06 Onboarding and Sign-in Rosters on the canonical UI foundation; a failed load shows Retry; baseline focus and state repairs by @waffleflopper in #1618
- docs(stabilization): record D06 #1604 and D03 #1601 as merged; D05 in progress by @waffleflopper in #1619
- refactor(ui): D05 Critical Tasks and Evals on the canonical UI foundation; failed loads show Retry; baseline focus, form and state repairs by @waffleflopper in #1620
- refactor(ui): D07 Organization settings, creation, export and notices on the canonical UI foundation; errors stay in context and focus never drops by @waffleflopper in #1621
- refactor(ui): D07 platform admin on the canonical UI foundation; errors stay in context, focus never drops, stale page links recover by @waffleflopper in #1622
- refactor(ui): D08 public and marketing pages on the canonical UI foundation; dark and amber text meet AA, no Duty Roster claim by @waffleflopper in #1623
- refactor(ui): D09 residual shared compositions on the canonical UI foundation; type lists work from the keyboard, one main and one Close, inventory fully dispositioned by @waffleflopper in #1625
- fix(ui): R1 Calendar and Personnel load failures show Retry instead of a stuck skeleton; loading is announced by @waffleflopper in #1630
- refactor(ui): R2 ConfirmDialog takes Button's variant names, unconsumed pattern parts deleted, UI docs describe only production by @waffleflopper in #1631
- fix(ui): R3 shared text and controls meet AA contrast in light and dark by @waffleflopper in #1632
- fix(ui): R4 menus fit the viewport, focus never drops, errors describe the current failure by @waffleflopper in #1633
- fix(ui): R5 skip link first, truthful notification failure, focus after archive delete, matching tooltips, link focus ring by @waffleflopper in #1635
- fix(ui): R6 every select listbox is named after its field; a held Ranks save keeps focus by @waffleflopper in #1637
- docs(stabilization): Phase 10 integrated check accepted on ec04159 by @waffleflopper in #1638
- test(verify): F01 setup-mail capture, provider faults and failing baseline (#1639, 1 of 2) by @waffleflopper in #1647
- fix(identity): derive invitation-origin setup grants and add platform rescind (#1639, 2 of 2) by @waffleflopper in #1649
- fix(organization): recoverable Organization creation with its owner and defaults in one retry-safe transaction by @waffleflopper in #1650
- feat(ui): WorkspaceToolbar folds Critical Tasks controls into More by rank (#1624, slice 1) by @waffleflopper in #1648
- fix(identity): keep session tokens server-side and close identity limit gaps (#1641, PR 1) by @waffleflopper in #1651
- fix(identity): truthful password outcome, unused endpoint removed, identity proof completed (#1641, PR 2) by @waffleflopper in #1652
- feat(ui): ICT soldier record, reports, task library and Evals use the fitted WorkspaceToolbar (#1624, slice 4) by @waffleflopper in #1654
- feat(ui): Calendar pages use the fitted WorkspaceToolbar (#1624, slice 2) by @waffleflopper in #1653
- feat(ui): Training matrix, reports, types and views use the fitted WorkspaceToolbar (#1624, slice 3) by @waffleflopper in #1655
- fix(organization): close direct governance writes that bypass member-management rules (#1642, PR 1) by @waffleflopper in #1657
- feat(ui): ranks, members, logs, account and the dashboard use the fitted WorkspaceToolbar (#1624, slice 5b) by @waffleflopper in #1656
- fix(access): deny suspended Organizations' private data to page loads and direct database access (#1642, PR 2) by @waffleflopper in #1659
- feat(ui): admin pages use the fitted WorkspaceToolbar (#1624, slice 6) by @waffleflopper in #1658
- feat(ui): Personnel and onboarding use the fitted WorkspaceToolbar (#1624, slice 5a) by @waffleflopper in #1660
- fix(access): make direct feature-record writes and deletion requests follow the app's authority (#1642, PR 3) by @waffleflopper in #1662
- fix(access): limit Group catalogs to each member's scope and Group writes to Organization-wide configurers (#1642, PR 4) by @waffleflopper in #1663
- refactor(ui): delete the legacy toolbar parts and close #1624 (slice 7) by @waffleflopper in #1661
- fix(personnel): make file cleanup recoverable by @waffleflopper in #1666
- feat(onboarding): redesigned Onboarding workspace (#1665) by @waffleflopper in #1672
- docs(changelog): announce the Onboarding redesign by @waffleflopper in #1673
- fix(personnel): commit archive lifecycle commands atomically by @waffleflopper in #1671
- fix(onboarding): commit template commands atomically by @waffleflopper in #1676
- fix(onboarding): stop a denied History request from crashing the server by @waffleflopper in #1675
- docs(verification): reconcile the Onboarding recipes with the merged redesign by @waffleflopper in #1674
- fix(stores): drop responses from an Organization lifetime the user has left by @waffleflopper in #1677
- fix(imports): stop chunked imports that outlive their Organization by @waffleflopper in #1678
- fix(sign-in-rosters): make scan changes recoverable and retain shared files by @waffleflopper in #1679
- fix(calendar): make configuration commands atomic by @waffleflopper in #1682
- fix(calendar): keep re-entry snapshots fresh without hiding confirmed changes by @waffleflopper in #1690
- fix(critical-tasks): recover uncertain saves and reorder atomically by @waffleflopper in #1691
- fix: finish retained mutation recovery for D05 by @waffleflopper in #1693
- chore(vercel): reduce deployment build costs by @waffleflopper in #1695
- fix: answer invalid, stale and conflicting writes with truthful 4xx (D06 PR 1) by @waffleflopper in #1696
- fix: say when a save, delete, reorder or settings read fails (D06 PR 2) by @waffleflopper in #1698
- fix: read operational today in the viewer's time zone (D06 PR 3) by @waffleflopper in #1700
- fix: finish D06 with local completion days, import validation and refused-save reasons (D06 PR 4) by @waffleflopper in #1701
- fix(calendar): explain failed clears and reconcile D08 acceptance by @waffleflopper in #1704
- perf(verify): reproducible workload measurement for Phase 12 (D01 PR 1) by @waffleflopper in #1713
- ci: run PR checks after review and deploy previews on request by @waffleflopper in #1714
- feat(calendar): ship the Calendar redesign by @waffleflopper in #1721
- feat(calendar): filter the duty picker by rank, role and MOS by @waffleflopper in #1722
- ci: run CI on GitHub Actions until Depot minutes reset by @waffleflopper in #1732
- fix(calendar): print the Calendar's bars instead of per-day cells by @waffleflopper in #1731
- perf(verify): record the Phase 12 journey baseline and refine D02–D06 (D01) by @waffleflopper in #1733
- perf(personnel): read the roster and detail Person once and refresh only owning loads (D03) by @waffleflopper in #1734
- fix(identity): keep streamed responses alive across a session refresh (D04) by @waffleflopper in #1735
- fix(ci): pass the Supabase image registry through to the database job by @waffleflopper in #1740
- perf(rls): decide completion read visibility once per query (D04) by @waffleflopper in #1739
- fix(rating-scheme): hide archived People's evaluations from Evals and due counts by @waffleflopper in #1744
- perf(reports): take the Critical Tasks report off the workspace stream and order paged reads (D05) by @waffleflopper in #1748
- feat(personnel): redesign the Personnel detail page by @waffleflopper in #1747
- perf(rls): decide Calendar row visibility once per statement and scope the assignment save (D06) by @waffleflopper in #1769
- chore(verify): sign verification actors in with a provider session by @waffleflopper in #1770
- perf(calendar): read availability for visible days, keep the reloaded month and run a first visit's load once (D06) by @waffleflopper in #1771
- docs(stabilization): close Phase 12 on per-repair evidence and run perf only on request (D07) by @waffleflopper in #1780
- chore(stabilization): D01 code sweep, dispositions and src/features comments (1 of 2) by @waffleflopper in #1789
- chore(stabilization): D01 comment cleanup in lib, routes and scripts (2 of 2) by @waffleflopper in #1790
- feat(settings): redesign Unit settings and add unit-wide feature switches by @waffleflopper in #1796
- docs(stabilization): aggressive documentation prune (D02) by @waffleflopper in #1797
- feat(dashboard): frame 01, one viewer day and the section registry by @waffleflopper in #1798
- feat(dashboard): strength band with bottom line, 14-day forecast and group strength by @waffleflopper in #1800
- test(stabilization): targeted test pruning (D03) by @waffleflopper in #1802
- feat(dashboard): Needs you queue and On duty (slice 3) by @waffleflopper in #1801
- docs(stabilization): final check and process retirement (D04) by @waffleflopper in #1803
- feat(dashboard): Quick add for Status, Training record and Start onboarding by @waffleflopper in #1804
- feat(dashboard): Readiness row with Critical Tasks (slice 5) by @waffleflopper in #1806
- feat(dashboard): act on Needs you rows in place by @waffleflopper in #1805
- chore(dashboard): merge main into the dashboard integration branch by @waffleflopper in #1808
- feat(dashboard): features off or not set up, per-source gates and security fixes (slice 7) by @waffleflopper in #1811
- chore(agents): hook ship-it into finish-pr, add review guidelines and a Node guard by @waffleflopper in #1812
- ci(database): check migration order and seed schema drift by @waffleflopper in #1813
- refactor(verification): slim the verify skill and add owned-control helpers by @waffleflopper in #1814
- fix(access): enforce Organization feature switches at the database boundary by @waffleflopper in #1810
- chore(ci): bound test workers, clear run-ci per run, check docs against any base by @waffleflopper in #1815
- docs(verify): correct the recipes the Dashboard redesign touched by @waffleflopper in #1816
- fix(dashboard): final review UI fixes by @waffleflopper in #1818
- fix(dashboard): final review non-UI fixes by @waffleflopper in #1817
- chore(dashboard): sync main, drop Paper from the verify skill and announce the Dashboard by @waffleflopper in #1819
- feat(dashboard): redesign the Dashboard as a morning brief by @waffleflopper in #1820
- feat(calendar): add the duty roster count engine by @waffleflopper in #1823
- fix(dashboard): long-absence returns, date-only Record class, On duty names, and #1799/#1821 cleanup by @waffleflopper in #1824
- feat(calendar): add duty roster settings and DA 6 forms by @waffleflopper in #1825
- feat(calendar): give status types an effect on duty rosters by @waffleflopper in #1829
- feat(calendar): add the DA 6 view and print by @waffleflopper in #1830
- feat(calendar): fill duty days from the roster and show roster counts by @waffleflopper in #1831
- feat(calendar): find a replacement from the roster by @waffleflopper in #1832
- feat(calendar): copy starting numbers from a paper DA 6 and lock them once duty is served by @waffleflopper in #1834
- chore(calendar): merge main into duty rosters and fill Dashboard duty from the roster by @waffleflopper in #1836
- feat(app-shell): announce duty rosters in What's New by @waffleflopper in #1838
- fix(calendar): start the first DA 6 at its first recorded duty and bound roster history reads by @waffleflopper in #1840
- fix(calendar): link the DA 6 from the planner and keep Find replacement's re-picks for Someone else by @waffleflopper in #1841
- fix(dashboard): skip the swap counter write once the duty fill panel is gone by @waffleflopper in #1844
- feat(training): color the Excel export by status on the export date by @waffleflopper in #1839
- fix(calendar): close DA 6 forms only from the server by @waffleflopper in #1846
- chore(calendar): merge main into duty rosters again by @waffleflopper in #1845
- fix(calendar): wider type sheet, visible roster Fill, Someone else note by @waffleflopper in #1849
- feat(import): rebuild every bulk import on one shared import flow by @waffleflopper in #1848
- chore(calendar): sync duty rosters with main, reopen rosters after their predecessor by @waffleflopper in #1850
- feat(calendar): duty rosters that fill duty days by DA PAM 220-45 and keep a DA 6 by @waffleflopper in #1843
- fix(import): guard status import overlaps and keep corrected training names in retry files by @waffleflopper in #1852
- feat(personnel): let Operators create active People in their Groups by @waffleflopper in #1854
- fix(calendar): say whether a duty before the roster's DA 6 counts by @waffleflopper in #1856
- chore(deps): bump SvelteKit, Vite and runtime deps to clear Dependabot alerts by @waffleflopper in #1855
- fix(calendar): keep an assignment's identity when its assignee changes (#1321) by @waffleflopper in #1859
- perf(calendar): keep Bulk status roster rows mounted through search (#1718) by @waffleflopper in #1860
- chore(deps): bump zod and layerchart 2 to clear Dependabot alerts by @waffleflopper in #1861
- chore(deps): bump happy-dom to 21 and fast-uri to 3.1.9 by @waffleflopper in #1863
- feat(calendar): swap two people's duty days without changing the counts by @waffleflopper in #1865
- feat(critical-tasks): open Defaults from the Task Library toolbar (#1416) by @waffleflopper in #1867
Full Changelog: v0.5-beta...v0.5.1