Commit Graph
25 Commits
Author SHA1 Message Date
rzuastiandClaude Opus 4.8 e6813a78fb Enable emulated hardware keyboard for the dev Android emulator
The google_apis android-36 image always exposes a phantom AT hardware
keyboard that cannot be removed via hw.keyboard=no, the lid switch, or
any emulator flag. With hw.keyboard=no the host keyboard is not forwarded
into the guest, and Gboard hides the on-screen keyboard for non-password
fields while it detects that phantom keyboard, leaving plain text fields
(e.g. Settings > Base URL) untypable.

Enforce hw.keyboard=yes in the AVD's config.ini on every dev-shell entry
so the host keyboard is forwarded to all fields. Applied idempotently so
it also repairs a pre-existing AVD; the changed hardware config makes the
emulator cold-boot once for the setting to take effect.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-02 21:31:38 -04:00
rzuastiandClaude Opus 4.8 4924146075 Pin Android SDK components and aapt2 override for Flutter builds
The Android SDK lives in the read-only Nix store, so the Gradle build
cannot auto-install missing components. Pin everything the Flutter
Android build needs in the dev shell's composeAndroidPackages:
platforms 33-36 (app targets 36; plugins pin 34 and 35), build-tools
35.0.0 (AGP 8.11.1), NDK 28.2.13676358 (flutter.ndkVersion), and
cmake 3.22.1 (plugin native builds).

Also redirect the Android Gradle Plugin to the Nix-patched aapt2 from
the SDK via android.aapt2FromMavenOverride, written to the user-global
~/.gradle/gradle.properties on shell entry (the project's tracked
gradle.properties must not contain a machine-specific store path).
AGP's Maven-downloaded aapt2 cannot run on NixOS.

Ignore the generated frontend/android/build/ directory.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-02 20:49:28 -04:00
rzuastiandClaude Opus 4.8 ada989c11b Add reproducible Android emulator to the dev shell
Pin the Android SDK composition (platform 36 + google_apis x86_64 system
image + emulator) via composeAndroidPackages so the emulator image is
always available and reproducible across machines. Auto-create the
"oott_api36" AVD idempotently on dev-shell entry, and add
frontend/android-emulator.sh to launch it.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-02 19:23:33 -04:00
rzuastiandClaude Opus 4.8 8df21e41b1 Add release.sh to automate steps 1-3 of the release process
Adds a repo-root release.sh that prompts for the version, bumps it in
Cargo.toml/pubspec.yaml and the About release date, refreshes lockfiles,
runs tests, commits/pushes, tags, creates the GitHub release, and builds
the Docker image, pausing for confirmation between sections.

Release notes live in RELEASE_NOTES.md (newest first, one section per
version); the script extracts the section for the version being cut.
Seeds the file with the v0.1.0 notes and adds gh to the Nix dev shell.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-02 17:22:18 -04:00
rzuastiandClaude Opus 4.8 20c51faaea Build front-end via Nix and harden Docker/Nix image generation
- Build the Flutter web app at release time (nix/frontend.nix) and bundle
  it next to the binary at $out/share/oott/web; resolve it at runtime
  relative to the executable. Remove the prebuilt backend/web from git.
- Add web_server.{ip_address,port,api_key} options to the NixOS module so
  the generated config deserializes (was missing, causing a startup panic).
- Docker image: set SSL_CERT_FILE for outbound TLS, drop the heavy
  nixos/nix base image, trim contents to [oott cacert], and ensure /tmp
  exists.
- Remove the unused "nix" flake input and commit flake.lock.
- Provide Swagger UI to utoipa-swagger-ui offline via a pinned fetchurl so
  the package builds in the Nix sandbox; skip the redundant check phase
  (tests run via backend/run_tests.sh).
- sample_oott.toml: set database.path to /db/oott.db for the Docker image.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-01 21:43:08 -04:00
rzuastiandClaude Sonnet 4.6 55b5f9ad30 Add LLM classification to vendor update script and update dev shell
Adds --llm flag to update_mac_vendors to classify unmatched vendors via
Claude Haiku 4.5, and --skip-download to reuse existing vendor DB.
Adds the anthropic Python package to the Nix dev shell. Updates CLAUDE.md
with the new script command.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-28 16:08:14 -04:00
rzuastiandClaude Sonnet 4.6 6d72ba7202 Update project docs and dev environment
- Add linter commands to CLAUDE.md
- Add clippy to Nix dev shell
- Add TODO.md with project task list

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-27 14:09:02 -04:00
rzuasti 09b67c2707 Added claude to the dev environment 2026-05-27 08:24:48 -04:00
rzuasti 851a9419dc Added DEV_SHELL to flag the development shell 2026-02-22 11:43:33 -05:00
rzuasti 4b905bdde5 Made fish the develop shell 2026-02-21 15:10:35 -05:00
rzuasti f7f7810dfd Rollback to single nix package for backend 2026-02-12 12:55:20 -05:00
rzuasti f5ffd6bcde Combining frontend and backend 2026-02-12 11:51:43 -05:00
rzuasti 714c0c893d Actually we can do it all from a single package.nix 2026-02-12 08:52:01 -05:00
rzuasti d95803c773 Moved package.nix to package-backend.nix to make room for frontend
package
2026-02-12 08:43:24 -05:00
rzuasti f927294194 Added flutter front-end 2026-02-11 14:07:27 -05:00
rzuasti eb3d745376 Working docker image generation and docker compose sample 2026-01-28 12:12:06 -05:00
rzuasti a4e4ee6a50 grouped nix config in a folder 2026-01-25 11:01:11 -05:00
rzuasti 18ecdc2f2a Trying to fix flake 2026-01-25 10:37:47 -05:00
rzuasti ea9bc7f13d Update flake.nix 2026-01-24 19:26:09 -05:00
rzuasti 4f346631e9 Update flake.nix 2026-01-24 19:11:00 -05:00
rzuasti 878273903a Update flake.nix 2026-01-24 15:30:10 -05:00
rzuasti 3ed514b203 Testing flake 2026-01-24 15:20:59 -05:00
rzuasti b8f1f8c516 Working on flake support 2026-01-24 14:43:46 -05:00
rzuasti 3651ae53e3 Working on flake support 2026-01-24 12:28:22 -05:00
rzuasti ff6d685126 Adding Nix flake support 2026-01-24 12:16:24 -05:00