# Proposals — flove central

> Final resume: decisions made, plans confirmed, open items.
> Generated by questy minitree setup — 2026-07-29.

## Active proposals

| ID | Title | Plan | Status |
|----|-------|------|--------|
| P01 | Central backend (FastAPI + Turso + Railway) | `plans/central-backend.md` | Design complete — ready to build |
| P02 | Browsy extension (Ed25519 bridge) | `plans/browser-extension.md` | Design complete — ready to build |
| P03 | Nety frontend (tabbed app, masks, MyNet) | `plans/nety-frontend.md` | Ready to build |
| P04 | Nety trust (ranking, curators, abuse) | `plans/nety-trust.md` | Ready to build |
| P05 | Shared code (enrichment loader, DB abstraction) | `plans/shared-code.md` | ✅ Implemented |
| P06 | Standardisation (tokens, testing, mobile, i18n) | `plans/standards.md` | Ready to build |
| P07 | JSON distro (routing, metadata, build pipeline) | `backend.md` §10.3e | Ready to build |
| P08 | Puzzy engine (aggregation, compute) | `plans/puzzy.md` | Ready to build |
| P09 | Trusty cleanup (SIGNALS removal, app links) | `plans/trusty-cleanup.md` | Ready to build |
| P10 | Docs infrastructure (theme, nav, search) | `plans/docs.md` | ✅ Implemented (standards book at `development/standards/`) |
| P11 | Browsy-less fallback (localStorage stub mode) | questy Q007 | Ready to design |
| P12 | Decentral Nety repo (Rust stubs) | questy Q008 | Ready to build |
| P13 | Claim flow (warn at first sync, reclaim via authy) | questy Q015, Q025 | Ready to design |
| P14 | Central split (`backend/` + `apps/` + `shared/`) | `plans/conflicts.md` H4 | ✅ Implemented 2026-08-01 |
| P15 | Central download package (dual-package; solo as optional fallback) | questy 2026-08-01 Q002 | Ready to design |
| P16 | Backends overview (Central · Decentral · Browsy) | `backend.md` | ✅ Implemented 2026-08-01 |
| P17 | Publish-web.sh relocation (out of `solo/`) | `development/standards/scripts/` | ✅ Implemented 2026-08-01 |

## Resolved decisions

- **Architecture**: Central = data bank + frontend; Browsy = main nav + identity/trust bridge
- **Storage**: libSQL (`@libsql/client`) everywhere — same engine across SoloRich, Central, Decentral, DecentralRich
- **Identity**: Ed25519 keys via Browsy bridge API (`window.flove.browsy.identity.*`)
- **Trust**: 4 groups (Close, Public, Private + 1 custom), direct vouches only in v1, delegation deferred to v2
- **URL hierarchy**: Central URLs become primary; Solo URLs maintained on main as fallback
- **Deploy**: Railway CI watches `backend/` only; GitHub Pages CI watches `apps/` only; `shared/` bundled into both
- **Conflicts**: All 10+ cross-plan tensions resolved (see `plans/conflicts.md`)
- **Solo status**: Fallback reference only, **low-maintenance (not frozen)**, no retirement plan (Q001, Q004, Q016)

### Questy survey 2026-08-01 — central-first reorganisation
- **Dual packages**: Solo keeps its own download package; Central gets its own (central-first); the central package downloader may offer solo as an optional fallback (Q002)
- **central/dev retired**: refs fixed to `development/standards/`; the standards book lives there (Q003)
- **Backends overview**: `backend.md` = all backends (Central FastAPI · Decentral nety · Browsy); deep Central spec in `plans/central-backend.md`; canonical development = `central/apps/` (Q006)
- **Canonical set**: no fixed first-6 — the canonical set is whatever `central/` holds today (Q007)
- **Central split**: `central/` split into `backend/` + `apps/` + `shared/` — implemented 2026-08-01 (Q008, H4)
- **Browsy-less stub**: design + test stub mode before central apps ship (Q009)
- **Publish-web.sh**: moved from `solo/` to `development/standards/scripts/` (Q011)
- **Enrichment scope**: pro-enrichment targets central apps only (Q012)
- **Sequencing**: structure first (split + overview), then package builder, then stub (Q014)
- **Publish security**: status quo kept (deny-list + gitignore, no new guard) (Q015)
- **sw.js**: regenerate + bump cache version in the same commit as the split (Q017)
- **Split checks**: automated checks before commit — grep old-path refs, verify internal links, local serve test (Q020)
- **Questy making-of**: Exported survey HTML → rename to `decisions.html` (Q002)
- **central/ sync**: Auto-push to Gitea + GitHub on every commit (Q006)
- **Browsy fallback**: localStorage stub mode when extension not installed (Q007)
- **Decentral repo**: Create `decentral/` now with nety sub-folder, Rust stubs (Q008)
- **Shared libs**: Never diverge — same version for all consumers (Q009)
- **Solo/Central separation**: Different origins to avoid localStorage collision (Q011)
- **Central export**: NDJSON sufficient — no 6-format pipeline needed (Q012)
- **Trust CRDT**: Per-field merge with vector clocks (Q014)
- **Claim-or-lose**: Warn user at first sync before orphaned data (Q015, Q024)
- **Trust identity**: Per-device, email binds one account, Telegram allows many (Q022)
- **Reclaim**: via authy — p2p network + email + Telegram (Q025)

## Open items

- Central logging — basic vs file logging deferred
- Per-app collect() schema validation — blocked until app datafields are defined (PEN001)
- Social curation bundles with contrast — deferred to DecentralRich
- WASM/libSQL preloaded bundled selections — not in PoC
- SoloRich enrichment not on `main` — loader+markers only ever lived on the deleted `central/solo` branch (ENR01, `pendings.md`)

## Pending questions

See `pendings.md` for unresolved items:
- BR03: `/setprivacy` verification in BotFather
- N01: Nety master reconciliation with GitHub
- NF02: Mask data on browser clear
- PEN001: App datafields schema needed before defining collect() validation
- PEN002: collect() POST wire format to define
- PEN003: API contract completeness (errors, auth, rate-limit)
- PEN004: postMessage vs window.flove race handling
- PEN005: Contract test suite for browsy bridge
- PEN006: Version negotiation between browsy & Central apps
