| 1 |
|
- |
# GoingsOn TODO
|
| 2 |
|
- |
|
| 3 |
|
- |
## Launch readiness — IN PROGRESS (target 2026-06-01 slipped; correctness over deadline)
|
| 4 |
|
- |
|
| 5 |
|
- |
### §3.2 distribution — NEXT, blocks launch
|
| 6 |
|
- |
- Signed builds + notarization stapled + DMG smoke test on a clean macOS account.
|
| 7 |
|
- |
- Build on fw13 (x86_64) and astra (aarch64) natively per the no-cross-compile rule.
|
| 8 |
|
- |
- macOS notarization via altool key in `_private/`.
|
| 9 |
|
- |
- Smoke test: install DMG on a clean macOS user account, launch, verify Gatekeeper passes, run the welcome flow, exit, relaunch.
|
| 10 |
|
- |
- iOS TestFlight: re-check the appiconset alpha-flatten step (required every iOS build per memory).
|
| 11 |
|
- |
|
| 12 |
|
- |
### §3.1 mobile UI mode hardening — DEFERRED
|
| 13 |
|
- |
- `index.html:18-57` `?ui=mobile` prod lockdown. Same item as §K Phase 6; blocks on a desktop-mobile distribution channel existing.
|
| 14 |
|
- |
|
| 15 |
|
- |
### §3.4 fuzz pass — DONE 2026-05-31
|
| 16 |
|
- |
Four-axis parallel audit (rust-fuzz + use-fuzz + creator-fuzz + ux-audit). Launch-critical fixes committed pre-launch; deferred items closed 2026-06-02 (commits `7421ead`, `9719e28`). One cosmetic item left: `db_watcher.rs:61` shutdown latency = `MIN_EVENT_INTERVAL_MS`, thread unjoinable. Not worth fixing.
|
| 17 |
|
- |
|
| 18 |
|
- |
### §3.3 repo hygiene — DONE 2026-06-02
|
| 19 |
|
- |
|
| 20 |
|
- |
---
|
| 21 |
|
- |
|
| 22 |
|
- |
# GoingsOn CSS Dedup — DONE (2026-05-24)
|
| 23 |
|
- |
|
| 24 |
|
- |
Charter + primitive vocabulary lives at the top of `src-tauri/frontend/css/styles.css`. Always rebuild after changes:
|
| 25 |
|
- |
```
|
| 26 |
|
- |
cd src-tauri/frontend && ./build-css.sh
|
| 27 |
|
- |
```
|
| 28 |
|
- |
|
| 29 |
|
- |
All consolidation sweeps closed. Outcomes:
|
| 30 |
|
- |
|
| 31 |
|
- |
- **A. Buttons** — 14 bespoke `*-btn` classes migrated to `.btn` family (intents/sizes/variants); 2 deleted as dead code. Remaining bespoke (`.view-toggle-btn`, `.kebab-btn`, `.shortcut-hint-btn`, etc.) are slim markers on top of canonical `.btn` and are correct as-is.
|
| 32 |
|
- |
- **B. Form inputs** — `.header-input`/`.header-select` migrated to `.form-input--ghost`/`.form-select--ghost`; `.quick-add-input` was dead code, deleted. `.filter-select` kept (distinctive UX cue).
|
| 33 |
|
- |
- **C. Cards** — `.email-list`, `.contact-info-section`, `.review-card`, `.kanban-card` migrated to `.card` + variants (`--shell`/`--muted`/`--static`). `.dashboard-column` and `.contact-summary-stat` kept page-scoped.
|
| 34 |
|
- |
- **D. Badges** — 9 task-status bespoke badges replaced with composable `chip(color, text)` helper emitting `.badge.badge--xs.badge--filled[data-color="X"]`. New `--xs`/`--sm`/`--filled` modifiers.
|
| 35 |
|
- |
- **E. Avatars** — `.avatar` primitive promoted with `--sm`/`--lg`/`--unknown`; all 5 bespoke contact-avatar rules deleted.
|
| 36 |
|
- |
- **F. Status dots** — reviewed, skip. Three variants (`.sync-dot`, `.sync-status-dot`, `.tab-status-dot`) have meaningfully different animation timing; unifying would lose nuance for <10 lines saved.
|
| 37 |
|
- |
- **G. Toggles** — clean. `.toggle-switch` is the only on/off primitive; `<summary>`-style disclosures are a different pattern.
|
| 38 |
|
- |
- **H. Empty states** — clean. `.empty-state` + variants are the only surface.
|
| 39 |
|
- |
- **I. Globals relocation** — `.kbd-hint` moved into §12; `.visually-hidden` already removed.
|
| 40 |
|
- |
- **J. Tier 3** — mobile section consolidation superseded by §K; V1/V2 weekly review resolved (§49 trimmed 326→106 lines); print consolidation done (§52 folded into §48).
|
| 41 |
|
- |
- **K. UI Mode Separation** — set once at boot via `<html class="ui-mode-mobile|desktop">`. 8 viewport media queries → 0. Phases 1–5 complete; full notes in `ui_mode_separation_plan.md` + `css_state_audit.md`.
|
| 42 |
|
- |
|
| 43 |
|
- |
### §K Phase 6 — open, blocked
|
| 44 |
|
- |
- [ ] Inject `__GO_BUILD_MODE__` at build time to gate `?ui=mobile` override branches against production tampering. Defer until a production mobile-only desktop-binary distribution channel exists. (TestFlight iOS is its own binary; no override risk there.)
|