Skip to content

Commit 8c18d85

Browse files
Copilothotlong
andcommitted
docs: update ROADMAP.md — mark v1.7 Phases 23-25 complete, fix lint errors
Co-authored-by: hotlong <50353452+hotlong@users.noreply.github.com>
1 parent ae0e6db commit 8c18d85

4 files changed

Lines changed: 64 additions & 55 deletions

File tree

ROADMAP.md

Lines changed: 61 additions & 52 deletions
Original file line numberDiff line numberDiff line change
@@ -2,17 +2,17 @@
22

33
> **Date**: 2026-02-22
44
> **SDK**: `@objectstack/client@3.0.9`, `@objectstack/client-react@3.0.9`, `@objectstack/spec@3.0.9`
5-
> **Tests**: ✅ 1003/1003 passing (127 suites, ~85% coverage)
5+
> **Tests**: ✅ 1149/1149 passing (148 suites, ~85% coverage)
66
77
---
88

99
## 1. Project Status
1010

11-
The ObjectStack Mobile client has completed all core development phases (0–6), spec alignment phases (9–10), advanced feature phases (11–13), UX/platform phases (14–20), spec gap phases (21–22), and post-GA features (v1.4–v1.6). The SDK is upgraded to v3.0.9 (spec v3.0.9: 14 modules, 1683 JSON schemas, 8,380+ `.describe()` annotations).
11+
The ObjectStack Mobile client has completed all core development phases (0–6), spec alignment phases (9–10), advanced feature phases (11–13), UX/platform phases (14–20), spec gap phases (21–22), post-GA features (v1.4–v1.6), and spec v3.0.9 UI Protocol alignment (v1.7, Phases 23–25). The SDK is upgraded to v3.0.9 (spec v3.0.9: 14 modules, 1683 JSON schemas, 8,380+ `.describe()` annotations).
1212

1313
### What's Implemented
1414

15-
- **64 custom hooks** covering all SDK namespaces (including AI, security, UX, platform integration, messaging, offline)
15+
- **85 custom hooks** covering all SDK namespaces (including AI, security, UX, platform integration, messaging, offline, SDUI record pages, interaction protocols, focus/keyboard/offline/notification protocols)
1616
- **22 view renderers / components** (List, Form, Detail, Dashboard, Kanban, Calendar, Chart, Timeline, Map, Report, Page, widgets, FlowViewer, StateMachineViewer, AgentProgress, CollaborationOverlay, Skeletons, FAB, UndoSnackbar)
1717
- **13 UI primitives** + 15 common components
1818
- **30 lib modules** (auth, cache, offline, security, analytics, haptics, accessibility, design tokens, etc.)
@@ -211,22 +211,31 @@ The ObjectStack Mobile client has completed all core development phases (0–6),
211211
| `spec/ai` — Predictive Models | `usePredictive` |
212212
| `spec/automation` — ETL Pipelines | `useETLPipeline` |
213213
| `spec/integration` — Connectors | `useConnector` |
214+
| `spec/ui` — Record Page SDUI | `useRecordDetails`, `useRecordHighlights`, `useRecordActivity`, `useRecordChatter`, `useRecordPath`, `useRecordRelatedList`, `useRecordReview` |
215+
| `spec/ui` — Interface Pages | `useInterfacePageConfig`, `useBlankPageLayout` |
216+
| `spec/ui` — DnD Protocol | `useDndProtocol` |
217+
| `spec/ui` — Gesture Protocol | `useGestureProtocol` |
218+
| `spec/ui` — Animation Protocol | `useAnimationProtocol`, `usePageTransitionProtocol`, `useComponentAnimation` |
219+
| `spec/ui` — Focus/Keyboard Protocol | `useFocusManagement`, `useKeyboardNavigation` |
220+
| `spec/ui` — Notification UI Protocol | `useNotificationUI` |
221+
| `spec/ui` — Embed/Sharing Protocol | `useEmbedConfig`, `useViewSharing` |
222+
| `spec/ui` — Offline/Sync Protocol | `useOfflineConfig`, `useSyncConfig` |
214223

