Repository navigation
fix: repair main after #32 - #68
Merged
Merged
Conversation
#32 landed with six files the formatter rewrites and five oxlint warnings (`--deny-warnings`), so `check static` fails on main and on every PR merged onto it. Formatting only, plus mechanical lint fixes: `toSorted` in two tests, the two Git-output guards moved to module scope unchanged, and a shadowed `entries` renamed. No behaviour change.
…sal elsewhere #32 made selected-source preparation refuse every platform but Linux (`selectedSourceManifest` throws "selected-source preparation requires Linux"), but its tests were gated only off Windows. On macOS (CI's macos shards, and a Mac's local gate) 13 of them hit that refusal and fail, on main since af3fab7. The Linux cases now run on Linux; each file gains a test for the refusal off Linux: the publishers throw before touching the worktree, and a configured check fails as "selected-source metadata preparation refused" without starting its command. The publisher fixtures also use a canonical temp root, since macOS's temp folder is behind a symlink. No product code changes.
ANT1OFF
added a commit
that referenced
this pull request
Nov 2, 2026
A visitor arriving cold now sees what Gram is, what it looks like and how to start before the backstory. Docs-only: `README.md` plus two new images in `docs/assets/`. ## What changed - **Hero screenshot** (`docs/assets/gram-orchestrator.png`, 2000×1250, 118 KB): the Orchestrator layout with the overview column, an orchestrator thread with three features and their workers, and a worker's question in the ask stack. A smaller **Board** shot (`docs/assets/gram-board.png`, 1600×1000, 88 KB) sits under "How it works". Both have descriptive alt text. - **Order:** one-line pitch, three badges (latest release, CI on `main`, MIT), the hero, five bullets on what it does, then Requirements, Install, Build from source, Why, How it works, Docs, Contributing and security, License. - **Requirements** lists macOS on Apple silicon, Claude Code and/or the Codex CLI signed in, and `gh` as optional, matching `docs/DEVELOPMENT.md`. **Install** names the signed zip and links to `docs/UPDATES.md#installing-a-release` for `SHA256SUMS.txt` and updates. - **Insider names removed:** the "Claude Tag" comparison is dropped, and "mythos" now reads "specialised work on a model you pick for it", in the same words as `docs/AGENTS_AND_FEATURES.md`. - Feature claims (autonomy levels, events, models by assignment, Board, Needs you) are checked against `docs/AGENTS_AND_FEATURES.md`. Prose says "tasks", not "goals". - A Contributing and security section links `CONTRIBUTING.md` and `SECURITY.md`. `CODE_OF_CONDUCT.md` is not on `main` yet, so it isn't linked. ## Where the images come from All data is synthetic, from the web app's mock API (`window.gramMock.simulateAsks()`). The `pr-shots` harness drove it with the default look: Studio, palette Neutral, mode Dark, and its fixed clock. For a cleaner frame the right-hand panel was closed (`panel.open: false`). I used a local-only shot entry for this and reverted it, so `shots.ts` is unchanged. The PNGs were resized from 2× captures and palette-quantised with sharp. ## Rendered README (GitHub, dark) | Before | After | | --- | --- | |  |  | ## Checks - `bun run check:docs`: passed (links, anchors and committed images, 35 Markdown files) - `bun run check:scaffold`: passed - `bun run fmt:check`: passed ## Known limits - The CI badge currently reads **failing**, because `Application checks` on `main` has failed since #32 (runs for #32, #68 and #67). It reflects main's real state and should turn green once main is repaired. - The "How it works" diagram (`docs/images/how-it-works-*.svg`) still says "goals" in its labels. It is outside this PR's scope, so its alt text still matches what the image says. - `pr-shots`' existing `quiet-busy` shot times out on current `main` (`quiet-empty` never appears). It is unrelated to this PR and was seen while capturing.
ANT1OFF
added a commit
that referenced
this pull request
Nov 2, 2026
Desktop release metadata proposal only. Merging this PR does not publish or tag Gram; follow docs/RELEASING.md to release. --- ## [1.4.0](v1.3.1...v1.4.0) (2026-11-02) ### Features * **agents:** identify Gram's Claude processes as the gram entrypoint ([#91](#91)) ([f7dd703](f7dd703)) * **desktop:** run on Linux ([#82](#82)) ([1d37deb](1d37deb)) * **desktop:** turn voice input off on Linux with one check ([#79](#79)) ([470ff8b](470ff8b)) * **orchestration:** a person's PR comment wakes the worker that owns it ([#86](#86)) ([19bdc1c](19bdc1c)) * **orchestration:** a wrap-up turn when a worker stops without reporting ([#88](#88)) ([36a07fb](36a07fb)) * **orchestration:** workers say what they ruled out and check before repeating ([#90](#90)) ([8bdce01](8bdce01)) * **release:** publish and update Linux AppImage and .deb ([#95](#95)) ([c33c464](c33c464)) * **voice:** an accurate mode with a Parakeet pass on each pause ([#83](#83)) ([2b04a52](2b04a52)) * **voice:** hold one key to talk, with a tone at each end ([#87](#87)) ([1a9b3ef](1a9b3ef)) * **voice:** start capture at the press, and an opt-in ready microphone ([#81](#81)) ([505d240](505d240)) * **web:** a Done section that keeps the last 7 days ([#65](#65)) ([8c7bd49](8c7bd49)) * **web:** Done lists every finished chat ([#67](#67)) ([c91d9ac](c91d9ac)) * **web:** one attention count, quieter rows, a sidebar and board that agree ([#92](#92)) ([f193da4](f193da4)) * **web:** orchestrator → workers in the sidebar, a board that matches ([#80](#80)) ([686e737](686e737)) ### Bug Fixes * **desktop:** harden the Linux key vault and autostart entry ([#85](#85)) ([4b35eac](4b35eac)) * **e2e:** hold the t-flaky turn while the smoke test reads its opening line ([#93](#93)) ([2edc4ac](2edc4ac)) * **e2e:** release the dictation tap as soon as a word is heard ([#94](#94)) ([7781194](7781194)) * prepare only approved local-check sources ([#32](#32)) ([af3fab7](af3fab7)) * repair main after [#32](#32) ([#68](#68)) ([ce352e6](ce352e6)) * **voice:** keep the last word after release ([#78](#78)) ([cc40a47](cc40a47)) --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). --------- Co-authored-by: gram-release-please[bot] <351321620+gram-release-please[bot]@users.noreply.github.com> Co-authored-by: Johan <32440065+ANT1OFF@users.noreply.github.com>
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.
Cause. #32 (af3fab7) merged with main's own CI red: run 41372675092 failed
check staticand all threemacos testsshards. Every PR checked against main has failed the same way since, #67 included.check static: fix: prepare only approved local-check sources #32's sixpackages/server/src/git/{local-checks,selected-publisher,selected-private-publisher}{,.test}.tsfiles weren't formatted, and they carried 5 oxlint warnings (--deny-warnings).macos tests1–3 (13 tests): fix: prepare only approved local-check sources #32 makes selected-source preparation refuse every platform but Linux on purpose (selectedSourceManifest:if (process.platform !== "linux") throw new Error("selected-source preparation requires Linux")). Its tests were gated only off Windows, so on macOS they reach that refusal and fail. That covers CI's macOS shards and Gram's local gate on a Mac. The same 13 fail on main's af3fab7 run and on fix: repair main after #32 #68's first head. fix: prepare only approved local-check sources #32's own validation was its native (Linux) suite.Change. No product code changes. #32's behaviour is untouched.
bun run fmt), plus mechanical lint fixes:toSortedin two tests, the two Git-output guards moved unchanged to module scope (requiredPublisherGit,requirePreparedGit, same checks and messages), and a shadowedentriesrenamed torevTree.describe.runIf(linux),it.live.skipIf(platform !== "linux")). Each file gains a test for the refusal off Linux, so macOS still tests something real:selected-source metadata preparation refused(unstartable) and never starts its command.realpathSync). macOS's temp folder is behind a symlink, and the publisher guard rightly refuses a non-canonical path.Decision. The Linux cases are gated to Linux, and the refusal is tested elsewhere. This was decided with the orchestrator: it keeps #32's behaviour exactly as its author intended, runs every case on the platform it targets, and adds coverage off Linux. The other route, making selected-source preparation work on macOS, would change #32's behaviour and is left to its owner.
Not #32's: main's af3fab7 run also failed
e2e 7/8onsmoke.spec.ts"streams a scripted thread…". That passes in #68's e2e shards, so it's flaky.qualificationfails only because the jobs above failed.Checks
bun run lint,bun run fmt:check,bun run typecheck: passvitest run src/git/local-checks.test.ts src/git/selected-publisher.test.ts src/git/selected-private-publisher.test.tson macOS: 43 passed, 13 skipped (the Linux cases), 0 failed. Before this change: 13 failed, identical on pristine main. The Linux cases are left to CI's Linux jobs.bun run check.These are security-sensitive local-check files, so an independent look at the diff is worth it.