Files
Lumotia/CONTRIBUTING.md
Jake 3770815fbf
Some checks failed
check / cargo check (macos-latest) (push) Has been cancelled
check / cargo check (ubuntu-22.04) (push) Has been cancelled
check / cargo check (windows-latest) (push) Has been cancelled
check / svelte build + lint (push) Has been cancelled
agent: lumotia — v0.1 release-completion run
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.
2026-05-15 06:59:08 +01:00

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 --workspace green
  • cargo fmt --check clean
  • cargo clippy --workspace --all-targets -- -D warnings clean
  • npm run check 0 errors / 0 warnings
  • npm run test green
  • scripts/dogfood-rebrand-drill.sh 8/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.