Skip to content

EPIC — DeviceCore: finish runtime store parity and typed platform outcomes #1433

Description

@timohueser

One DeviceCore owns product lifecycles across board, simulator and web. Platform executors perform bounded work and return typed results. DC1–DC7 and the domain ownership cutovers are complete; board staging already uses RideExec. Program order is in #1448.

Remaining implementation

Runtime store convergence

Maps in simulator and web, plus browser routes, use the shared flat store. Native routes and trips share that card through #1702. Native recording is complete in #1713 / #1718, merged as d00ea1cb after independent review and green CI. Browser recording is complete in #1720 / #1723, merged as 80241949 after review, actual browser Save/reset checks and green CI. Samples and finalized IDs now resolve on the same memory card. Browser trips are explicitly absent; adding demo content is not a convergence requirement. Persistent Unix HostStore create/open is complete in #1682 / #1684; Windows creation still needs a directory-durability contract.

Refine bounded children by object kind under this epic, with client acceptance in #1392. Runtime policy must use the common store; files may remain at import/export boundaries. Define host-card lifetime, reopen and reset behavior. Preserve full StoreId/ObjectId/Revision identity, atomic replacement, read-lease lifetime and explicit I/O failure.

Shared Save draining is complete in #1706 / #1709. Accepted-boundary checkpoint context and typed checkpoint support are complete in #1712 / #1714. Native #1713 / #1718 supplies real journal, resume, statistics and continuation context through the same card owner. Tests cover failed open, append, journal, finalization, recovery confirmation and exact damaged deletion. A real process trace confirms Continue/Save and a second reopen preserve the exact object, samples, UTC start and sensor totals, including when optional GPX export fails. Browser conversion is complete in #1720 / #1723: real journal and saved samples, truthful memory-only checkpoint status and acknowledged reset cleanup. Actual browser runs preserve saved rides across resets and lose the page-local card on reload. R4 durability and retention policy belong to #1398.

ForgetBond

Typed removal and the residual mailbox deletion are complete through #1678 / PR #1679. DeviceCore owns one token, explicit refusal, terminal matching and manual retry. The board confirms the RRAM write before it removes host keys; disconnect during a storage-lock wait retains the request. The UI distinguishes errors and unconfirmed controller cleanup.

Remaining: the pinned BLE library queues controller resolving-list cleanup and exposes no completion receipt. Live acknowledged cleanup needs radio-wide idle coordination; the current UI asks for a restart instead of claiming full completion. Physical paired-phone deletion, reset and failure acceptance remain open. The attached board booted with no saved bond, so its scoped run could not prove real key deletion. The separate reconnect defect remains #481.

Map and effect-delivery contracts

N5 planner parity is owned by #1400; it is a dependency here, not a second implementation plan. DeviceCore retains deletion ordering, trip cascades, cancellation, recovery and catalog policy; executor adapters must not grow those decisions again.

Close when

Use exact child scopes and current measurements. The old command-count and line-saving forecasts are retired.

Native embedded planner terrain is complete in #1719 / #1721, merged as 263c055d after review and green CI. Import and reopen use the same retained map terrain. The actual CLI trace preserves map identity and byte-identical route heights/totals after removal of the source file. Peak View keeps its existing independent cache. Unavailable route-distance presentation and bounded rounding are complete in #1722 / #1724, merged as 72fc615a after review and green CI. Real empty/unreadable routes reach Map and Statistics without a fabricated distance or arithmetic overflow.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions