13 Commits

Author SHA1 Message Date
Hermes (Agent)
70b90895de feat(redesign): Trello-style kanban UI (P7 integration)
Some checks failed
Build and Deploy / build-and-deploy (push) Failing after 29s
2026-06-24 06:27:31 +00:00
Hermes (Agent)
86651b8d26 feat(redesign): [P7] refactor boardStore to singleton + App smoke test
- boardStore.js: refactored from per-component useState to a module-level
  singleton via useSyncExternalStore. All callers share state (true
  singleton). Exposes __resetStore/__setState/__setPersistOnChange for
  test isolation. addBoard/addList/addCard still return the new id
  (computed from post-action state).
- jest.config.js: added moduleNameMapper for CSS (identity-obj-proxy)
  + transformIgnorePatterns for @dnd-kit ESM modules.
- jest.setup.js: stub window.matchMedia for AppShell, clear localStorage
  + reset store singleton before each test.
- src/test/testUtils.jsx: renderWithStore now wraps the UI in a Host
  that calls useBoardStore and clones the child element to inject
  { state, actions } as props. Returns result.state/result.actions
  getters so tests can read state and invoke actions from outside.
- src/components/List.test.jsx: Host accepts state/actions props and
  falls back to useBoardStore for standalone use.
- src/components/ListHeader.test.jsx + Board.test.jsx: updated to new
  result.state API (was store.getState() in P3's API).
- src/App.jsx: final spec wiring — sidebar + board area + TopBar + Board
  + empty states (first-run + select-board). Reads from useBoardStore,
  passes state + actions down to AppShell + Board.
- src/App.test.jsx: smoke test — sidebar + topbar + board + lists render
  when seeded; +Create board flow creates a board and activates it;
  first-run and select-board empty states render correctly; mobile
  breakpoint shows hamburger.

All 119 tests pass across 15 suites. npm run build green.
2026-06-24 05:36:59 +00:00
Hermes (Agent)
81b37530e3 feat(redesign): [P7] integrate P3+P4+P5+P6 components + new App.jsx
- src/components/Board.jsx: prop-driven, owns single DnD context
  (PointerSensor 5px activation distance, KeyboardSensor, closestCorners).
  Wires all sortable lists + cards. Drops P3's store-coupled Board in
  favour of P4's prop-driven List pattern + P2's canonical store.
- src/components/List.jsx: prop-driven, wraps cards in SortableContext
  via SortableCard helper for vertical DnD.
- src/components/ListHeader.jsx: rewritten as prop-driven.
- src/components/Card.jsx, CardDetailModal.jsx: P4 verbatim.
- src/lib/boardDnd.js: P5 reducer + ID helpers.
- src/store/boardStore.js: extended addBoard/addList/addCard to return
  new ids (computed from post-action state) so callers (Sidebar) can
  select the new entity immediately.
- src/components/AppShell.jsx, Sidebar.jsx, TopBar.jsx, EmptyState.jsx:
  P6 verbatim (stateless, prop-driven).
- src/App.jsx: new shell per spec — Sidebar + board area with
  FirstRunEmptyState / SelectBoardEmptyState / TopBar+Board.
- src/test/testUtils.jsx: renderWithStore helper that pre-seeds
  localStorage so useBoardStore's initializer picks up test state.
- src/index.css: fresh global resets.
- Deleted: TodoForm/TodoList/TodoItem (legacy flat-todo), useLocalStorage
  (replaced by useBoardStore), old App.css.
- Added: __fixtures__/DnDFixtureBoard.jsx (P5 DnD fixture for tests).
2026-06-24 05:26:59 +00:00
Hermes (Agent)
a023c53bdf feat(redesign): [P7] import P2 data model + Jest setup + unified deps
- src/lib/migrate.js: v1->v2 migration
- src/store/boardStore.js: canonical useBoardStore hook (P2 ratified by orchestrator)
- Jest + RTL + jsdom + @dnd-kit + identity-obj-proxy (merged from P5's package.json)
2026-06-24 05:21:56 +00:00
root
8628bcb8b2 fix: Traefik labels, single-level subdomain, registry auth in workflow
Some checks failed
Build and Deploy / build-and-deploy (push) Failing after 10s
- Replace bare port mapping with Traefik labels (hermes-net, websecure, cloudflare cert)
- Fix two-level subdomain: todo.hermes.damascusfront.net → ultra-todo.damascusfront.net
- Add registry_url/user/pass to Portainer deploy step
- Add healthcheck_url verification
- Replace GH-specific docker actions with raw docker CLI for Gitea runner compat
- Fix registry URL: git.homelab.local:443 (was :8443)
2026-05-30 00:23:53 +00:00
4317835cc0 Fix action source to local gitea
Some checks failed
Build and Deploy / build-and-deploy (push) Failing after 19s
2026-05-29 22:37:20 +00:00
ea761583cd Add docker-compose
Some checks failed
Build and Deploy / build-and-deploy (push) Failing after 5s
2026-05-29 22:36:22 +00:00
a7a96dfcf1 Add Dockerfile
Some checks failed
Build and Deploy / build-and-deploy (push) Has been cancelled
2026-05-29 22:36:17 +00:00
70012b835e Integrate new portainer-deploy-action
Some checks failed
Build and Deploy / build-and-deploy (push) Failing after 4s
2026-05-29 22:35:17 +00:00
91a1651cfd Add Portainer deployment workflow
Some checks failed
Build and Deploy / build-and-deploy (push) Failing after 2m33s
2026-05-29 21:18:49 +00:00
8f6385ef26 feat: full Ultra Todo app — localStorage CRUD, due dates, today filter, polished UI 2026-05-18 22:12:43 +00:00
bbac57bca0 scaffold: Vite + React project setup 2026-05-18 22:00:14 +00:00
6544175815 Initial commit 2026-05-18 21:45:03 +00:00