Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 16 additions & 0 deletions AI.md
Original file line number Diff line number Diff line change
Expand Up @@ -660,6 +660,22 @@ The core domain in `packages/core/src/domain/` covers the entities the plan call
- keeping every destination available as an icon-only link in the collapsed rail, with explicit accessible names and native hover titles while visual labels and section headings are hidden
- storing the user's explicit choice under `gph.sidebar.state`, defaulting to the established expanded layout when no preference is present or browser storage is unavailable
- adding AppShell interaction coverage for restore/toggle/persist behavior and a CSS contract regression for the rail width and label-hiding rules
- completed the 2026-07-16 interaction-backed user-flow UX pass by:
- auditing every shipped web flow in the running app at 1280 x 720 and 390 x 844, including launcher/open/demo, Overview, Board, Backlog, Table, Roadmap, Calendar, Docs, Bug Triage, My Work, Search, Trash, Settings, command palette, work-item detail, and guarded close-project behavior
- making the launcher wait for an explicit `New project` action instead of opening creation on first run or immediately after project close
- passing active-project context into shared desktop/mobile navigation so project routes and Settings are hidden until a project exists, while Projects/Open/Demo remain available
- adding `aria-selected` to project view tabs, hiding native mobile viewbar scrollbars while preserving touch scrolling, and using a two-by-two mobile Overview metric grid
- subscribing `CommandPalette` to command-registry updates with `useSyncExternalStore`, fixing the empty initial result set when commands register after mount
- giving Board and Bug Triage item links stable title-based accessible names, while shortening Bug Triage visual action labels and retaining item-specific `aria-label` values
- removing the shared `gph-work-row` class from Backlog rows so its seven-column layout is no longer overridden by the five-column shared row contract
- progressively revealing Table bulk selectors only after selection and moving column visibility checkboxes into a collapsed disclosure with a visible-column count
- wrapping Roadmap milestone metadata and replacing the empty resize edge with a Lucide grip button that supports pointer drag, one-day Arrow changes, and one-week Shift+Arrow changes
- changing Calendar tracks to `minmax(0, 1fr)` and constraining the agenda column so all seven days remain visible at standard desktop width
- making work-item metadata collapse to one column on narrow screens, adding shrink/wrap guards around the modal title/footer, and replacing the native label multi-select with explicit checkbox chips
- differentiating disabled primary buttons from enabled green actions and constraining Bug Triage context fields with zero-minimum grid tracks
- replacing the stale read-only flow report with `docs/gph-user-flows-review.md`, updating `Readme.md`, and adding focused regressions across AppShell, CommandPalette, WorkItemModal, ProjectsListView, BoardView, TableView, and RoadmapView
- verifying the finished pass with 53 focused UI tests, the complete 230-test repository suite, all workspace TypeScript checks, a successful production web build, and matched-state desktop/mobile browser comparisons
- aligning the Playwright project bootstrap with the calmer launcher behavior through a shared `createProjectFromLauncher()` helper, so E2E coverage chooses `New project` before submitting the creation modal instead of depending on the removed automatic first-run modal

## Open follow-on planning

Expand Down
9 changes: 5 additions & 4 deletions Readme.md
Original file line number Diff line number Diff line change
Expand Up @@ -43,20 +43,21 @@ For real project work, run the repo locally or use the future release builds.

Grillo is past the skeleton stage. The current app includes:

- Workspace launcher with new, open/import, demo, recent-project, template preview, and explicit browser-vs-folder storage guidance.
- Workspace launcher with new, open/import, demo, recent-project, template preview, explicit browser-vs-folder storage guidance, and a calm first-run state that waits for the user to choose a path.
- Overview, board, backlog, table, roadmap, calendar, docs, bug triage, my work, search, trash, and settings surfaces.
- Board-local column management for adding unmapped workflow statuses, removing columns without deleting their statuses or work items, and creating a new categorized status and column together.
- Explicit save-state UI in the project header, including save destination, dirty state, save failures, manual save/retry, switch project, and guarded close-project actions.
- Folder-backed browser saves through File System Access where supported, browser-local recovery copies, and direct folder reopen flows for `.pm-suite` projects.
- Explicit per-project browser/folder save targets plus content-fingerprint stale-write protection; selecting a folder for one project does not silently move another project.
- Tauri desktop storage command wiring for folder-backed save/load/existence/delete flows.
- Shared UI primitives for buttons, forms, surfaces, modals, dialogs, tables, empty states, inline alerts, toasts, help tips, and work item cards/rows.
- Modal-style work item detail with comments, checklist/subtasks, relationships, custom fields, attachments, reminders, activity, automation previews, archive/trash/delete, and a pinned action footer.
- Responsive modal-style work item detail with mobile-friendly metadata fields, explicit label checkboxes, comments, checklist/subtasks, relationships, custom fields, attachments, reminders, activity, automation previews, archive/trash/delete, and a pinned action footer.
- Docs with explicit view/edit sessions, Markdown preview, document templates, internal links, linked work, backlinks, dirty navigation confirmation, and safe deletion behavior.
- Bug triage with readable lanes, severity/priority/source/context fields, intake gates, accept/decline/snooze/assign actions, and a searchable duplicate-link picker.
- Automation rules with command-backed create/update/delete/enable/disable, dry-run previews, item-event triggers, and audited action failures.
- JSON, Markdown, and CSV import/export, plus clean print preview.
- Light/dark/system themes, a remembered desktop sidebar that toggles between full navigation and an icon rail, responsive mobile navigation, offline status, and local/self-hosted PWA install support when the browser exposes it.
- Light/dark/system themes, a remembered desktop sidebar that toggles between full navigation and an icon rail, context-aware no-project navigation, responsive mobile navigation and project tabs, offline status, and local/self-hosted PWA install support when the browser exposes it.
- Planning-surface UX polish including aligned Backlog rows, progressive Table controls, a keyboard-operable Roadmap resize grip, a complete seven-day Calendar beside its agenda, and item-title link names for assistive technology.
- A realistic, non-persistent demo workspace with active and completed work, bug intake, comments, members, dates, milestones, and linked docs.

## Storage model
Expand Down Expand Up @@ -121,7 +122,7 @@ The test suite covers:
- `packages/ui`: AppShell, project router, shared primitives, work item modal, planning views, docs, settings, launcher, command palette, trash, automation settings.
- `apps/web`: browser/PWA storage adapter and distribution-mode behavior.
- `apps/desktop`: desktop storage adapter command wiring.
- `tests/e2e`: hybrid parity, project workflow, theme, command palette, export, search, calendar creation, docs edit-mode behavior, and mobile navigation.
- `tests/e2e`: explicit launcher-to-project setup, hybrid parity, project workflow, theme, command palette, export, search, calendar creation, docs edit-mode behavior, and mobile navigation.

Run unit/component coverage with `npm test`, browser coverage with `npm run test:e2e`, and TypeScript coverage with `npm run typecheck`.

Expand Down
Loading
Loading