215-
### 🟡 New in Spec v3.0.9 — UI Protocol Schemas (Pending Implementation)
224+
### Spec v3.0.9 — UI Protocol Schemas (Implemented in v1.7)
216225

217-
The following new UI protocol schemas were added in spec v3.0.9 and are candidates for future mobile implementation:
226+
The following UI protocol schemas from spec v3.0.9 have been implemented:
218227

219228
| Category | Spec Schemas | Mobile Status |
220229
|----------|-------------|---------------|
221-
| Record Page Components | `RecordDetailsProps`, `RecordActivityProps`, `RecordChatterProps`, `RecordHighlightsProps`, `RecordPathProps`, `RecordRelatedListProps`, `RecordReviewConfigSchema` | 🟡 Partial — detail tabs exist, SDUI record pages pending |
222-
| Drag & Drop Protocol | `DndConfigSchema`, `DragItemSchema`, `DragHandleSchema`, `DragConstraintSchema`, `DropZoneSchema`, `DropEffectSchema` | 🟡 Partial — `useKanbanDragDrop` exists, full DnD protocol pending |
223-
| Gesture Protocol | `GestureConfigSchema`, `GestureTypeSchema`, `SwipeGestureConfigSchema`, `PinchGestureConfigSchema`, `LongPressGestureConfigSchema`, `TouchInteractionSchema`, `TouchTargetConfigSchema` | 🟡 Partial — swipe/haptics exist, spec-driven gesture config pending |
224-
| Offline/Sync Protocol | `OfflineConfigSchema`, `OfflineCacheConfigSchema`, `OfflineStrategySchema`, `SyncConfigSchema`, `ConflictResolutionSchema`, `PersistStorageSchema`, `EvictionPolicySchema` | 🟡 Partial — offline hooks exist, spec-driven config pending |
225-
| Notification UI Protocol | `NotificationSchema`, `NotificationConfigSchema`, `NotificationActionSchema`, `NotificationPositionSchema`, `NotificationSeveritySchema`, `NotificationTypeSchema` | 🟡 Partial — notifications exist, SDUI notification rendering pending |
226-
| Animation/Transition Protocol | `AnimationSchema`, `AnimationTriggerSchema`, `ComponentAnimationSchema`, `TransitionConfigSchema`, `TransitionPresetSchema`, `MotionConfigSchema`, `EasingFunctionSchema`, `PageTransitionSchema` | 🟡 Partial — micro-interactions exist, spec-driven animations pending |
227-
| Focus/Keyboard Protocol | `FocusManagementSchema`, `FocusTrapConfigSchema`, `KeyboardNavigationConfigSchema`, `KeyboardShortcutSchema` | 🔴 New — external keyboard/focus management not yet implemented |
228-
| Embed/Sharing Protocol | `EmbedConfigSchema`, `SharingConfigSchema`, `ViewSharingSchema` | 🟡 Partial — `useSharing` exists, embed/view sharing UI pending |
229-
| Interface Page Protocol | `InterfacePageConfigSchema`, `BlankPageLayoutSchema`, `BlankPageLayoutItemSchema`, `PageTypeSchema` | 🟡 Partial — `PageRenderer` exists, interface page config pending |
230+
| Record Page Components | `RecordDetailsProps`, `RecordActivityProps`, `RecordChatterProps`, `RecordHighlightsProps`, `RecordPathProps`, `RecordRelatedListProps`, `RecordReviewConfigSchema` | `useRecordDetails`, `useRecordActivity`, `useRecordChatter`, `useRecordHighlights`, `useRecordPath`, `useRecordRelatedList`, `useRecordReview` |
231+
| Drag & Drop Protocol | `DndConfigSchema`, `DragItemSchema`, `DragHandleSchema`, `DragConstraintSchema`, `DropZoneSchema`, `DropEffectSchema` | `useDndProtocol` |
232+
| Gesture Protocol | `GestureConfigSchema`, `GestureTypeSchema`, `SwipeGestureConfigSchema`, `PinchGestureConfigSchema`, `LongPressGestureConfigSchema`, `TouchInteractionSchema`, `TouchTargetConfigSchema` | `useGestureProtocol` |
233+
| Offline/Sync Protocol | `OfflineConfigSchema`, `OfflineCacheConfigSchema`, `OfflineStrategySchema`, `SyncConfigSchema`, `ConflictResolutionSchema`, `PersistStorageSchema`, `EvictionPolicySchema` | `useOfflineConfig`, `useSyncConfig` |
234+
| Notification UI Protocol | `NotificationSchema`, `NotificationConfigSchema`, `NotificationActionSchema`, `NotificationPositionSchema`, `NotificationSeveritySchema`, `NotificationTypeSchema` | `useNotificationUI` |
235+
| Animation/Transition Protocol | `AnimationSchema`, `AnimationTriggerSchema`, `ComponentAnimationSchema`, `TransitionConfigSchema`, `TransitionPresetSchema`, `MotionConfigSchema`, `EasingFunctionSchema`, `PageTransitionSchema` | `useAnimationProtocol`, `usePageTransitionProtocol`, `useComponentAnimation` |
236+
| Focus/Keyboard Protocol | `FocusManagementSchema`, `FocusTrapConfigSchema`, `KeyboardNavigationConfigSchema`, `KeyboardShortcutSchema` | `useFocusManagement`, `useKeyboardNavigation` |
237+
| Embed/Sharing Protocol | `EmbedConfigSchema`, `SharingConfigSchema`, `ViewSharingSchema` | `useEmbedConfig`, `useViewSharing` |
238+
| Interface Page Protocol | `InterfacePageConfigSchema`, `BlankPageLayoutSchema`, `BlankPageLayoutItemSchema`, `PageTypeSchema` | `useInterfacePageConfig`, `useBlankPageLayout` |
230239

