Repository navigation
Rewrite the docs in plain language and document the Mac-parity work #838
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
Finesssee
wants to merge
17
commits into
main
Choose a base branch
from
docs/plain-rewrite
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Changes from all commits
Commits
Show all changes
17 commits
Select commit
Hold shift + click to select a range
201af08
Rewrite CONTEXT.md with current CI roles
Finesssee f845b1f
Reword ADRs and record later changes
Finesssee b5d065f
Rewrite CLI.md against the current help output
Finesssee 83299d5
Rewrite COOKIES.md with current import flow and browsers
Finesssee 84abca9
Rewrite BUILDING.md with current scripts and release flow
Finesssee 0f61a51
Rewrite WINDOWS_PROOF.md around proof mode, seeding and CDP
Finesssee 1e2d73f
Rewrite ARCHITECTURE.md around windows, data flow and pace
Finesssee acb67e9
Rewrite CONFIGURATION.md with the current Settings panes
Finesssee 433ca62
Rewrite PROVIDERS.md with windows, pace and provider wording
Finesssee c27c564
Fix menu-open label and reset-window pace wording
Finesssee 3609319
Rewrite README with current install, features and facts
Finesssee ddcd789
Use the frozen lockfile in the README build steps
Finesssee 848b7e3
Rewrite AGENTS.md as short rules with a docs index
Finesssee 10e05e3
Document the provider-status poller (depends on #837)
Finesssee c87d45c
Add contact-sheet tip for snapshot reviews to AGENTS.md
Finesssee 41238d2
Merge remote-tracking branch 'origin/main' into docs/plain-rewrite
Finesssee 3ca21b8
Update provider-status docs for the merged poller
Finesssee File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
Large diffs are not rendered by default.
Oops, something went wrong.
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
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,50 +1,67 @@ | ||
| # Shared CI budget glossary | ||
|
|
||
| This glossary is shared with the sister repo (`linear-cli`) so operators can reason about CI spend across both projects with one vocabulary. | ||
| This glossary defines the CI budget terms that Win-CodexBar shares with its sister repo, `linear-cli`. Use it to reason about CI spend across both projects. | ||
|
|
||
| Detailed Win-CodexBar CI topology, trigger configuration, cache policy, release flow, and operator setup belong in [`.github/CI.md`](.github/CI.md). This file intentionally stays small so shared budget language does not become a second CI manual. | ||
| Trigger rules, caches, fork PRs and the release workflow are in [`.github/CI.md`](.github/CI.md). The budget modes are defined here and in [ADR 0002](docs/adr/0002-ci-budget-modes.md), because `.github/CI.md` does not cover them. | ||
|
|
||
| ## Win-CodexBar compute roles | ||
|
|
||
| - **CircleCI Windows** — primary hosted PR/`main` integration gate and release builder. | ||
| - **Blacksmith Windows** — manual reserve/second-opinion CI only. | ||
| - **GitHub-hosted Ubuntu** — lightweight interaction guard for untrusted authors. | ||
| - **CircleCI Windows** runs the hosted PR and `main` check (`pr-check`). It builds no releases. | ||
| - **GitHub Actions Windows** (`windows-latest`) builds, signs and drafts tagged releases in `.github/workflows/release.yml`. | ||
| - **Blacksmith Windows** runs `.github/workflows/pr-check.yml` by manual dispatch only, as a reserve or second opinion. | ||
| - **GitHub-hosted Ubuntu** (`ubuntu-latest`) runs the interaction guard for authors who are not owners, members or collaborators. | ||
|
|
||
| The primary and reserve Windows jobs use the same canonical `scripts/local-check.ps1 -Slice ci` contract. See `.github/CI.md` for the exact trigger and runner rules. | ||
| CircleCI and the Blacksmith reserve run the same command, `scripts/local-check.ps1 -Slice ci`. | ||
|
|
||
| ## Blacksmith Pool | ||
| ## Blacksmith pool | ||
|
|
||
| The Blacksmith allowance is shared with `linear-cli`. For Win-CodexBar it is reserve capacity rather than recurring PR compute. Do not automatically run Blacksmith beside a healthy CircleCI run. | ||
| Win-CodexBar shares its Blacksmith allowance with `linear-cli`. Win-CodexBar uses Blacksmith only as reserve capacity. Don't run Blacksmith beside a healthy CircleCI run. | ||
|
|
||
| The historical cross-repo intent split was roughly **60% Win-CodexBar / 30% linear-cli / 10% buffer**. Treat that as budget history, not a reason to schedule duplicate validation. | ||
| The original split between the repos was about **60% Win-CodexBar, 30% linear-cli and 10% buffer**. That split is budget history. It is not a reason to run duplicate checks. | ||
|
|
||
| ## CI budget mode | ||
|
|
||
| `CI_BUDGET_MODE` is the coarse emergency control. Supported values are `normal`, `thin`, and `off`; unset/empty means `normal`. | ||
| `CI_BUDGET_MODE` is the emergency stop for hosted checks. It takes `normal`, `thin` or `off`. Unset or empty means `normal`. | ||
|
|
||
| | Mode | CircleCI PR check | Interaction guard | Blacksmith reserve | Release | | ||
| | --- | --- | --- | --- | --- | | ||
| | `normal` | runs when in scope | runs when needed | manual only | tag-triggered CircleCI | | ||
| | `thin` | runs when in scope | runs when needed | manual only | tag-triggered CircleCI | | ||
| | `off` | skip | skip | skip | tag-triggered CircleCI | | ||
| | `normal` | runs when in scope | runs when needed | manual only | GitHub Actions on a `v*.*.*` tag | | ||
| | `thin` | runs when in scope | runs when needed | manual only | GitHub Actions on a `v*.*.*` tag | | ||
| | `off` | skips | skips | skips | GitHub Actions on a `v*.*.*` tag | | ||
|
|
||
| `thin` currently has the same single hosted Windows integration job as `normal`; there is no matrix left to trim. Porting micro PRs save compute through their semantic integration-branch topology instead. See `.github/CI.md` and `docs/PORTING.md`. | ||
| `thin` behaves like `normal`. The code checks only for `off`, and the PR check is a single job with nothing to trim. The value exists for parity with `linear-cli`. | ||
|
|
||
| Set the variable in provider settings, not source code: | ||
| Porting micro PRs that target a `port/upstream-*` branch save compute in a different way: CircleCI skips them. See `docs/PORTING.md`. | ||
|
|
||
| - CircleCI: Project Settings -> Environment Variables -> `CI_BUDGET_MODE` | ||
| - GitHub Actions: Settings -> Secrets and variables -> Actions -> Variables | ||
| Set the variable in each CI service's settings, not in source code: | ||
|
|
||
| Budget mode does not disable the protected release-tag pipeline. | ||
| - CircleCI: Project Settings > Environment Variables > `CI_BUDGET_MODE`. The `pr-check` gate reads it. | ||
| - GitHub Actions: Settings > Secrets and variables > Actions > Variables. `pr-check.yml` and `interaction-guard.yml` read it. | ||
|
|
||
| `release.yml` doesn't read `CI_BUDGET_MODE`, so budget mode never stops a tagged release. | ||
|
|
||
| ## Local check slice | ||
|
|
||
| The hosted Windows contract is: | ||
| The hosted Windows check runs this command from the repo root: | ||
|
|
||
| ```powershell | ||
| .\scripts\local-check.ps1 -Slice ci | ||
| ``` | ||
|
|
||
| It covers formatting, Clippy, Rust tests, frozen frontend install, frontend tests/build, and interaction-guard tests. Installer/release packaging and UI proof remain separate responsibilities. | ||
| It runs these steps in order: | ||
|
|
||
| 1. `scripts/circleci-pr.tests.ps1` (CI gate tests) | ||
| 2. `cargo fmt --all --check` | ||
| 3. `cargo clippy --workspace --all-targets -- -D warnings` | ||
| 4. `cargo test --workspace` | ||
| 5. `pnpm install --frozen-lockfile` | ||
| 6. `pnpm run lint` (oxlint) | ||
| 7. `pnpm run check:anti-slop` | ||
| 8. `pnpm run test:anti-slop` | ||
| 9. `pnpm test` | ||
| 10. `pnpm run build` | ||
| 11. `node --test .github/scripts/interaction-guard.test.mjs` | ||
|
|
||
| The slice doesn't build the installer or release assets, and it doesn't prove UI behavior. | ||
|
|
||
| For UI, tray, settings, and float-bar changes, CI is not sufficient: use a fresh Windows build plus CUA (or documented equivalent manual proof) as required by `AGENTS.md`. | ||
| For tray, settings, float bar and other UI changes, CI is not enough. Rebuild on Windows and prove the change in the real window with CUA, or attach equivalent manual proof. `AGENTS.md` and `docs/WINDOWS_PROOF.md` describe the proof. | ||
Oops, something went wrong.
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.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win
Match the frontend commands used by the CI slice.
The listed
pnpmcommands omit--dir apps/desktop-tauri, which the canonical CI slice uses for each frontend step. A contributor following this list from the repository root can run a different package’s scripts or fail to find them. Add the directory argument to these commands. The suppliedscripts/local-check.ps1excerpt uses--dir apps\desktop-taurifor the frontend steps.🤖 Prompt for AI Agents