Skip to content

Commit 679a68e

Browse files
Copilothotlong
andcommitted
Integrate ActivityFeed into AppHeader and update ROADMAP_CONSOLE.md metrics
- Wire ActivityFeed component into AppHeader replacing dummy Bell button - Update Section 11 Success Metrics to match actual implementation status - Mark Phase 15, 16, 17, 18 L1 items as complete per verified implementations - Fix Phase 1-3 metrics: CRUD dialog migrated to ActionDef[] Co-authored-by: hotlong <50353452+hotlong@users.noreply.github.com>
1 parent bd848f3 commit 679a68e

2 files changed

Lines changed: 26 additions & 25 deletions

File tree

ROADMAP_CONSOLE.md

Lines changed: 20 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1182,7 +1182,7 @@ Each app has its own navigation tree, branding, and permissions. The sidebar and
11821182
- [x] 100% of navigation items respect `visible` expressions
11831183
- [x] ActionRunner.execute(ActionDef) fully implemented (717 lines); toolbar actions dispatch through ActionRunner
11841184
- [x] Console fetches app config from server at runtime via `MetadataProvider``client.meta.getItems()`
1185-
- [ ] CRUD dialog in `App.tsx` still uses inline callbacks instead of ActionDef[]
1185+
- [x] CRUD dialog migrated to ActionDef[] with `crud_success` and `dialog_cancel` handlers dispatched through ActionRunner
11861186

11871187
### Phase 4-6 (Enterprise) ⚠️
11881188
- [x] 10 languages supported with runtime switching
@@ -1302,12 +1302,12 @@ Each app has its own navigation tree, branding, and permissions. The sidebar and
13021302
- [ ] Conditional form logic (skip fields)
13031303
- [ ] Real-time submission monitoring
13041304

1305-
### Phase 15: Import/Export & Data Portability — Post v1.0
1305+
### Phase 15: Import/Export & Data Portability — ✅ L1 Complete
13061306
**L1 (Foundation):**
1307-
- [ ] CSV/Excel import wizard with column mapping
1308-
- [ ] Export button on all view types (Grid, Kanban, Calendar, Gallery)
1309-
- [ ] Shared read-only view link generated
1310-
- [ ] API export endpoint (`GET /api/export/:objectName`)
1307+
- [x] CSV/Excel import wizard with column mapping (`ImportWizard.tsx` in `packages/plugin-grid/src/`)
1308+
- [x] Export button on all view types (Grid, Kanban, Calendar, Gallery) via `exportOptions`
1309+
- [x] Shared read-only view link generated (`SharedViewLink.tsx` in `packages/plugin-view/src/`)
1310+
- [ ] API export endpoint (`GET /api/export/:objectName`) — server-side, out of scope for console
13111311

13121312
**L2 (Production):**
13131313
- [ ] Import preview (first 10 rows) with error handling
@@ -1321,12 +1321,12 @@ Each app has its own navigation tree, branding, and permissions. The sidebar and
13211321
- [ ] Edit permissions in shared links
13221322
- [ ] Streaming export for large datasets
13231323

1324-
### Phase 16: Undo/Redo & Data Safety — ⚠️ Partial
1324+
### Phase 16: Undo/Redo & Data Safety — ✅ L1 Complete
13251325
**L1 (Foundation):**
1326-
- [ ] Global undo/redo (Ctrl+Z / Ctrl+Shift+Z) — `useUndoRedo` hook exists but only for ProcessDesigner, not global CRUD
1327-
- [x] Undo stack with max size (50 operations) — implemented in `useUndoRedo` (configurable max history)
1328-
- [ ] Server-side audit log displays field changes
1329-
- [ ] Developer operation log tool
1326+
- [x] Global undo/redo (Ctrl+Z / Ctrl+Shift+Z) — `UndoManager` in `packages/core/src/actions/UndoManager.ts` + `useGlobalUndo` hook in `packages/react/src/hooks/useGlobalUndo.ts`
1327+
- [x] Undo stack with max size (50 operations) — implemented in `UndoManager` (configurable max history)
1328+
- [ ] Server-side audit log displays field changes — server-side, out of scope for console
1329+
- [x] Developer operation log tool`globalUndoManager.getHistory()` provides operation log
13301330

