Repository navigation
Conversation
…of main A pushed v<version> tag now publishes a stable release: not a prerelease, marked Latest, titled "Insomnia <version> (stable)". A new nightly channel publishes the head of main once a day (07:17 UTC) as a prerelease that is never Latest, under a new tag nightly-<UTC date>-<first 12 hex digits of the commit>, with the zip named Insomnia-<version>-nightly-<date>-<commit>- macos.zip. A manual run builds the artifact only, as before, unless its new nightly input is set, which runs the nightly path and refuses any ref but main. A read-only plan job picks the channel. For a nightly it lists the nightly-* tags and the releases: a commit that already has a nightly is skipped before anything is built, a tag without a release or on another commit stops the run. The nightly job creates the tag with the API call that fails when the ref exists, so no tag is ever moved; a rerun of its own failed job finds its tag on the same commit. Neither publishing job can replace a published release or asset. Both channels keep the same tests, build, checksum and attestation steps, the pinned actions and per-job permissions (plan and build read only). The notes' verify command adds --source-digest, and its --source-ref is the tag or refs/heads/main, so a nightly never passes for a stable tag. README's Install section and docs/releasing.md let readers and coding agents choose stable or nightly, and send v0.1.0, which was packaged by hand from the maintainer's installed app and has no attestation, to its own release notes. SECURITY.md and docs/release-validation.md describe both channels and the v0.1.0 exception; both channels' end-to-end runs are recorded as not run. ReleaseWorkflowTests cover the triggers, gates, release flags, tag creation and the README's channel choice. Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>
…s the commit The README's nightly download is now one function. It reads every page of the release list with gh api --paginate and downloads only when the newest published nightly prerelease has a tag of the form nightly-<8 digits>-<12 hex digits>. A failed list, no nightly yet, or any other tag stops it with a message, a nonzero status and nothing downloaded. Before, an empty or failed list left the tag empty, and gh release download "" fetched the Latest stable release instead. Step 2's attestation command now carries --source-digest <commit>, the full commit the release notes name, since every nightly shares refs/heads/main and the ref alone lets another nightly's zip pass. README and SECURITY.md scope the installer's version check, the backstop sealed in the app and the code requirement the recovery agent pins to workflow-built releases and builds of current source. v0.1.0's installer checks no version; its agent runs a backstop.sh copied into Application Support with /bin/bash and checks no signature. Readers are sent to the README in its zip. ReleaseWorkflowTests runs the plan job's script from release.yml under bash -e with a stub gh: a published nightly of the commit is skipped, a tag without a release or naming another commit stops the run with no outputs, and a commit with no nightly gets a new tag. The README check now requires --source-digest <commit>. README also gains a Star history section with the star-history.com chart (light and dark). Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>
ReleaseWorkflowTests now also runs the nightly job's "Create the tag and the prerelease" step from release.yml under bash -e with a stub gh. A new tag is created on the built commit and the prerelease follows. When the tag already exists, as on a rerun of the job, the step reads it and goes on only if it names the built commit. A tag on another commit, or one that cannot be read, stops the step before gh release create runs. The plan test and this one share one runner that extracts a step's run block by name and records the stub's calls. Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>
…hannels Release: stable v* releases marked Latest, daily nightly prereleases of main
The README drops from 736 lines to about 255 and keeps every image. The long, mandatory parts (what the installer changes, hotspot and tmux, Chrome throttling, configuration and privacy) are collapsed. The detail moves, unchanged apart from em dashes and curly quotes, into docs/install.md, docs/lid-close.md, docs/recovery.md and docs/extras.md. skills/install-insomnia and skills/maintain-insomnia are agent playbooks that follow those pages, and the README's install prompt points at the install skill. The README keeps the Install section with the Apple Silicon requirement, the Build from source heading install.sh names, the four sudoers commands and the microphone sentence. ReleaseWorkflowTests now checks the channel and v0.1.0 text in docs/install.md, and the Greptile sudoers rule covers that page. Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>
…laims Greptile on 988be58: - The battery floors are defaults that apply on battery power, and the heat rules can be turned off in Settings. - Quit does not wait for saved audio of an output that is not connected. - Owner-only permissions skip symlinks and access control lists. - The maintain skill lists the journal entries that still need undoing and names the records that do not (keptDisplayReadLit, keptDisplayUnderLowPower, displayRestoredUnderLowPower, a brightness kept after a refused restore), as RuntimeState.isDirty does. Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>
…s next launch Greptile 4240232135 on 8457e6f: after Quit, a reconnected output stays muted until Insomnia opens again. Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>
README: shorten it and move the details into docs and agent skills
Measured on macOS 27.0.1 (26A434, MacBook Pro M5 Pro): all three DisplayServices symbols resolve, GetBrightness returns 0 for the built-in display and CanChangeBrightness is true; in a supervised lid test the display was darkened to 0 and restored. Tests now use 28 as the unmeasured major. Co-Authored-By: Claude Opus 5.5 <[email protected]> Claude-Session: https://claude.ai/code/session_016LRkYqs4KG6k4Dxe5aoCjw
macOS 27 pmset -g custom prints powermode (0 automatic, 1 Low Power, 2 High Power) and no lowpowermode line, so every read failed and Low Power Mode was never enabled on lid close. pmset -b lowpowermode 0|1 still sets the mode there, so the sudoers commands are unchanged; only the parser falls back to powermode. lowpowermode wins when both appear, and High Power reads as unknown so it is never taken over. Co-Authored-By: Claude Opus 5.5 <[email protected]> Claude-Session: https://claude.ai/code/session_016LRkYqs4KG6k4Dxe5aoCjw
Probe, supervised lid test, the Low Power Mode read failure and what was not exercised. Co-Authored-By: Claude Opus 5.5 <[email protected]> Claude-Session: https://claude.ai/code/session_016LRkYqs4KG6k4Dxe5aoCjw
… refusal text from the measured list Review on krishhgg#58: two RefusedDarkeningTests still expected "measured on macOS 26 only" (PrivateDisplayGuardTests.swift:1124, :1148). Every expected refusal message is now built from DisplayPower.measuredDisplayServicesMajors and an unmeasured major past the list, so measuring the next macOS is a one-line change. docs/spec.md and docs/lid-close.md say 26 and 27; the unmeasured-version row of the hardware table says 26 or 27, and a Not run row covers a macOS 27 session that reads powermode, enables Low Power Mode and leaves High Power alone. Co-Authored-By: Claude Opus 5.5 <[email protected]> Claude-Session: https://claude.ai/code/session_01R72BAk5W5GvNnS2GR7qAFN
Owner
Author
|
CI checked; results posted on krishhgg#58. |
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.
Temporary pull request inside the fork to run the project's CI on the updated macOS 27 branch before pushing it to krishhgg#58. Closed and deleted after the run.
🤖 Generated with Claude Code