Repository navigation
Tags: Keylessboi/lumen
Tags
feat: account system — provider-picker + Sync tab (Linux) (#66) Keylessboi: 'i'm not seeing the account system'. The XMPP stack was built and G3-tested but had no UI to configure it — the M4 provider-picker was B's piece, never built. Under the full override (B offline), this ships it: - AccountSection (ui/, shared): provider picker from Providers.all (5 vetted XMPP providers), username/password, Create account (XEP-0077 in-app IBR) vs Use existing, disconnect. State machine: Unconfigured / Connected / Working / Failed — a failed registration is shown plainly, never faked. - Linux Main.kt: Today/Sync tab toggle, register() drives XmppTransport.register, configure() saves via SyncManager.saveAccount (host/port/JID/password into settings), periodic sync loop picks it up automatically. - Privacy: password stored in settings like the existing SyncManager contract; keyring integration is the follow-up. Verified: app runs, Sync tab renders, no crash on interaction. Co-authored-by: Travis Fiorito <[email protected]>
M1.1 — freeze amendment: local display day + rollups_local (#29, opti… …on 2) Bumps the M1 freeze reference per docs/plan.md (tag.M → fix → tag.M+1). Amendment: UTC day stays the reconciliation key; the UI presents the device local day via the display.timezone setting (LocalDay in core/commonMain). Code landed in PR #31; data-model.md documentation half in PR #62. rollups_local is derived, never synced, with utc_offset_min recorded for audit.
M1: contract freeze — commonTest suite green on both agent machines - Agent B's 64-test commonTest contract suite (PR #17) + Agent A's 34 driver tests = 98 green - Frozen: core public API, SQLite schema, reconciliation contract, collector seam, E2EE seam - Schema fix (compound PK) caught by B's 'events scoped to device' test — exactly the value of consumer-written contracts - Agent B's contract suite proves the API against what it says, not what its author meant - LumenStoreContract abstract kit: every future driver passes the same suite
M0: contract freeze + green build on both agent machines (Arch + macOS) - :core:build green: desktop + android, AGP 8.9.2, Gradle 9.1.0, SDK 36 - Two-agent contract live: machine split, ownership zones, branch prefixes, CI workflow, wake protocol - E2EE seam: freeze-review findings accepted (at-rest, wrappedKeys, padding) - Ownership gate fail-closed; wake protocol security-hardened - Confirmed green on macOS 15/arm64 by Agent B (eb6b7c3)