Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
273 commits
Select commit Hold shift + click to select a range
0a916aa
Merge pull request #20 from aviarytech/feature/batch-1-six-features
brianorwhatever Feb 7, 2026
3bd8c89
feat: auto-create next recurring item when checked off
Feb 7, 2026
8701da1
Merge pull request #22 from aviarytech/feat/recurring-items-auto-create
brianorwhatever Feb 7, 2026
a935855
fix: don't cache hashed JS/CSS in service worker
Feb 7, 2026
855cd8d
Merge pull request #23 from aviarytech/fix/sw-caching
brianorwhatever Feb 7, 2026
01d8aab
fix: wire up TagSelector to Convex backend
Feb 7, 2026
8f1c8ba
feat: Add attachments UI for items
Feb 7, 2026
3c7ea2c
Merge pull request #24 from aviarytech/fix/tags-not-working
brianorwhatever Feb 7, 2026
59f5013
Merge pull request #25 from aviarytech/feat/attachments
brianorwhatever Feb 7, 2026
a180cc3
feat: Add push notifications for due dates and reminders
Feb 7, 2026
d90f72f
feat: Implement sub-items checklist feature
Feb 7, 2026
182ad3b
Merge pull request #26 from aviarytech/feature/sub-items
brianorwhatever Feb 7, 2026
2aa2973
Merge pull request #27 from aviarytech/feature/notifications
brianorwhatever Feb 7, 2026
b2533c4
feat: add calendar view toggle to list view
Feb 7, 2026
970f554
Merge pull request #28 from aviarytech/feat/calendar-view
brianorwhatever Feb 7, 2026
27e640d
feat: Add batch operations for multi-item selection and actions
krusty-agent Feb 7, 2026
d92db84
Merge pull request #29 from aviarytech/feature/batch-operations
brianorwhatever Feb 7, 2026
126ccad
feat: Add list templates feature
Feb 7, 2026
1bb9ffc
feat: Add keyboard shortcuts for power users
Feb 7, 2026
811711b
Merge pull request #30 from aviarytech/feature/list-templates
brianorwhatever Feb 7, 2026
dcbecd7
Merge pull request #31 from aviarytech/feature/keyboard-shortcuts
brianorwhatever Feb 7, 2026
f738c02
fix: resolve tag removal bug by using live item data in modals
Feb 7, 2026
8d1d5e0
Merge pull request #32 from aviarytech/fix/tag-removal-bug
brianorwhatever Feb 7, 2026
2230734
fix: use network-first for navigation to prevent stale HTML
Feb 7, 2026
a4c73fd
Merge pull request #33 from aviarytech/fix/sw-network-first-navigation
brianorwhatever Feb 7, 2026
419f93c
fix: improve header buttons layout for mobile responsiveness
Feb 7, 2026
0a75117
Merge pull request #34 from aviarytech/fix/header-buttons-layout
brianorwhatever Feb 7, 2026
03abb40
fix: skip sub-items query for temp IDs to prevent Convex validation e…
krusty-agent Feb 7, 2026
7796b98
Merge pull request #35 from aviarytech/fix/temp-id-validation-error
brianorwhatever Feb 7, 2026
f89cbfe
fix: cast parentId to Id<"items"> in SubItems addItem call
krusty-agent Feb 7, 2026
12e8b44
Merge pull request #36 from aviarytech/fix/typescript-subitem-parentid
brianorwhatever Feb 7, 2026
7e7889d
fix: consolidate header actions into dropdown menu
krusty-agent Feb 7, 2026
3bf32af
Merge pull request #37 from aviarytech/fix/header-crowding
brianorwhatever Feb 7, 2026
d23d675
feat: Replace modals with slide-up panels for better mobile UX
Feb 7, 2026
5a4dc02
Merge pull request #38 from aviarytech/feat/panels-instead-of-modals
brianorwhatever Feb 7, 2026
7005d05
Make landing page responsive for mobile devices
krusty-agent Feb 7, 2026
cb3fdc2
feat: Add REST API for agent/script access
krusty-agent Feb 7, 2026
9869e3f
Merge pull request #40 from aviarytech/feature/agent-api
brianorwhatever Feb 7, 2026
f2db521
Merge pull request #39 from aviarytech/responsive-landing-page
brianorwhatever Feb 7, 2026
1681115
Add 'join the movement' call-to-action to landing page
krusty-agent Feb 7, 2026
f76d0ca
feat: Add Priority Focus mode for high-priority items
Feb 7, 2026
1b36dc2
feat: Add item comments for collaborative discussions
krusty-agent Feb 7, 2026
9766ab2
Merge pull request #43 from aviarytech/feature/item-comments
brianorwhatever Feb 7, 2026
8e342a5
Merge pull request #42 from aviarytech/feature/priority-focus
brianorwhatever Feb 7, 2026
9918387
Merge pull request #41 from aviarytech/add-join-movement-cta
brianorwhatever Feb 7, 2026
e4479e0
feat: Add Originals provenance viewer for lists and items
krusty-agent Feb 7, 2026
6a472d1
Merge pull request #44 from aviarytech/feat/originals-provenance-viewer
brianorwhatever Feb 7, 2026
5ec7895
feat: Issue Verifiable Credential when list is created
Feb 7, 2026
2eb31ec
feat: Issue VCs for item creation and completion
Feb 7, 2026
20e03ca
feat: Add Bitcoin signet anchoring for list state
Feb 7, 2026
30ae87c
feat: Add verification badges for data authenticity
krusty-agent Feb 7, 2026
82a1ea3
Merge pull request #45 from aviarytech/feature/list-ownership-vc
brianorwhatever Feb 7, 2026
39c38aa
Merge pull request #46 from aviarytech/feat/item-vc-proofs
brianorwhatever Feb 7, 2026
092aa5a
Merge pull request #47 from aviarytech/feature/bitcoin-anchoring
brianorwhatever Feb 7, 2026
6d0a552
Merge pull request #48 from aviarytech/feature/verification-badges
brianorwhatever Feb 7, 2026
0ec9497
feat: Show provenance chain in UI with VCs and Bitcoin anchors
krusty-agent Feb 7, 2026
9d4a674
Merge pull request #49 from aviarytech/feat/provenance-chain-ui
brianorwhatever Feb 7, 2026
04298e2
fix: Update VC helpers to return structured objects for new schema
krusty-agent Feb 7, 2026
c65ab37
fix: add 'failed' status to AnchorStatusBadge
krusty-agent Feb 7, 2026
350e735
fix: add 'failed' status to AnchorStatusBadge component
Feb 7, 2026
2fb0f24
Merge pull request #50 from aviarytech/fix/anchor-status-badge-failed
brianorwhatever Feb 7, 2026
58400f9
fix: remove duplicate 'failed' status entry
krusty-agent Feb 7, 2026
5644fb6
fix: Mobile UI truncation - use line-clamp-2 for better text display
krusty-agent Feb 7, 2026
852d913
Merge pull request #52 from aviarytech/fix/mobile-truncation-v2
brianorwhatever Feb 7, 2026
7aa8c18
fix: Add missing PWA icons and screenshots
krusty-agent Feb 7, 2026
2ee0d98
Merge pull request #53 from aviarytech/fix/pwa-icons
brianorwhatever Feb 7, 2026
a522f74
fix: improve icon alignment with leading-none
krusty-agent Feb 8, 2026
b6e07e5
Merge pull request #54 from aviarytech/fix/icon-alignment
brianorwhatever Feb 8, 2026
98d7b0d
Improve home page button row styling
krusty-agent Feb 8, 2026
44b4134
Merge pull request #55 from aviarytech/fix/home-button-row-styling
brianorwhatever Feb 8, 2026
e8b6752
Add success metrics to mobile PROJECT_GOALS.md
krusty-agent Feb 8, 2026
c6b1141
style: polish list view button row with pill-shaped buttons and cohes…
krusty-agent Feb 8, 2026
5c8e122
feat: add rename list functionality with VC update
krusty-agent Feb 8, 2026
d0e545b
Merge pull request #61 from aviarytech/fix/list-view-button-row-styli…
brianorwhatever Feb 8, 2026
4f67636
Merge pull request #62 from aviarytech/feat/rename-list
brianorwhatever Feb 8, 2026
66aceda
fix: limit checkbox hit target to button element only
krusty-agent Feb 8, 2026
e58c851
Merge pull request #63 from aviarytech/fix/checkbox-hit-target
brianorwhatever Feb 8, 2026
22ae6a0
fix: prevent checked items from reverting to unchecked state
krusty-agent Feb 8, 2026
d1a0e26
Merge pull request #64 from aviarytech/fix/optimistic-state-revert
brianorwhatever Feb 8, 2026
a9590b6
feat: install and configure Capacitor for iOS and Android
krusty-agent Feb 8, 2026
f47b491
Merge pull request #66 from aviarytech/feat/capacitor-setup
brianorwhatever Feb 8, 2026
b14b79a
ci: Add mobile build workflow for iOS and Android (#67)
krusty-agent Feb 8, 2026
eda5e77
feat: install and configure Capacitor for iOS and Android (#65)
krusty-agent Feb 8, 2026
c2ce01c
Mobile: App icon and splash screen assets (#68)
krusty-agent Feb 8, 2026
7310bac
Mobile: Status bar and safe area handling (#69)
krusty-agent Feb 8, 2026
a204087
Mobile: Haptic feedback for interactions (#71)
krusty-agent Feb 8, 2026
22011a3
Mobile: Deep linking and URL scheme support (#72)
krusty-agent Feb 8, 2026
3f44743
fix: Add Capacitor compatibility fixes for mobile apps (#70)
krusty-agent Feb 8, 2026
3da1553
Mobile: Push notification scaffolding (#73)
krusty-agent Feb 8, 2026
cb5213d
feat: upgrade haptic feedback to Capacitor Haptics plugin (#75)
krusty-agent Feb 8, 2026
fec8a8f
Mobile: Camera access for attachment photos (#78)
krusty-agent Feb 8, 2026
706b27f
Mobile: Performance optimization (#80)
krusty-agent Feb 8, 2026
4a0abb9
fix: add missing @capacitor/camera and @capacitor/push-notifications …
Feb 8, 2026
b503717
Mobile: Biometric auth (Face ID / fingerprint) for app lock (#77)
krusty-agent Feb 8, 2026
fec0d48
feat: offline support tuned for Capacitor native shell (#81)
krusty-agent Feb 8, 2026
50c66f7
Mobile: Native storage abstraction (Capacitor Preferences) (#74)
krusty-agent Feb 8, 2026
26b22b1
Mobile: Share sheet integration (share lists and items) (#79)
krusty-agent Feb 8, 2026
d64a11a
a11y: comprehensive accessibility review and fixes (#82)
krusty-agent Feb 8, 2026
a623f65
fix: platform-specific bug fixes for iOS and Android (#83)
krusty-agent Feb 8, 2026
74e2c41
Mobile: Offline support and network monitoring (#76)
krusty-agent Feb 8, 2026
42830d3
fix: sync package-lock.json with package.json for CI
Feb 8, 2026
13f9491
chore: trigger convex deploy
Feb 8, 2026
9ff8a37
feat: auto-sort grocery list items by store aisle (#84)
krusty-agent Feb 8, 2026
e950c08
fix: make list title visible on mobile screens (#85)
krusty-agent Feb 8, 2026
dc492b0
fix: repair broken JSX nesting in ListView.tsx from merge conflict
Feb 8, 2026
23dc1c7
feat: allow changing category of existing lists (#86)
krusty-agent Feb 8, 2026
5296d5d
Wire up grocery aisle sorting in ListView
Feb 8, 2026
e85863f
fix: disable drag and long-press in grocery aisle view
Feb 8, 2026
170793d
feat: cross-aisle drag in grocery view
Feb 8, 2026
cfeb3e2
feat: add aisle drag visual feedback — header highlighting and 📌 over…
Feb 8, 2026
0230012
feat: add custom grocery aisles
Feb 8, 2026
dc3d654
feat: auto-scroll when dragging items near viewport edges
Feb 8, 2026
a8e09b8
feat: replace Firebase with APNs + Web Push (VAPID)
Feb 9, 2026
c042172
fix: reduce VC badges, improve mobile scrolling, add swipe-back & pul…
Feb 9, 2026
31f8204
Revert "fix: reduce VC badges, improve mobile scrolling, add swipe-ba…
Feb 9, 2026
0f892fb
feat: add Fastlane + GitHub Actions for iOS TestFlight deploys (#88)
krusty-agent Feb 9, 2026
5f5be42
Enhance README description with technology details
brianorwhatever Feb 9, 2026
e7b8667
fix: move ruby/cocoapods setup before cap sync ios (#90)
krusty-agent Feb 9, 2026
05c9951
Update README.md
brianorwhatever Feb 9, 2026
1d4b0c9
fix: use xcodeproj instead of xcworkspace (Capacitor 8 uses SPM)
Feb 9, 2026
4f645f2
fix: set development team and code signing in Fastlane build
Feb 9, 2026
f6e6c41
Correct 'identity' to 'identifiers' in README
brianorwhatever Feb 9, 2026
1d3b322
fix: add privacy usage descriptions for camera/photos, bump build to 2
Feb 9, 2026
3ad0e07
fix: add Convex env vars to CI build, bump build to 3
Feb 9, 2026
f30a783
fix: auto-increment build number using timestamp
Feb 9, 2026
8a0d755
fix: auto-distribute TestFlight builds to Developers group
Feb 9, 2026
47f4d9f
fix: revert to skip_waiting, auto-distribute needs beta app description
Feb 9, 2026
a765f0a
fix: add iosScheme https and allowNavigation for native app
Feb 9, 2026
4f8ea93
fix: use correct Convex backend URLs (convex.x51.ca, railway 8e02)
Feb 9, 2026
81f7a00
fix: use GitHub run number for build versions (shorter)
Feb 9, 2026
831d279
feat: auto-distribute TestFlight builds to Developers group
Feb 9, 2026
e873bec
fix(ios): enable native HTTP and async storage for auth (#94)
krusty-agent Feb 10, 2026
0f7bf30
fix: skip TestFlight build processing to avoid review conflicts (#95)
krusty-agent Feb 10, 2026
47528b3
fix(ios): add missing Capacitor plugins to SPM manifest (#97)
krusty-agent Feb 10, 2026
5684019
fix: storageAdapter falls back to localStorage if Preferences unavail…
krusty-agent Feb 10, 2026
467271f
fix: update Capacitor configuration and improve storage handling
brianorwhatever Feb 10, 2026
cc5bdf4
Reduce green VC buttons clutter (#96)
krusty-agent Feb 10, 2026
4f2033c
feat: change landing CTA to 'Join the Movement' and remove redundant …
krusty-agent Feb 10, 2026
bc47956
feat: mobile UX improvements (#91)
krusty-agent Feb 10, 2026
561f038
feat: Change landing page CTA to 'Join the Movement' (#93)
krusty-agent Feb 10, 2026
a31074b
feat: enhance swipe-to-go-back with visual slide animation (#101)
krusty-agent Feb 10, 2026
c589b8c
redesign: modern minimal home screen with card layout and amber accen…
krusty-agent Feb 10, 2026
7ff9b21
Fix: Improve mobile scrolling feel (#104)
krusty-agent Feb 10, 2026
bb86417
fix: mobile scrolling issues - remove nested scroll containers and ho…
krusty-agent Feb 11, 2026
d22e5de
🎨 Apply warm cream/amber design system across all pages (#105)
krusty-agent Feb 11, 2026
4a88ddc
📋 Redesign list view: rounded cards, collapsed Done section, bottom a…
krusty-agent Feb 11, 2026
7a397fb
🏠 Redesign: Home Screen → Modern Minimal (#109)
krusty-agent Feb 11, 2026
992eb38
feat: Pull to refresh on lists (#100)
krusty-agent Feb 11, 2026
f7b2bb7
fix: remove unused React import and duplicate usePullToRefresh call
krusty-agent Feb 11, 2026
3da518c
fix: sort menu z-index on home page
krusty-agent Feb 11, 2026
3b96be0
fix: disable swipe-to-go-back on web to prevent double back
krusty-agent Feb 11, 2026
2739e32
feat: add button to create a new list on the home page
brianorwhatever Feb 12, 2026
3852a5f
fix: remove duplicate safe-area-inset-top padding on mobile
krusty-agent Feb 13, 2026
1c67ca8
fix: prevent touch drag and pull-to-refresh from blocking native scroll
krusty-agent Feb 14, 2026
7b3e329
fix: show all shared lists flat instead of grouping by sharer's categ…
krusty-agent Feb 14, 2026
74c8bc8
fix: grocery aisle view for shared lists
krusty-agent Feb 14, 2026
dec9b03
fix: cancel pull-to-refresh if scrolled away from top during gesture
krusty-agent Feb 14, 2026
b1f39ef
fix: use actual scroll container for pull-to-refresh and remove dupli…
krusty-agent Feb 14, 2026
59c1170
remove: pull-to-refresh entirely
krusty-agent Feb 15, 2026
c1599ae
feat: generalize grocery aisles to item categories + add view modes
krusty-agent Feb 15, 2026
fcda27b
fix: item view mode toggle responds instantly
krusty-agent Feb 15, 2026
32fbb17
ci: auto-distribute TestFlight builds to Developers group
krusty-agent Feb 16, 2026
4725e80
feat: add natural language date parsing for due dates
krusty-agent Feb 16, 2026
1a7050e
feat: recurring tasks with custom intervals and end dates
krusty-agent Feb 16, 2026
04041b8
feat: implement subtasks & checklists with nested display
krusty-agent Feb 16, 2026
64acca8
feat: streak tracking & gamification
krusty-agent Feb 16, 2026
88e8813
feat: complete offline mode with full sync support
krusty-agent Feb 16, 2026
2060363
fix: add 'use node' directive to notifications.ts for Convex deploy
krusty-agent Feb 16, 2026
95df286
feat: compact list items for better density
krusty-agent Feb 16, 2026
007df6e
fix: skip waiting for build processing (another build in review)
krusty-agent Feb 16, 2026
4bd6a3f
fix: split notifications into queries/mutations + Node.js actions
krusty-agent Feb 16, 2026
10ef0e2
fix: enhance input refocus after adding items
krusty-agent Feb 16, 2026
281aa19
fix: add chrono-node type declarations
krusty-agent Feb 16, 2026
5920e1c
fix: replace chrono-node with built-in date parser for browser compat…
krusty-agent Feb 16, 2026
fcb9170
fix: skip getSubItems query for optimistic temp IDs in NestedListItem
krusty-agent Feb 16, 2026
44a97ca
fix: keep input focused on submit - clear text immediately, refocus a…
krusty-agent Feb 16, 2026
ce7b199
fix: never disable input during submit - keeps mobile keyboard open
krusty-agent Feb 16, 2026
75bc57c
fix: detect expired JWT on session restore to prevent white screen
Feb 17, 2026
b08516c
refactor: replace collaborator/invite sharing with did:webvh publication
Feb 18, 2026
a0dc72b
chore: add Id import to users.ts for data model integration
brianorwhatever Feb 18, 2026
18e54ff
refactor: reorganize API imports in api.d.ts
brianorwhatever Feb 18, 2026
4bc1062
refactor: update import statements in users.ts and ListView.tsx
brianorwhatever Feb 18, 2026
2dcbef3
fix: use parent org ID for Turnkey signing to fix org mismatch
Feb 18, 2026
5683bfb
bump
brianorwhatever Feb 19, 2026
2310399
bump
brianorwhatever Feb 19, 2026
f7f1a62
fix: move DID creation to client-side, remove server-side Turnkey DID…
krusty-agent Feb 19, 2026
a7891f7
fix: remove email from DID slugs — use subOrgId only, no PII in DIDs
krusty-agent Feb 19, 2026
780c785
fix: upgrade did:temp to did:webvh on session restore
krusty-agent Feb 19, 2026
6449c5a
fix: move list DID creation to client-side
krusty-agent Feb 19, 2026
07a6f94
fix: derive list DID domain from user's did:webvh — no hardcoded domains
krusty-agent Feb 19, 2026
4cc69f7
docs: add Agent Mission Control PRD
krusty-agent Feb 19, 2026
00e4234
feat: resource-based list sharing via did:webvh
krusty-agent Feb 19, 2026
5982ee6
fix: use /d/ pathPrefix for Convex routing (must end with /)
krusty-agent Feb 19, 2026
c6044e6
feat: favourites — save shared lists, show at top of home page
krusty-agent Feb 20, 2026
f21a21d
fix: add convex codegen to CI, export unused getStoredDidLog
krusty-agent Feb 20, 2026
3b35c68
fix: run convex codegen before build (Railway + CI compat)
krusty-agent Feb 20, 2026
b4d8deb
fix: use full segment param for shared list route
krusty-agent Feb 20, 2026
7b71fc7
fix: shared list lookup fallback for legacy users without didLogs
krusty-agent Feb 20, 2026
88c1cc5
fix: allow checking/unchecking items from shared list links
krusty-agent Feb 20, 2026
1a03b76
feat: add 'Open full list view' shortcut on shared list landing page
krusty-agent Feb 20, 2026
0eb708e
Update features backlog link in README
brianorwhatever Feb 21, 2026
fa5bad8
docs: revise Mission Control PRD for Orgo-first runtime
krusty-agent Feb 23, 2026
83245a8
docs: add 'Really Good Employee' abstraction and capability checklist
krusty-agent Feb 23, 2026
d277093
docs: add required V1.1 launch gates for controls, reliability, schem…
krusty-agent Feb 23, 2026
493edde
docs: add Phase 1 acceptance tests and observability dashboard spec
krusty-agent Feb 23, 2026
3a76269
docs: tighten ownership, env policy, schema versioning, alert routing…
krusty-agent Feb 23, 2026
53f00a5
Mission Control Phase 1: acceptance harness + observability spec/cont…
krusty-agent Feb 24, 2026
69ebedc
test: add seeded auth fixture path for mission control e2e
krusty-agent Feb 24, 2026
d054259
feat: scaffold mission control assignee, activity, and presence runti…
krusty-agent Feb 24, 2026
4007e0a
fix(mission-control): add auth guards for presence/activity endpoints
krusty-agent Feb 25, 2026
290036c
feat: improve item attachments with multi-upload + reliable file prev…
krusty-agent Mar 2, 2026
3336318
P0-1 backend: assignees + activity + presence foundation (#144)
krusty-agent Mar 2, 2026
bd41852
feat(frontend): add assignee, activity, and presence UI in item detai…
krusty-agent Mar 2, 2026
b5e05f7
test(obs): seed mission-control e2e auth + perf fixture path (#143)
krusty-agent Mar 2, 2026
90938cf
feat(mission-control): add scoped API keys and REST v1 agent endpoint…
krusty-agent Mar 2, 2026
66e08cf
Mission Control P2-1: memory schema, APIs, and browser UI (#149)
krusty-agent Mar 2, 2026
4671ff0
feat: phase 4 schedule entries + calendar schedule scaffolding (#148)
krusty-agent Mar 2, 2026
62e6e4c
feat: harden missionRuns state machine, heartbeats, retries, and run …
krusty-agent Mar 2, 2026
77a5fa7
feat: OpenClaw bidirectional memory sync + conflict visibility (#151)
krusty-agent Mar 2, 2026
f4162fd
feat(mission-control): finish memory CRUD/date filters and readiness …
krusty-agent Mar 2, 2026
3940feb
fix: remove duplicate /api/v1/memory routes
Mar 2, 2026
b8f18d6
feat(mission-control): add quick assign UI and unskip AC1 gating
Mar 3, 2026
83e71f9
chore(mission-control): update temp tracker with AC1 slice + PR
Mar 3, 2026
e9cad52
test(mission-control): unskip AC2/AC5b by using item details activity…
Mar 3, 2026
0bdeca0
feat(mission-control): wire list presence indicator and AC3 gate
Mar 3, 2026
03d2d48
test(mission-control): harden seeded auth readiness and list creation…
Mar 3, 2026
0e210f9
test(e2e): make mission-control auth readiness explicit and env-seeded
Mar 3, 2026
3dd1bae
test(mission-control): harden AC5 perf fixture seeding path
Mar 3, 2026
dc0e6a5
chore(mission-control): tighten observability routing provisioning va…
Mar 3, 2026
f0134cb
fix(mission-control): dedupe active presence and prune expired sessions
Mar 3, 2026
ff4ff6b
polish readiness drill auth split for launch-gate checks
Mar 3, 2026
7071bea
mission-control: enforce severity-based alert routing policy
Mar 3, 2026
e010ed3
test(e2e): add AC0 auth readiness probe with auto diagnostics artifacts
Mar 3, 2026
fc38ac5
mission-control: enforce severity-based alert routing policy
Mar 3, 2026
bdc69bc
test(e2e): add AC0 auth readiness probe with auto diagnostics artifacts
Mar 3, 2026
3fd2deb
Harden AC5 perf gates for CI with deterministic reporting
Mar 3, 2026
0e48dd9
Harden API key rotation flow and drill contracts
Mar 3, 2026
576a197
feat(mc): harden artifact retention idempotency and audit schema
Mar 3, 2026
ea9f785
merge: mission control AC1 assign slice (#153)
Mar 3, 2026
0be7044
merge: 5-wide integration baseline (#161)
Mar 3, 2026
857c938
merge: perf thresholds CI enforceability (#164)
Mar 3, 2026
be01757
merge: observability severity routing policy (#162)
Mar 3, 2026
93addc5
merge: auth readiness AC0 + diagnostics (#163)
Mar 3, 2026
43727de
merge: api key rotation hardening (#165)
Mar 3, 2026
299ba1f
merge: retention hardening idempotency (#166)
Mar 3, 2026
44178e8
test(mc): harden readiness drill contracts for key rotation/retention
Mar 3, 2026
646d78b
test(ci): add mission-control phase1 quality gates workflow
Mar 3, 2026
6ff3e0b
fix(memory-sync): make since cursor paging lossless
Mar 3, 2026
4c99a60
feat(observability): close out remaining run-control and heartbeat me…
Mar 3, 2026
a5cffce
feat(mission-control): add kill-path coverage to readiness drill
Mar 3, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
2 changes: 1 addition & 1 deletion .env.example
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# Required environment variables for production deployment
# Copy this file to .env.local for local development

# Convex deployment URL
# Convex Cloud deployment URL
# Get this from your Convex dashboard: https://dashboard.convex.dev
VITE_CONVEX_URL=https://your-deployment.convex.cloud

Expand Down
27 changes: 27 additions & 0 deletions .github/workflows/deploy-convex.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
name: Deploy Convex

on:
push:
branches: [main]
paths:
- 'convex/**'
workflow_dispatch:

jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4

- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '20'

- name: Install dependencies
run: npm ci

- name: Deploy to Convex Cloud
env:
CONVEX_DEPLOY_KEY: ${{ secrets.CONVEX_DEPLOY_KEY }}
run: npx convex deploy
54 changes: 54 additions & 0 deletions .github/workflows/mission-control-quality-gates.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
name: mission-control-quality-gates

on:
pull_request:
paths:
- "e2e/**"
- "playwright.config.ts"
- "package.json"
- ".github/workflows/mission-control-quality-gates.yml"
workflow_dispatch:

jobs:
phase1-quality-gates:
runs-on: ubuntu-latest
timeout-minutes: 30

steps:
- name: Checkout
uses: actions/checkout@v4

- name: Setup Node
uses: actions/setup-node@v4
with:
node-version: 22
cache: npm

- name: Setup Bun
uses: oven-sh/setup-bun@v2
with:
bun-version: 1.3.5

- name: Install dependencies
run: npm ci

- name: Install Playwright browser
run: npx playwright install --with-deps chromium

- name: Perf fixture parser gate
run: npm run test:e2e -- e2e/mission-control-perf-fixture.spec.ts --reporter=line

- name: Mission Control Phase 1 acceptance + perf gates
env:
MISSION_CONTROL_FIXTURE_PATH: e2e/fixtures/mission-control.production.json
run: npm run test:e2e -- e2e/mission-control-phase1.spec.ts --reporter=line

- name: Upload Playwright artifacts
if: always()
uses: actions/upload-artifact@v4
with:
name: mission-control-playwright-artifacts
path: |
playwright-report/
test-results/
if-no-files-found: ignore
125 changes: 125 additions & 0 deletions .github/workflows/mobile-build.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,125 @@
name: Mobile Build CI

on:
push:
branches: [main]
pull_request:
branches: [main]

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true

jobs:
web-build:
name: Build Web App
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4

- uses: actions/setup-node@v4
with:
node-version: 22
cache: npm

- name: Install dependencies
run: npm ci

- name: Generate Convex types
run: npx convex codegen
env:
CONVEX_DEPLOY_KEY: ${{ secrets.CONVEX_DEPLOY_KEY }}

- name: Build web app
run: npm run build
env:
VITE_CONVEX_URL: ${{ secrets.VITE_CONVEX_URL }}

- uses: actions/upload-artifact@v4
with:
name: web-dist
path: dist/
retention-days: 1

ios-build:
name: Build & Deploy iOS to TestFlight
runs-on: macos-latest
needs: web-build
if: github.event_name == 'push' && github.ref == 'refs/heads/main'
steps:
- uses: actions/checkout@v4

- uses: actions/setup-node@v4
with:
node-version: 22
cache: npm

- uses: actions/download-artifact@v4
with:
name: web-dist
path: dist/

- name: Install dependencies
run: npm ci

- uses: ruby/setup-ruby@v1
with:
ruby-version: '3.3'
bundler-cache: true
working-directory: ios

- name: Capacitor sync
run: npx cap sync ios

- name: Fastlane Beta
working-directory: ios
env:
MATCH_PASSWORD: ${{ secrets.MATCH_PASSWORD }}
MATCH_GIT_URL: ${{ secrets.MATCH_GIT_URL }}
MATCH_GIT_BASIC_AUTHORIZATION: ${{ secrets.MATCH_GIT_BASIC_AUTHORIZATION }}
APP_STORE_CONNECT_API_PRIVATE_KEY: ${{ secrets.APP_STORE_CONNECT_API_PRIVATE_KEY }}
APP_STORE_CONNECT_KEY_ID: ${{ secrets.APP_STORE_CONNECT_KEY_ID }}
APP_STORE_CONNECT_ISSUER_ID: ${{ secrets.APP_STORE_CONNECT_ISSUER_ID }}
APPLE_TEAM_ID: ${{ secrets.APPLE_TEAM_ID }}
run: bundle exec fastlane beta

android-build:
name: Build Android
runs-on: ubuntu-latest
needs: web-build
steps:
- uses: actions/checkout@v4

- uses: actions/setup-node@v4
with:
node-version: 22
cache: npm

- uses: actions/setup-java@v4
with:
distribution: temurin
java-version: 21

- uses: actions/download-artifact@v4
with:
name: web-dist
path: dist/

- name: Install dependencies
run: npm ci

- name: Capacitor sync
run: npx cap sync android

- name: Cache Gradle
uses: actions/cache@v4
with:
path: |
~/.gradle/caches
~/.gradle/wrapper
key: gradle-${{ hashFiles('android/**/*.gradle*', 'android/**/gradle-wrapper.properties') }}
restore-keys: gradle-

- name: Build Android Debug
working-directory: android
run: ./gradlew assembleDebug
15 changes: 15 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -16,3 +16,18 @@ dist/

# OS
.DS_Store

# Capacitor - Copied web assets (regenerated by `npx cap sync`)
ios/App/App/public/
ios/App/App/capacitor.config.json
android/app/src/main/assets/public/
android/app/src/main/assets/capacitor.config.json
android/app/src/main/assets/capacitor.plugins.json

# Capacitor - Native build artifacts
ios/App/Pods/
ios/App/App.xcworkspace/xcuserdata/
android/.gradle/
android/app/build/
android/build/
.secrets/
58 changes: 58 additions & 0 deletions .superdesign/init/components.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
# Shared UI Primitives Inventory

## Core UI Components (`src/components/ui/`)
- **EmptyState.tsx** — Empty state illustrations (NoListsEmptyState, NoSearchResultsEmptyState, NoItemsEmptyState)
- **Panel.tsx** — Reusable panel/card container
- **SearchInput.tsx** — Search input with icon
- **Skeleton.tsx** — Loading skeleton placeholders (HomePageSkeleton, ListViewSkeleton)
- **SortDropdown.tsx** — Sort options dropdown

## List Components (`src/components/lists/`)
- **CategoryHeader.tsx** — Collapsible category section header
- **CategoryManager.tsx** — Category CRUD modal
- **CategorySelector.tsx** — Category picker

## Auth Components (`src/components/auth/`)
- **AuthGuard.tsx** — Route protection wrapper
- **OtpInput.tsx** — OTP code input for login

## Sharing Components (`src/components/sharing/`)
- **CollaboratorList.tsx** — List of collaborators with roles

## Notification Components (`src/components/notifications/`)
- **Toast.tsx** — Toast notification container

## Feature Components (`src/components/`)
- **AddItemInput.tsx** — Text input for adding new items
- **ListCard.tsx** — Card preview of a list (used on Home page)
- **ListItem.tsx** — Individual todo item row with check, drag, edit
- **HeaderActionsMenu.tsx** — Overflow menu (⋯) for list actions
- **ProfileBadge.tsx** — User avatar/badge in header
- **VerificationBadge.tsx** — VC verification status indicator
- **ItemDetailsModal.tsx** — Full item detail/edit modal
- **ShareModal.tsx** — Sharing/invite modal
- **CreateListModal.tsx** — New list creation modal
- **TemplatePickerModal.tsx** — Template selection for new lists
- **SaveAsTemplateModal.tsx** — Save list as template
- **DeleteListDialog.tsx** — Delete confirmation dialog
- **RenameListDialog.tsx** — Rename list dialog
- **ChangeCategoryDialog.tsx** — Change list category
- **ConfirmDialog.tsx** — Generic confirmation dialog
- **CalendarView.tsx** — Calendar view for items with due dates
- **BatchOperations.tsx** — Bulk actions bar for multi-select
- **SubItems.tsx** — Nested sub-items
- **TagSelector.tsx** — Tag picker
- **Comments.tsx** — Item comments
- **Attachments.tsx** — File attachments
- **Settings.tsx** — App settings panel
- **ErrorBoundary.tsx** — Error boundary wrapper
- **AppLockGuard.tsx** — App lock/biometric guard

## Design System Notes
- Uses Tailwind CSS v4 with `@import "tailwindcss"`
- Dark mode via `.dark` class variant
- Color palette: amber/orange primary, gray neutrals
- Rounded corners: `rounded-xl` to `rounded-3xl`
- Shadows: `shadow-lg`, `shadow-xl` with colored shadows (e.g., `shadow-amber-500/20`)
- Animations: slide-up, float, bounce-slow, shimmer (custom keyframes)
- Mobile: safe-area-inset support, touch targets, haptic feedback hooks
Loading
Loading