Estimate — bahalaka Complete App

13 boards · 226 story points · 54 work items · Boards 5–17
v2 — updated after NOUS Desktop comparison. SDK vendored. Atom verb handlers, not HTTP endpoints. One channel.

Boards Overview

BoardPhaseItemsPts
5SDK Vendor + WASM Core + App Structure521
6WASM Storage + Auth + Config416
7Server Infra (2 changes)418
8Registration + Pairing313
9Chat Core418
10Chat Features416
11Status + Schedule521
12Finance Core418
13Sponsorships416
14Agreements418
15Concern Detection418
16Stories + Onboarding313
17Ship620
Total54226

Board Details

Board 5 — SDK Vendor + WASM Core + App Structure 21 pts

Vendor the nous C SDK. Create /app/ folder. Prove C runs in the browser via wire protocol.

{nous C modules, add to, sdk/ (vendor from kastil)} 3~a
{app/ folder structure + shell, add to, bahalaka project} 3~a
{Emscripten Makefile (sdk/ → WASM), add to, bahalaka project} 5~a
{wire.c + crypt.c WASM compilation, add to, Emscripten build} 5~a
{bahalaka.js relay client bridge, add to, app/} 5~a

Board 6 — WASM Storage + Auth + Config 16 pts

Local persistence via IDBFS. Config file. TOTP login via atom through relay.

{journal.c + store.c WASM with IDBFS, add to, Emscripten build} 5~a
{bahalaka.conf.js (relay host/port/paths), add to, app/} 3~a
{TOTP auth page + session atom flow, add to, app/pages/} 5~a
{WASM foundation verification, plan tests for, bahalaka app} 3~t

Board 7 — Server Infra (2 Changes) 18 pts

WebSocket transport on relay. Bahalaka atom verb handlers on prime. Per-user store paths.

{WebSocket transport (RFC 6455), add to, relay_server.c} 5~a
{WebSocket port, add to, relay firewall (3 regions)} 3~a
{bahalaka atom verb handlers, add to, prime} 5~a
{per-user encrypted store paths, add to, prime} 5~a

Board 8 — Registration + Pairing 13 pts

User onboarding via registration atoms. Connection pairing via signed invite atoms.

{user registration atom flow, add to, bahalaka app} 5~a
{connection pairing via signed invite atom, add to, bahalaka app} 5~a
{relay + prime integration verification, plan tests for, bahalaka app} 3~t

Board 9 — Chat Core 18 pts

Forward-only messaging. Chat atoms packed by wire.c, encrypted, sent through relay.

{chat UI page, add to, app/pages/} 5~a
{message send via WASM atom + WebSocket, add to, chat} 5~a
{message receive + decrypt + unpack + render, add to, chat} 5~a
{forward-only journal enforcement, add to, chat} 3~a

Board 10 — Chat Features 16 pts

Receipts, offline queue, media. All atoms through relay.

{read + typing indicator atoms, add to, chat} 3~a
{offline message queue via local journal, add to, chat} 5~a
{photo + voice binary atoms, add to, chat} 5~a
{chat verification, plan tests for, bahalaka app} 3~t

Board 11 — Status + Schedule 21 pts

Asymmetric visibility. GPS atoms. Schedule atoms. All through relay.

{status atoms + GPS verification, add to, app/pages/} 5~a
{Capacitor GPS plugin + location atom, add to, native shell} 3~a
{provider status dashboard, add to, app/pages/} 5~a
{schedule UI + time request atoms, add to, app/pages/} 5~a
{connection isolation enforcement, add to, catalog_server.c} 3~a

Board 12 — Finance Core 18 pts

Allowance, disbursement, savings. Every transaction a signed atom through relay.

{financial atom verb handlers, add to, prime} 5~a
{allowance engine + disbursement atoms, add to, app/pages/} 5~a
{savings + withdrawal tracking atoms, add to, app/pages/} 3~a
{financial dashboard, add to, app/pages/} 5~a

Board 13 — Sponsorships 16 pts

University sponsorships, grade proofs, sponsor requests. All atoms through relay.

{sponsorship lifecycle atoms, add to, app/pages/} 5~a
{grade proof photo as binary atom, add to, app/pages/} 3~a
{sponsor request atom flow, add to, app/pages/} 5~a
{finance verification, plan tests for, bahalaka app} 3~t

Board 14 — Agreements 18 pts

3-part templates, 48-hour cooling, dual Ed25519 signing. All atoms through relay.

{agreement template triples, add to, prime} 5~a
{template selection + cooling period atoms, add to, app/pages/} 5~a
{dual Ed25519 signing atoms, add to, agreements} 5~a
{mismatch detection via policy.c WASM, add to, agreements} 3~a

Board 15 — Concern Detection 18 pts

Promises, reason.c graph walks, concern result atoms pushed through relay.

{promise + commitment declare atoms, add to, app/pages/} 5~a
{concern detection via reason.c cron, add to, prime} 5~a
{provider concern dashboard, add to, app/pages/} 5~a
{trust system verification, plan tests for, bahalaka app} 3~t

Board 16 — Stories + Onboarding 13 pts

Field guide content as triples. Onboarding key generation. All through relay.

{stories engine triples + query atoms, add to, prime} 5~a
{contextual story suggestion atoms, add to, app/pages/} 3~a
{onboarding flow + WASM key generation, add to, app/pages/} 5~a

Board 17 — Ship 20 pts

Capacitor build, download page, comment migration, invite codes, app stores.

{Capacitor iOS + Android build, add to, bahalaka project} 5~a
{smart download page, add to, app/get/} 3~a
{Firestore comments → nous triple migration, update in, bahalaka.com} 3~u
{friends-only signed invite atoms, add to, bahalaka app} 3~a
{app store submission, add to, iOS + Android} 3~a
{end-to-end ship verification, plan tests for, bahalaka app} 3~t

Dependencies

Critical Path

Parallel Opportunities

Value Rationale

Priority Order

Scale