231240
---
232241

@@ -611,52 +620,52 @@ The following new UI protocol schemas were added in spec v3.0.9 and are candidat
611620

612621
---
613622

614-
## 7m. v1.7: Spec v3.0.9 UI Protocol Alignment 🔴
623+
## 7m. v1.7: Spec v3.0.9 UI Protocol Alignment
615624

616625
> **Duration**: 4–6 weeks | **Priority**: 🟡 Important for spec compliance
617626
> **Goal**: Implement new UI protocol schemas from `@objectstack/spec@3.0.9` for full SDUI compliance
618627
619-
### Phase 23: SDUI Record Page Protocol 🔴
628+
### Phase 23: SDUI Record Page Protocol
620629

621630
> Align record detail/form views with spec v3.0.9 `RecordDetailsProps`, `RecordHighlightsProps`, etc.
622631
623632
| # | Feature | Description | Status |
624633
|---|---------|-------------|--------|
625-
| 23.1 | Record Details SDUI | Render record detail layout from `RecordDetailsProps` (columns, sections, field list) | 🔴 Planned |
626-
| 23.2 | Record Highlights | Show highlight fields panel from `RecordHighlightsProps` | 🔴 Planned |
627-
| 23.3 | Record Activity Feed | Render activity timeline from `RecordActivityProps` | 🔴 Planned |
628-
| 23.4 | Record Chatter | In-context discussion from `RecordChatterProps` | 🔴 Planned |
629-
| 23.5 | Record Path / Breadcrumb | Navigation breadcrumb from `RecordPathProps` | 🔴 Planned |
630-
| 23.6 | Record Related Lists | Related record panels from `RecordRelatedListProps` | 🔴 Planned |
631-
| 23.7 | Record Review Config | Approval/review UI from `RecordReviewConfigSchema` | 🔴 Planned |
632-
| 23.8 | Interface Page Config | Airtable-style interface pages from `InterfacePageConfigSchema` | 🔴 Planned |
633-
| 23.9 | Blank Page Layouts | Custom blank page templates from `BlankPageLayoutSchema` | 🔴 Planned |
634-
635-
### Phase 24: Interaction Protocol (DnD, Gesture, Animation) 🔴
634+
| 23.1 | Record Details SDUI | Render record detail layout from `RecordDetailsProps` (columns, sections, field list) | ✅ Done |
635+
| 23.2 | Record Highlights | Show highlight fields panel from `RecordHighlightsProps` | ✅ Done |
636+
| 23.3 | Record Activity Feed | Render activity timeline from `RecordActivityProps` | ✅ Done |
637+
| 23.4 | Record Chatter | In-context discussion from `RecordChatterProps` | ✅ Done |
638+
| 23.5 | Record Path / Breadcrumb | Navigation breadcrumb from `RecordPathProps` | ✅ Done |
639+
| 23.6 | Record Related Lists | Related record panels from `RecordRelatedListProps` | ✅ Done |
640+
| 23.7 | Record Review Config | Approval/review UI from `RecordReviewConfigSchema` | ✅ Done |
641+
| 23.8 | Interface Page Config | Airtable-style interface pages from `InterfacePageConfigSchema` | ✅ Done |
642+
| 23.9 | Blank Page Layouts | Custom blank page templates from `BlankPageLayoutSchema` | ✅ Done |
643+
644+
### Phase 24: Interaction Protocol (DnD, Gesture, Animation)
636645

637646
> Implement spec-driven interaction configs instead of hardcoded behavior.
638647
639648
| # | Feature | Description | Status |
640649
|---|---------|-------------|--------|
641-
| 24.1 | DnD Protocol | Spec-driven drag-and-drop from `DndConfigSchema` (drag items, drop zones, constraints, sortable) | 🔴 Planned |
642-
| 24.2 | Gesture Protocol | Configure gestures from `GestureConfigSchema` (swipe, pinch, long-press, touch targets) | 🔴 Planned |
643-
| 24.3 | Animation Protocol | Spec-driven animations from `AnimationSchema`, `TransitionConfigSchema`, `MotionConfigSchema` | 🔴 Planned |
644-
| 24.4 | Page Transition Protocol | Server-defined page transitions from `PageTransitionSchema`, `TransitionPresetSchema` | 🔴 Planned |
645-
| 24.5 | Component Animation | Per-component animation config from `ComponentAnimationSchema`, `EasingFunctionSchema` | 🔴 Planned |
650+
| 24.1 | DnD Protocol | Spec-driven drag-and-drop from `DndConfigSchema` (drag items, drop zones, constraints, sortable) | ✅ Done |
651+
| 24.2 | Gesture Protocol | Configure gestures from `GestureConfigSchema` (swipe, pinch, long-press, touch targets) | ✅ Done |
652+
| 24.3 | Animation Protocol | Spec-driven animations from `AnimationSchema`, `TransitionConfigSchema`, `MotionConfigSchema` | ✅ Done |
653+
| 24.4 | Page Transition Protocol | Server-defined page transitions from `PageTransitionSchema`, `TransitionPresetSchema` | ✅ Done |
654+
| 24.5 | Component Animation | Per-component animation config from `ComponentAnimationSchema`, `EasingFunctionSchema` | ✅ Done |
646655

647-
### Phase 25: Focus, Keyboard, Offline & Notification Protocol 🔴
656+
### Phase 25: Focus, Keyboard, Offline & Notification Protocol
648657

