Files
Project_Velocity/.Agent Context/Sprint 1/Sayan Multi-Surface and Oracle Delivery Pack/delivery_log.md
2026-04-20 00:48:01 +05:30

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.py
    • routes_inventory.py
    • routes_admin_surface.py
  • Confirmed Oracle extension artifacts already exist in the workspace:
    • backend/oracle/schema_extension_v2.sql
    • backend/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 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
  • Removed misleading mock fallback behavior from active WebOS surfaces:
    • app/src/store/useStore.ts now starts with empty/live-only state instead of fabricated leads, visitors, metrics, and units
    • app/src/hooks/useCrmBootstrap.ts now hydrates CRM plus inventory state from backend data and clears state on failure instead of silently preserving fake data
    • app/src/lib/oracleQueryClient.ts now throws when VITE_ORACLE_QUERY_URL is missing instead of generating mock Oracle answers
  • Rebuilt the investor-facing WebOS dashboard around live backend data:
    • app/src/components/modules/Dashboard.tsx now 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.py now includes price_bands and unit_mix in property summary payloads
    • app/src/lib/velocityPlatformClient.ts and app/src/lib/platformMappers.ts now map inventory properties into live Inventory module cards
  • Reduced fabricated marketing behavior in Catalyst:
    • app/src/store/useMarketingStore.ts now initializes empty instead of seeded mock campaigns/assets/insights/events
    • app/src/components/modules/Catalyst.tsx no longer auto-generates fake optimization feed events
    • app/src/components/modules/CatalystMarketingTab.tsx no longer exposes a synthetic lead seeding path from the production shell
    • app/src/components/modules/GroundTruthPicker.tsx now 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.ts will reuse the live Velocity token if a dedicated oracle_jwt is not present
  • Completed final WebOS production pass:
    • app/src/app/admin/page.tsx now stages real bounded admin actions through POST /api/admin-surface/actions
    • app/src/components/modules/Settings.tsx now 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, and app/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.swift
    • iOS/velocity/velocity/Features/Calendar/CalendarView.swift
    • iOS/velocity/velocity/Core/Networking/VelocityAPIClient.swift
    • iOS/velocity/velocity/Core/Config/AppConfig.swift
  • Completed a broader iOS production hardening pass:
    • iOS/velocity/velocity/Core/Config/AppConfig.swift now defaults to https://api.desineuron.in instead of a stale instance IP
    • iOS/velocity/velocity/Core/Networking/VelocityAPIClient.swift now reads live inventory summaries in addition to leads, events, alerts, and calendar
    • iOS/velocity/velocity/Core/State/AppStore.swift no longer seeds fabricated dashboard, visitor, chat, or oracle state and now hydrates a live shared snapshot
    • iOS/velocity/velocity/Features/Dashboard/DashboardView.swift now renders live lead, inventory, calendar, and alert posture instead of synthetic KPIs and AI chat
    • iOS/velocity/velocity/Features/Oracle/OracleView.swift now uses live pipeline, live communication timelines, and live calendar events; unavailable Oracle modes are shown truthfully instead of mock canvases
    • iOS/velocity/velocity/Features/Sentinel/SentinelView.swift now disables visitor analytics until a real Sentinel feed exists and shows live operator urgency instead of fake biometric metrics
    • iOS/velocity/velocity/Features/Settings/SettingsView.swift now reflects real backend/auth/runtime state
    • iOS/velocity/velocity/Features/Inventory/InventoryView.swift no 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 surfaces
    • android-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/notes route 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.xcodeproj so the phone app can now be opened and tested directly in Xcode
    • Added iOS/velocity-iphone/Assets.xcassets with app icon and accent color catalog plumbing required by the standalone target
    • iOS/velocity-iphone/Core/Networking/VelocityEdgeAPIClient.swift now 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/session
    • iOS/velocity-iphone/Core/State/EdgeAppStore.swift now manages live shared phone state for the edge surface and refreshes note, transcript, and alert context after writes
    • iOS/velocity-iphone/Core/UI/EdgeTheme.swift now preserves the iPad Velocity styling language while adapting cards and layout to narrow iPhone width
    • iOS/velocity-iphone/Features/Alerts/EdgeAlertsView.swift now 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.py session heartbeat handling was fixed so iphone_edge and 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 stronger velocity-iphone source tree

MVP limits still in place

  • The iOS/velocity-iphone/ source tree now includes a dedicated standalone .xcodeproj, but full xcodebuild verification 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_examples does not match the actual seed example count in backend/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 --noEmit for the WebOS app after live-auth and no-mock hardening changes
  • python3 -m py_compile for backend auth and route modules after role/session hardening
  • swiftc -parse over the active iPad Swift source set after mobile production hardening
  • swiftc -parse over the complete iOS/velocity-iphone/ source tree
  • plutil -lint for iOS/velocity-iphone/Info.plist
  • plutil -lint for iOS/velocity-iphone/velocity-iphone.xcodeproj/project.pbxproj
  • python3 -m py_compile backend/api/routes_mobile_edge.py after fixing surface session heartbeat behavior
  • XML validation for both Android manifests
  • Kotlin delimiter sanity checks over android-tablet and android-edge-phone source trees
  • Full xcodebuild and Gradle assembly were not run on this host because full Xcode and Gradle are not installed here

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.