Repository navigation
Better Codex v0.2.0-beta.5 — Canonical history and local body adoption
Pre-releaseBeta.5 fixes the canonical-history argument passed to the real SDK reader and the guarded adoption of a first local body.
getLoadedConversationHistoryTurns requires conversation.turnHistory.history. Passing the conversation object caused an actual TypeError(flatMap) and prevented the observed reasoning/tool process from being persisted. The corrected helper saves/restores process items with the SDK's canonical history object. The Android transform allows a genuinely empty local view to adopt a cached body while retaining a newer live metadata head; existing live bodies, cancellation, rewrite and normal stale-history guards remain authoritative.
Evidence is kept separate:
- No SDK supplied: 16 contract checks pass and three actual-SDK tests are explicitly skipped. Full core: 227 pass, those three SDK-required skips. Bad SDK input does not fall back silently.
- Actual locally acquired SDK: 19 direct bindings pass; the beta.4 old cache reproduces the real
TypeError. - Exact public-generated initial/scope/import-map modules: 239 checks pass with no skips, 192 declared-resource hashes and the existing static-import checks, and the bound Android release builds. Host/auth contracts13, full Go suite and the real independent empty-account host43 checks pass.
- The private maintenance owner reports real APK72/UI ee166 tool/image progress and two Native SQLite process turns (7 and 10 items) retained after forced termination, with 50 actual WebView and 11 formal resource checks. That is SDK/persistence evidence, not offline startup acceptance.
Complete offline cold startup is not solved or accepted in this release. An eight-second private offline cold open still waits for a connection and remains under investigation. Physical-phone behavior, natural long-send latency and sustained power have not been fully accepted. A script's persistence passed result does not establish that its offline first screen passed.
README remains unchanged. Beta.4 and earlier tags/assets remain immutable. The four beta.5 assets provide the portable Mac installer/source, Better Codex source, complete pinned modified OpenCodex corresponding source (AGPL), and SHA256SUMS. Official renderer resources, private APK/signature, credentials, conversation data and raw logs are not redistributed. Consult docs/portable-validation.md for the detailed acceptance layers and current limits.
Follow-up diagnosis after this immutable candidate was committed: the legacy Android packager does not collect every literal dynamic import, and its old pruning checker does not prove every target exists. A private offline trace identified a missing work-mode access splash module. This is a separate pending resource-collector fix; beta.5 does not claim complete dynamic-import closure or full offline startup.