649658
> Complete spec-driven configuration for accessibility, offline, and notification UI.
650659
651660
| # | Feature | Description | Status |
652661
|---|---------|-------------|--------|
653-
| 25.1 | Focus Management | Spec-driven focus traps and management from `FocusManagementSchema`, `FocusTrapConfigSchema` | 🔴 Planned |
654-
| 25.2 | Keyboard Navigation | External keyboard support from `KeyboardNavigationConfigSchema`, `KeyboardShortcutSchema` | 🔴 Planned |
655-
| 25.3 | Offline Config Protocol | Server-driven offline strategy from `OfflineConfigSchema`, `OfflineCacheConfigSchema`, `EvictionPolicySchema` | 🔴 Planned |
656-
| 25.4 | Sync Config Protocol | Spec-driven sync behavior from `SyncConfigSchema`, `ConflictResolutionSchema`, `PersistStorageSchema` | 🔴 Planned |
657-
| 25.5 | Notification UI Protocol | SDUI notification rendering from `NotificationSchema`, `NotificationConfigSchema`, `NotificationActionSchema` | 🔴 Planned |
658-
| 25.6 | Embed Config | Embeddable views from `EmbedConfigSchema` | 🔴 Planned |
659-
| 25.7 | View Sharing Protocol | Spec-driven view sharing from `ViewSharingSchema`, `SharingConfigSchema` | 🔴 Planned |
662+
| 25.1 | Focus Management | Spec-driven focus traps and management from `FocusManagementSchema`, `FocusTrapConfigSchema` | ✅ Done |
663+
| 25.2 | Keyboard Navigation | External keyboard support from `KeyboardNavigationConfigSchema`, `KeyboardShortcutSchema` | ✅ Done |
664+
| 25.3 | Offline Config Protocol | Server-driven offline strategy from `OfflineConfigSchema`, `OfflineCacheConfigSchema`, `EvictionPolicySchema` | ✅ Done |
665+
| 25.4 | Sync Config Protocol | Spec-driven sync behavior from `SyncConfigSchema`, `ConflictResolutionSchema`, `PersistStorageSchema` | ✅ Done |
666+
| 25.5 | Notification UI Protocol | SDUI notification rendering from `NotificationSchema`, `NotificationConfigSchema`, `NotificationActionSchema` | ✅ Done |
667+
| 25.6 | Embed Config | Embeddable views from `EmbedConfigSchema` | ✅ Done |
668+
| 25.7 | View Sharing Protocol | Spec-driven view sharing from `ViewSharingSchema`, `SharingConfigSchema` | ✅ Done |
660669

661670
---
662671

@@ -670,7 +679,7 @@ The following new UI protocol schemas were added in spec v3.0.9 and are candidat
670679
| Area | Rating | Status |
671680
|------|--------|--------|
672681
| Architecture | ★★★★★ | None — excellent foundation |
673-
| Feature Coverage | ★★★★★ | 64 hooks, 22 renderers/components |
682+
| Feature Coverage | ★★★★★ | 85 hooks, 22 renderers/components |
674683
| Visual Design | ★★★★☆ | Design tokens, elevation system, semantic colors |
675684
| Interaction Design | ★★★★☆ | Haptics, micro-interactions, animations, gestures |
676685
| Navigation Efficiency | ★★★★★ | 5-tab layout, global search, recent items |
@@ -799,7 +808,7 @@ The following new UI protocol schemas were added in spec v3.0.9 and are candidat
799808
| **v1.4** | 21–22 | Notification Center + Spec gaps (AI DevOps/CodeGen/Predictive, ETL/Connectors) | ✅ Complete |
800809
| **v1.5** || Messaging & Channels (Slack/Teams pattern, DMs, threads) | ✅ Complete |
801810
| **v1.6** || Advanced Offline (selective sync, three-way merge, offline analytics) | ✅ Complete |
802-
| **v1.7** | 23–25 | Spec v3.0.9 UI Protocol (SDUI record pages, DnD protocol, gesture/animation protocol, focus/keyboard) | 🔴 Planned |
811+
| **v1.7** | 23–25 | Spec v3.0.9 UI Protocol (SDUI record pages, DnD protocol, gesture/animation protocol, focus/keyboard) | ✅ Complete |
803812

804813
---
805814

