Skip to content

Add standalone CLI lifecycle and release packaging - #92

Merged
rugbedbugg merged 15 commits into
mainfrom
feature/standalone-cli
Sep 3, 2026
Merged

Add standalone CLI lifecycle and release packaging#92
rugbedbugg merged 15 commits into
mainfrom
feature/standalone-cli

Conversation

@rugbedbugg

Copy link
Copy Markdown
Contributor

Summary

  • Add the standalone latch-cli application for Linux terminals and Windows PowerShell.
  • Coordinate latch-cli and Latch Desktop through one authenticated local runtime owner.
  • Start first-run onboarding with latch-cli and persist the background daemon with activate and deactivate.
  • Package portable Linux and Windows bundles plus .deb and .rpm artifacts.
  • Generate submission-ready latch-cli-bin AUR and VinnovateIT.LatchCLI winget metadata.
  • Publish CLI artifacts, checksums, and metadata through the existing tagged release workflow.

Verification

  • Run mise exec -- ./gradlew check :cli:packageCliAppImage --rerun-tasks --console=plain.
  • Smoke-test the packaged launcher across concurrent one-shot ownership, repeated activate, --status, and repeated deactivate.
  • Verify the signed commit series and keep design or plan documents out of the branch.

@rugbedbugg
rugbedbugg requested a review from lavan8t September 2, 2026 02:03
@rugbedbugg

Copy link
Copy Markdown
Contributor Author

Additional tooling context: I added mise to pin the project to an exact Temurin JDK version instead of relying on whichever Java installation happens to be available locally. This prevents machine-specific version drift, makes builds easier to reproduce, and keeps future toolchain upgrades explicit and reviewable.

@rugbedbugg
rugbedbugg force-pushed the feature/standalone-cli branch 2 times, most recently from 10d00a5 to e7ffbc2 Compare September 2, 2026 07:00
lavan8t
lavan8t previously approved these changes Sep 2, 2026

@lavan8t lavan8t left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

running latch-cli --status says latched: no even while the desktop app is open and latched.

@rugbedbugg
rugbedbugg force-pushed the feature/standalone-cli branch from e7ffbc2 to 87e89c3 Compare September 2, 2026 17:36
rugbedbugg added a commit that referenced this pull request Sep 3, 2026
android.yml is the only PR-triggered workflow and runs assembleDebug,
testDebugUnitTest and :app:lintDebug, all of which stop at :core's
androidTarget. :desktop and :cli have never been compiled on a PR, and
:core's desktopTest source set has never been run.

The gap is not theoretical. PR #113 bumps composeMaterial3Mp, which is
consumed only by :desktop, and passed CI without that module being
built. PR #92 adds 13 test files under core/src/desktopTest and
cli/src/test that no current job would execute.

Runs on ubuntu-latest only: :desktop is a single jvm("desktop") target,
so one host covers the Kotlin/Compose surface, and per-OS packaging is
already exercised by release.yml.
rugbedbugg added a commit that referenced this pull request Sep 3, 2026
* [CI]: Add Desktop CI for :desktop, :core desktopTest and :cli

android.yml is the only PR-triggered workflow and runs assembleDebug,
testDebugUnitTest and :app:lintDebug, all of which stop at :core's
androidTarget. :desktop and :cli have never been compiled on a PR, and
:core's desktopTest source set has never been run.

The gap is not theoretical. PR #113 bumps composeMaterial3Mp, which is
consumed only by :desktop, and passed CI without that module being
built. PR #92 adds 13 test files under core/src/desktopTest and
cli/src/test that no current job would execute.

Runs on ubuntu-latest only: :desktop is a single jvm("desktop") target,
so one host covers the Kotlin/Compose surface, and per-OS packaging is
already exercised by release.yml.

* [CI]: Rename Desktop CI job to avoid check-name collision

Both workflows declared a job id of `build`, so the PR checks list
showed two entries named `build` with no way to tell the Android job
from the desktop one. Renaming this job to `desktop` makes the check
read "Desktop CI / desktop", which also matters if it is ever promoted
to a required status check.
@rugbedbugg
rugbedbugg force-pushed the feature/standalone-cli branch from 87e89c3 to 8b8f48f Compare September 3, 2026 05:58
@rugbedbugg
rugbedbugg merged commit 9a4c10d into main Sep 3, 2026
3 checks passed
@lavan8t
lavan8t deleted the feature/standalone-cli branch September 3, 2026 18:36
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.

2 participants