Closes the code-side v0.1 ship gate. All quality gates green: cargo fmt/clippy/test (~327 tests), npm check (0/0), vitest 13/13, scripts/dogfood-rebrand-drill.sh 8/8. Phase F — first-run onboarding promoted to v0.1 - FirstRunPage with skip-to-main + failure recovery + event recording - Six onboarding commands (record/list/has-completed + lumotia_events) - Storage migration v17 (onboarding_events + lumotia_events tables) UI hardening (in-scope items from v0.1-ui-hardening.md) - StatusPill + PostCaptureCard components, 21st preview entry - Sidebar recording-as-sacred-state (opacity + aria-disabled, reduced-motion) - Settings 6-section regroup + Help section + Activation log + Privacy toggle - Error-state copy sweep (DictationPage + SettingsPage, plain-language) - Global :focus-visible rule, textarea outlines restored - Ctrl+K / Ctrl+, / Escape bindings in +layout LLM resilience - rule_based_extract_tasks (regex-free imperative-verb extractor) + extract_tasks_with_fallback wrapper — task extraction never returns zero - tokio::time::timeout(120s) wraps cleanup/tags/tasks commands Release artefacts - LICENSE (canonical AGPL-3.0), CHANGELOG (Keep-a-Changelog format) - v0.1-release-notes, privacy-and-ai-use, install-warnings, tester-onboarding-kit, tester-acceptance-runbook, code-signing-setup, apple-silicon-rb08-runbook, virtual-audio-setup, v0.1-contrast-audit - Workspace versioning + AGPL spdx; npm exact-pin (10 ranges removed) - AppImage SHA-256 sidecar in build.yml - README v0.1 section + Reporting-issues; canonical repo slug Closure pass — items moved from human-required to code-complete - KI-02 Linux idle inhibit: zbus 5 → org.freedesktop.login1.Manager.Inhibit - KI-03 Windows sleep prevention: SetThreadExecutionState(ES_CONTINUOUS|...) - acquire/release_idle_inhibit Tauri commands, wired in DictationPage - Diagnostic-bundle frontend wire-up (Settings → Help button) - WCAG-AA contrast fix via .btn-filled-text utility (no token changes) - 8 destructive-action sites wrapped in plain-language confirm() guards - KNOWN-ISSUES.md + v0.1-known-limitations.md updated (KI-02/03 fixed) Scripts - pre-tag-verify.sh, tag-day.sh, smoke-linux + driver - parse-diagnostic-bundle.sh, parse-activation-log.py Per-item audit trail: docs/release/v0.1-completion-status.md Remaining: W-01…W-08 (signing certs, hardware probes, smoke matrix, tester recruitment) — see docs/release/v0.1-known-limitations.md.
3.3 KiB
Contributing to Lumotia
Welcome
Lumotia is a single-developer-led, AI-assisted, human-directed indie app. Jake Sames at CORBEL defines the product, sets the privacy model, writes the tests that matter, and ships through a repeatable quality gate. AI coding tools are used during implementation. Every release is dogfood-tested, every release ships a known-limitations document, and every release has an audit trail in the git log. Read docs/release/how-lumotia-is-built.md to understand the trust model before contributing.
What we are looking for in v0.1
Bug reports and tester feedback are the most valuable contributions right now. New feature work is paused until v0.2 — the scope is locked per docs/release/v0.1-checklist.md. Reopening a v0.2-flagged item moves the ship date. If you have a feature idea, open a Discussion rather than a PR.
How to file a bug
Open an issue using the Bug report template. The template walks you through version, platform, steps to reproduce, and expected vs actual behaviour.
Please attach a diagnostic bundle — it speeds up triage significantly. Generate one from Settings → Help → Generate diagnostic bundle. The bundle never includes audio or transcript content; it contains logs, system info, and redacted preferences only.
How to file v0.1 tester feedback
Open an issue using the v0.1 Tester feedback template. It covers the structured questions from the tester-onboarding-kit: cold-setup pass, warm-activation pass, confusion points, breakage, task-extraction quality, and whether you would use it again.
If you followed the onboarding kit, you already have the answers. The template takes about 5 minutes to fill in.
How to submit a PR
Small, focused changes only. The PR template has a checklist — run every gate green before submitting.
Before submitting:
cargo test --workspacegreencargo fmt --checkcleancargo clippy --workspace --all-targets -- -D warningscleannpm run check0 errors / 0 warningsnpm run testgreenscripts/dogfood-rebrand-drill.sh8/8 (if you touched migration or data-directory logic)- Manual UI walk-through (if you touched the frontend)
Architectural changes require a Discussion first. Opening a PR that restructures crates, reorganises commands, or changes the storage schema without prior alignment wastes both our time.
Local dev setup
npm ci --ignore-scripts # never bare npm install — --ignore-scripts blocks postinstall vectors
./run.sh # canonical dev launch (Vite + Tauri, with supply-chain pre-flight)
npm run dev:frontend # frontend-only iteration, no Tauri
Per-platform dependencies (WebKit, LLVM, Rust toolchain, evdev headers) are documented in docs/dev-setup.md. The Rust toolchain is pinned in rust-toolchain.toml — you do not need to manage it manually.
Code of conduct
This is a calm, professional project. No harassment, no personal attacks, no bad-faith contributions. The maintainer is one person — please be patient on response times. Issues and PRs that are rude or dismissive will be closed without comment.
Licence
Lumotia is licensed under AGPL-3.0-or-later. By submitting a pull request, you agree that your contribution is offered under the same licence. If that does not work for you, please say so before putting in the work.