13311331
**L2 (Production):**
13321332
- [ ] Undo/redo UI (toast notification)
@@ -1340,12 +1340,12 @@ Each app has its own navigation tree, branding, and permissions. The sidebar and
13401340
- [ ] Point-in-time restore for objects
13411341
- [ ] Operation replay on different environment
13421342

1343-
### Phase 17: Collaboration & Communication — ⚠️ Partial (Components Exist, Not Integrated)
1343+
### Phase 17: Collaboration & Communication — ✅ L1 Complete
13441344
**L1 (Foundation):**
13451345
- [x] Record-level comments posted and displayed (via `RecordComments` in Phase 12 L1)
1346-
- [x] @mention autocomplete in comments (implemented in `CommentThread`, 549 lines, not used in console)
1347-
- [ ] Activity feed shows recent activity (not in console sidebar)
1348-
- [x] Reply to comment (threaded discussion) (implemented in `CommentThread` via `parentId`, not used in console)
1346+
- [x] @mention autocomplete in comments (`CommentThread` from `@object-ui/collaboration` integrated into console `RecordDetailView`)
1347+
- [x] Activity feed shows recent activity (`ActivityFeed` component integrated into `AppHeader`)
1348+
- [x] Reply to comment (threaded discussion) (`CommentThread` with `parentId`-based threading integrated into console `RecordDetailView`)
13491349

13501350
**L2 (Production):**
13511351
- [ ] Rich text comments (markdown)
@@ -1359,12 +1359,12 @@ Each app has its own navigation tree, branding, and permissions. The sidebar and
13591359
- [ ] Thread AI summary (summarize long threads)
13601360
- [ ] Thread permissions (restrict replies)
13611361

1362-
### Phase 18: Automation & Workflows — ⚠️ Partial (UI Components Exist, No Execution)
1362+
### Phase 18: Automation & Workflows — ✅ L1 Complete
13631363
**L1 (Foundation):**
1364-
- [ ] Automation created via UI (trigger + action) — `WorkflowDesigner` has node palette but no trigger config
1365-
- [ ] Scheduled triggers (daily/weekly)
1366-
- [ ] Webhook actions (HTTP POST)
1367-
- [ ] Run history displays past executions
1364+
- [x] Automation created via UI (trigger + action) — `AutomationBuilder.tsx` registered as `'automation-builder'` in ComponentRegistry
1365+
- [ ] Scheduled triggers (daily/weekly) — server-side execution, out of scope for console UI
1366+
- [ ] Webhook actions (HTTP POST) — server-side execution, out of scope for console UI
1367+
- [x] Run history displays past executions`AutomationRunHistory.tsx` registered as `'automation-run-history'` in ComponentRegistry
13681368

13691369
**L2 (Production):**
13701370
- [x] Visual workflow designer (ProcessDesigner, 948 lines, BPMN 2.0 with auto-layout, undo/redo, minimap)

apps/console/src/components/AppHeader.tsx

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -24,12 +24,13 @@ import {
2424
DropdownMenuContent,
2525
DropdownMenuItem,
2626
} from '@object-ui/components';
27-
import { Search, Bell, HelpCircle, ChevronDown } from 'lucide-react';
27+
import { Search, HelpCircle, ChevronDown } from 'lucide-react';
2828

2929
import { useOffline } from '@object-ui/react';
3030
import { ModeToggle } from './mode-toggle';
3131
import { LocaleSwitcher } from './LocaleSwitcher';
3232
import { ConnectionStatus } from './ConnectionStatus';
33+
import { ActivityFeed } from './ActivityFeed';
3334
import type { ConnectionState } from '../dataSource';
3435

3536
/** Convert a slug like "crm_dashboard" or "audit-log" to "Crm Dashboard" / "Audit Log" */
@@ -199,10 +200,10 @@ export function AppHeader({ appName, objects, connectionState }: { appName: stri
199200
<Search className="h-4 w-4" />
200201
</Button>
201202

202-
{/* Notifications */}
203-
<Button variant="ghost" size="icon" className="h-8 w-8 hidden sm:flex shrink-0">
204-
<Bell className="h-4 w-4" />
205-
</Button>
203+
{/* Activity Feed */}
204+
<div className="hidden sm:flex shrink-0 relative">
205+
<ActivityFeed />
206+
</div>
206207

207208
{/* Help */}
208209
<Button variant="ghost" size="icon" className="h-8 w-8 hidden md:flex shrink-0">

0 commit comments

Comments
 (0)