11 KiB
11 KiB
Delivery Log
Multi-Surface Platform and Oracle Expansion
Completed in this pass
- Confirmed backend route families are registered in
backend/main.py:routes_mobile_edge.pyroutes_inventory.pyroutes_admin_surface.py
- Confirmed Oracle extension artifacts already exist in the workspace:
backend/oracle/schema_extension_v2.sqlbackend/oracle/oracle_template_seed_db.json
- Completed iPad residual navigation and feature views:
- Added
CommunicationsView.swift - Added
CalendarView.swift - Wired both into
ContentView.swift
- Added
- Added Android tablet scaffold under
android-tablet/- Compose app shell
- Navigation graph
- Dashboard, Inventory, Oracle, Sentinel, and Settings feature stubs
- Added dedicated iPhone edge app source tree under
iOS/velocity-iphone/- SwiftUI app entry and tab shell
- Shared Velocity-styled phone UI tokens and cards
- Alerts, Lead Summary, Communications, Notes, Transcriptions, Settings
- Live backend auth, notes, transcript, memory, alerts, and heartbeat wiring
- Added Android phone edge scaffold under
android-edge-phone/- Compose app shell
- Alerts, Lead Summary, Communications, Notes, Transcriptions, Settings
- Added WebOS admin panel surface at
app/src/app/admin/page.tsx - Added
docs/KIMI_SYNTHETIC_DATA_DOWNSTREAM_PLAN.md - Hardened live auth/session behavior across WebOS:
- JWT roles are normalized to uppercase in
backend/auth/dependencies.py - WebOS session restore now re-validates the real backend token on reload in
app/src/App.tsx - Top-bar identity now renders the authenticated backend user instead of hard-coded operator text
- JWT roles are normalized to uppercase in
- Removed misleading mock fallback behavior from active WebOS surfaces:
app/src/store/useStore.tsnow starts with empty/live-only state instead of fabricated leads, visitors, metrics, and unitsapp/src/hooks/useCrmBootstrap.tsnow hydrates CRM plus inventory state from backend data and clears state on failure instead of silently preserving fake dataapp/src/lib/oracleQueryClient.tsnow throws whenVITE_ORACLE_QUERY_URLis missing instead of generating mock Oracle answers
- Rebuilt the investor-facing WebOS dashboard around live backend data:
app/src/components/modules/Dashboard.tsxnow renders CRM lead counts, real conversation volume, inventory preview, velocity trends, sync state, and mobile-edge alerts- Removed the previous fabricated AI chat, top performer, and static KPI content from the dashboard surface
- Extended the live inventory contract and frontend mapping:
backend/api/routes_inventory.pynow includesprice_bandsandunit_mixin property summary payloadsapp/src/lib/velocityPlatformClient.tsandapp/src/lib/platformMappers.tsnow map inventory properties into live Inventory module cards
- Reduced fabricated marketing behavior in Catalyst:
app/src/store/useMarketingStore.tsnow initializes empty instead of seeded mock campaigns/assets/insights/eventsapp/src/components/modules/Catalyst.tsxno longer auto-generates fake optimization feed eventsapp/src/components/modules/CatalystMarketingTab.tsxno longer exposes a synthetic lead seeding path from the production shellapp/src/components/modules/GroundTruthPicker.tsxnow requires real operator-provided assets instead of showing built-in sample media
- Oracle v1 client auth is now aligned with the main platform session:
app/src/oracle/lib/oracleApiClient.tswill reuse the live Velocity token if a dedicatedoracle_jwtis not present
- Completed final WebOS production pass:
app/src/app/admin/page.tsxnow stages real bounded admin actions throughPOST /api/admin-surface/actionsapp/src/components/modules/Settings.tsxnow reflects truthful session/config state instead of fake device pairing and hard-coded profile data- Removed inactive demo-only WebOS files such as
app/src/lib/oracleQueryClient.ts,app/src/oracle/lib/oracleDemoData.ts, andapp/src/components/oracle/mockLeads.ts
- Confirmed the iPad residual views are now live-backend readers rather than local static arrays:
iOS/velocity/velocity/Features/Communications/CommunicationsView.swiftiOS/velocity/velocity/Features/Calendar/CalendarView.swiftiOS/velocity/velocity/Core/Networking/VelocityAPIClient.swiftiOS/velocity/velocity/Core/Config/AppConfig.swift
- Completed a broader iOS production hardening pass:
iOS/velocity/velocity/Core/Config/AppConfig.swiftnow defaults tohttps://api.desineuron.ininstead of a stale instance IPiOS/velocity/velocity/Core/Networking/VelocityAPIClient.swiftnow reads live inventory summaries in addition to leads, events, alerts, and calendariOS/velocity/velocity/Core/State/AppStore.swiftno longer seeds fabricated dashboard, visitor, chat, or oracle state and now hydrates a live shared snapshotiOS/velocity/velocity/Features/Dashboard/DashboardView.swiftnow renders live lead, inventory, calendar, and alert posture instead of synthetic KPIs and AI chatiOS/velocity/velocity/Features/Oracle/OracleView.swiftnow uses live pipeline, live communication timelines, and live calendar events; unavailable Oracle modes are shown truthfully instead of mock canvasesiOS/velocity/velocity/Features/Sentinel/SentinelView.swiftnow disables visitor analytics until a real Sentinel feed exists and shows live operator urgency instead of fake biometric metricsiOS/velocity/velocity/Features/Settings/SettingsView.swiftnow reflects real backend/auth/runtime stateiOS/velocity/velocity/Features/Inventory/InventoryView.swiftno longer renders the simulator-only fake AR sun overlay in the active production path
- Completed the Android mobile hardening pass:
android-tablet/now includes a live backend client, Gradle runtime config fields, internet permission, and live-backed Dashboard, Inventory, Oracle, Sentinel, and Settings surfacesandroid-edge-phone/now includes a live mobile-edge client, Gradle runtime config fields, internet permission, and live-backed Alerts, Lead Summary, Communications, Notes, Transcriptions, and Settings surfaces- Android Notes now writes to the real
POST /api/mobile-edge/notesroute when credentials are configured - Android Sentinel surfaces are now explicitly truthful about missing production biometric feeds instead of implying live analytics
- Completed the dedicated iPhone edge production source pass:
iOS/velocity-iphone/now supersedes the earlier lightweight edge scaffold and is the single iPhone source of truth- Added a dedicated standalone Xcode project at
iOS/velocity-iphone/velocity-iphone.xcodeprojso the phone app can now be opened and tested directly in Xcode - Added
iOS/velocity-iphone/Assets.xcassetswith app icon and accent color catalog plumbing required by the standalone target iOS/velocity-iphone/Core/Networking/VelocityEdgeAPIClient.swiftnow uses live/api/auth/login,/api/leads,/api/mobile-edge/alerts,/api/mobile-edge/events,/api/mobile-edge/memory,/api/mobile-edge/notes,/api/mobile-edge/transcripts/{eventId}, and/api/mobile-edge/sessioniOS/velocity-iphone/Core/State/EdgeAppStore.swiftnow manages live shared phone state for the edge surface and refreshes note, transcript, and alert context after writesiOS/velocity-iphone/Core/UI/EdgeTheme.swiftnow preserves the iPad Velocity styling language while adapting cards and layout to narrow iPhone widthiOS/velocity-iphone/Features/Alerts/EdgeAlertsView.swiftnow uses an adaptive metric grid suitable for phone resolution instead of a tablet-like fixed row- iPhone edge screens now auto-refresh live state periodically so the app behaves like an active operator surface instead of a one-shot fetch
backend/api/routes_mobile_edge.pysession heartbeat handling was fixed soiphone_edgeand other mobile surfaces update an active session window instead of creating redundant session rows on every heartbeat- Removed the superseded
iOS/velocity-edge-phone/scaffold after confirming nothing useful remained outside the strongervelocity-iphonesource tree
MVP limits still in place
- The
iOS/velocity-iphone/source tree now includes a dedicated standalone.xcodeproj, but fullxcodebuildverification still depends on a machine with full Xcode, simulator runtimes, signing configuration, and live credentials. - The WebOS admin page is mounted into the live Vite shell and can now stage bounded actions against the backend audit trail; auto-execution remains intentionally out of scope.
- The iPad production shell no longer uses fabricated dashboard/oracle/sentinel state, but some specialist inventory helpers remain beyond the current source hardening pass; on iPhone, the main remaining gaps are host-side build verification, signing, and supplying final production app-icon artwork rather than feature wiring.
- Android mobile surfaces now read live data, but full device verification still requires Gradle on the host and real credentials in Gradle properties.
- Oracle template seed metadata needs correction:
_meta.total_seed_examplesdoes not match the actual seed example count inbackend/oracle/oracle_template_seed_db.json. - Sprint-1 documentation artifacts called for in the delivery pack are still missing as committed repo outputs, including the residual audit artifact and contract/package documentation.
Verification steps run
- Python syntax compilation for backend route files
- JSON validation for Oracle seed DB
- SQL parse sanity check on extension migration
npx tsc --noEmitfor the WebOS app after live-auth and no-mock hardening changespython3 -m py_compilefor backend auth and route modules after role/session hardeningswiftc -parseover the active iPad Swift source set after mobile production hardeningswiftc -parseover the completeiOS/velocity-iphone/source treeplutil -lintforiOS/velocity-iphone/Info.plistplutil -lintforiOS/velocity-iphone/velocity-iphone.xcodeproj/project.pbxprojpython3 -m py_compile backend/api/routes_mobile_edge.pyafter fixing surface session heartbeat behavior- XML validation for both Android manifests
- Kotlin delimiter sanity checks over
android-tabletandandroid-edge-phonesource trees - Full
xcodebuildand Gradle assembly were not run on this host because full Xcode and Gradle are not installed here
Recommended next implementation step
WebOS and the primary iPad/Android/iPhone source surfaces are now aligned around live backend truthfulness. The next implementation step should be dedicated device/build-host verification across the standalone iOS/velocity-iphone/velocity-iphone.xcodeproj, the existing iPad target, and the Android builds with live credentials.