Repository navigation
Packaged-app smoke test + CI - #24
Merged
Merged
Conversation
The two crashes outside users hit (#17 at launch, #22 in Settings) only happen on a Mac without the build folder, so nothing here could see them. app/smoke-test.sh now runs the app as it ships with every build folder the binary names moved aside, through a demo-mode copy (dev.kleoth.demo, a fixture meeting, nothing of the user's read or written). - DemoDirector `smoke`: the fixture meeting's page, History's other two scopes, and all six Settings pages, one still each. Fails on a crash, on two identical screens, without the fixture's TL;DR on the meeting page, or without "Record Shortcut" (KeyboardShortcuts' own bundle) on General. - make-app.sh release runs it before installing, so a crashing build never replaces /Applications/Kleoth.app or reaches a DMG. KLEOTH_NO_INSTALL=1 stops before the install (CI, branch builds). - Demo mode now also skips the OpenRouter catalog fetch (it wrote a cache into ~/.config/kleoth) and keeps the personal dictionary in its folder. - .github/workflows/tests.yml: swift test, the release app + smoke test (macos-26), and the marketing gate's bun tests, on every PR and push to main. Red-tested: with upstream KeyboardShortcuts' Bundle.module back, the smoke test fails at Settings → General with #22's error; with KleothAssets.resources = Bundle.module, at History with #17's.
The first CI run failed one: a 0.05 s deadline measured 1.25 s against a 1.0 s bound. Each test's slow side is now 30 s (or its budget and retry delay) with a bound of 4-10 s, so it still fails if the code waits for the operation, but not on a busy machine.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Both crashes outside users hit, #17 at launch and #22 in Settings, happen only on a Mac without the build folder. Nothing on the build Mac could show them. This adds a test that can.
app/smoke-test.sh [Kleoth.app].buildfolder the binary names moved aside and restored on any exit.dev.kleoth.demo, a fictional fixture meeting inapp/smoke/fixture), so nothing of the user's is read or written.smokedemo script opens the fixture meeting's page, History's Dictations and Recordings scopes, and all six Settings pages, one still each.Wiring
make-app.sh releaseruns the smoke test before installing. A crashing build never replaces/Applications/Kleoth.appor reaches a DMG.KLEOTH_NO_INSTALL=1stops before the install..github/workflows/tests.yml, on every PR and push to main:swift test(macos-26);smoke-frames;Demo mode, two new gates. An audit of what Settings does when it opens found two leaks, now closed:
~/.config/kleoth.Verified
Bundle.modulefails at Settings → General with 0.5.2 crashes when opening Settings — KeyboardShortcuts Bundle.module assertion failure #22's error;KleothAssets.resources = Bundle.modulefails at History with 0.5.0 crashes on launch — resource bundle not found at expected path #17's.~/Kleothand~/.config/kleothuntouched; the demo identity's defaults and saved state are gone afterwards.Design:
docs/plans/2026-09-24-demo-mode.md§7. Limits: only the screens the script opens. The menu bar, pill, onboarding, recording and permissions are not covered.