Skip to content

feat: add isolated test packages and dev profiles - #596

Merged
grazzolini merged 1 commit into
mainfrom
feat/test-packages
Oct 5, 2026
Merged

grazzolini merged 1 commit into
mainfrom
feat/test-packages

Conversation

@grazzolini

Copy link
Copy Markdown
Owner

Summary

  • Add isolated macOS, Android, and Flatpak test packages with identities derived from the production configuration.
  • Default pnpm dev to test file storage, with --production-data for explicit production access and normal development tool-cache locations preserved.

Motivation

Allow test packages to coexist with production and exercise packaging changes without sharing production application state.

Closes #547

Changes

  • Centralize production storage defaults across Python, Rust, and packaging scripts; derive test data, model-cache, and sync paths from them.
  • Add TuneForge Test labels, marked assets, an in-app TEST indicator, and actual package-ID diagnostics. Keep development WebView identity, origin, and browser settings unchanged in both dev modes.
  • Start development with an owned loopback backend, verify its health URL and data root, and clean up only launcher-owned processes.
  • Restore temporary Android resources after builds and separate Flatpak test manifests, refs, build outputs, and repositories. Document test packaging workflows.

Testing

  • pnpm lint, pnpm typecheck, pnpm test, and cd apps/desktop/src-tauri && cargo check passed during implementation. The full suite passed before the final launcher-only follow-ups.
  • node --test scripts/dev.test.mjs: 17 tests passed after the final launcher changes, covering cache preservation, profile isolation, readiness, socket ownership, reload, and shutdown.
  • pnpm package:mac:app -- --test: built successfully; verified bundle ID, executable, icon, and bundled storage configuration. Local macOS artifacts remain unsigned/not notarized as documented.
  • pnpm package:android: built successfully; APK identity, label, signer, JNI checks, and generated-resource restoration verified. Manual testing confirmed debug and optimized local builds use the test identity and in-app visuals.
  • Manual Linux checks passed for both development modes. Production Flatpak packaging completed and its installed icon was confirmed unchanged.
  • Synthetic visual QA passed for TEST branding across full, compact, and mobile layouts. Correctness and contract reviews completed.

Remaining validation and limitations

  • Draft while the Linux test Flatpak build and installed-package checks are in progress. Command: pnpm package:linux:flatpak -- --test.
  • Android adaptive masks can hide the corner marker on the test launcher icon. The TuneForge Test label and in-app TEST indicator distinguish these builds; Android-specific artwork is deferred.
  • The complete install/update/uninstall isolation matrix and Release Package Gate evidence remain incomplete. No release artifacts are being published by this PR.
  • Flatpak cache reuse improvements remain tracked separately in Investigate and improve Flatpak cache reuse across releases and source changes #595.

Checklist

  • Conventional Commits title
  • Lint, typecheck, and full tests passed; final launcher changes have focused regression coverage
  • Changelog and relevant documentation updated
  • No HTTP route/schema changes; contract regeneration not required
  • No new runtime dependencies, model-weight policy changes, generated package artifacts, or caches committed
  • No secrets, credentials, or copyrighted audio added
  • Complete platform package-launch and isolation evidence from the Release Package Gate

Derive test identities and storage from production defaults.
Default development to test data while preserving normal tool caches
and explicit production access.

Refs #547
@grazzolini
grazzolini merged commit 8697c4c into main Oct 5, 2026
15 checks passed
@grazzolini
grazzolini deleted the feat/test-packages branch October 5, 2026 20:30
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Support distinct, isolated test packages for Android, macOS, and Flatpak

2 participants