@@ -836,20 +845,20 @@ The following new UI protocol schemas were added in spec v3.0.9 and are candidat
836845
| **Notification Center (v1.4)** | **No** | **1 week** | **✅ Done** |
837846
| **Messaging & Channels (v1.5)** | **No** | **2 weeks** | **✅ Done** |
838847
| **Advanced Offline (v1.6)** | **No** | **2 weeks** | **✅ Done** |
839-
| **SDUI Record Page Protocol (23)** | **No** | **2–3 weeks** | **🔴 Planned** |
840-
| **Interaction Protocol — DnD/Gesture/Animation (24)** | **No** | **2–3 weeks** | **🔴 Planned** |
841-
| **Focus/Keyboard/Offline/Notification Protocol (25)** | **No** | **1–2 weeks** | **🔴 Planned** |
848+
| **SDUI Record Page Protocol (23)** | **No** | **2–3 weeks** | **✅ Done** |
849+
| **Interaction Protocol — DnD/Gesture/Animation (24)** | **No** | **2–3 weeks** | **✅ Done** |
850+
| **Focus/Keyboard/Offline/Notification Protocol (25)** | **No** | **1–2 weeks** | **✅ Done** |
842851

843852
**Phase 11–22 + v1.4–v1.6**: ✅ Complete
844-
**Phase 23–25 (v1.7 — Spec v3.0.9 UI Protocol)**: 🔴 Planned
853+
**Phase 23–25 (v1.7 — Spec v3.0.9 UI Protocol)**: ✅ Complete
845854

846855
---
847856

848857
## 11. Success Criteria
849858

850859
### v1.0 GA
851860

852-
1.1003+ unit/integration tests passing
861+
1.1149+ unit/integration tests passing
853862
2. ✅ All hooks and lib modules have test coverage
854863
3. ✅ 4 Jest E2E screen tests passing (32 tests); Maestro flows configured
855864
4. ☐ Performance metrics within targets on real devices
@@ -883,11 +892,11 @@ The following new UI protocol schemas were added in spec v3.0.9 and are candidat
883892

884893
### v1.7 (Spec v3.0.9 UI Protocol)
885894

886-
1. Phase 23 complete (SDUI record pages, highlights, chatter, related lists, interface pages)
887-
2. Phase 24 complete (spec-driven DnD, gesture, animation, transition protocols)
888-
3. Phase 25 complete (focus management, keyboard navigation, offline/sync/notification UI protocols)
889-
4. All renderers consume spec UI schemas instead of hardcoded configs
890-
5. Full compliance with `@objectstack/spec@3.0.9` UI module (168 exports)
895+
1. Phase 23 complete (SDUI record pages, highlights, chatter, related lists, interface pages)
896+
2. Phase 24 complete (spec-driven DnD, gesture, animation, transition protocols)
897+
3. Phase 25 complete (focus management, keyboard navigation, offline/sync/notification UI protocols)
898+
4. All renderers consume spec UI schemas instead of hardcoded configs
899+
5. Full compliance with `@objectstack/spec@3.0.9` UI module (168 exports)
891900

892901
---
893902

__tests__/hooks/useInterfacePageConfig.test.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
* block addition, removal, reordering, and updates.
44
*/
55
import { renderHook, act } from "@testing-library/react-native";
6-
import { useInterfacePageConfig, PageBlock } from "~/hooks/useInterfacePageConfig";
6+
import { useInterfacePageConfig } from "~/hooks/useInterfacePageConfig";
77

88
describe("useInterfacePageConfig", () => {
99
it("returns default empty state initially", () => {

__tests__/hooks/useRecordReview.test.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
* reviewer addition/removal, approval, rejection, and status transitions.
44
*/
55
import { renderHook, act } from "@testing-library/react-native";
6-
import { useRecordReview, Reviewer } from "~/hooks/useRecordReview";
6+
import { useRecordReview } from "~/hooks/useRecordReview";
77

88
describe("useRecordReview", () => {
99
it("returns default state initially", () => {

hooks/useRecordDetails.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { useCallback, useMemo, useState } from "react";
1+
import { useCallback, useState } from "react";
22

33
/* ------------------------------------------------------------------ */
44
/* Types */

0 commit comments

Comments
 (0)