Skip to content

Commit 2255072

Browse files
Merge pull request #537 from corbitsdev/ci-split-prettier-eslint-required-checks
Split prettier/eslint CI jobs, unmask lint caches, require checks to merge
2 parents bebe563 + ec3d4bb commit 2255072

669 files changed

Lines changed: 29025 additions & 27820 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/ci.yml

Lines changed: 27 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -11,10 +11,11 @@ concurrency:
1111
cancel-in-progress: ${{ github.event_name != 'push' }}
1212

1313
jobs:
14-
lint:
14+
# Prettier and eslint run un-cached in CI: restored result caches can mark
15+
# files clean against a stale tool version or config, masking real failures.
16+
# The --cache flags in the package.json lint script remain for local speed.
17+
prettier:
1518
runs-on: ubuntu-latest
16-
# TODO(CL-6802 stage 2): flip blocking after the mechanical fix batch
17-
continue-on-error: true
1819
steps:
1920
- name: Checkout
2021
uses: actions/checkout@v4
@@ -33,18 +34,31 @@ jobs:
3334
- name: Install dependencies
3435
run: bun install --frozen-lockfile
3536

36-
- name: Cache lint
37+
- name: Prettier
38+
run: bunx prettier --check .
39+
40+
eslint:
41+
runs-on: ubuntu-latest
42+
steps:
43+
- name: Checkout
44+
uses: actions/checkout@v4
45+
46+
- name: Setup Bun
47+
uses: oven-sh/setup-bun@v2
48+
with:
49+
bun-version: "1.3.14"
50+
51+
- name: Cache dependencies
3752
uses: actions/cache@v4
3853
with:
39-
path: |
40-
.eslintcache
41-
node_modules/.cache/prettier
42-
key: lint-${{ github.sha }}
43-
restore-keys: |
44-
lint-
45-
46-
- name: Lint
47-
run: bun run lint
54+
path: node_modules
55+
key: bun-${{ hashFiles('bun.lock') }}
56+
57+
- name: Install dependencies
58+
run: bun install --frozen-lockfile
59+
60+
- name: ESLint
61+
run: bunx eslint .
4862

4963
typecheck:
5064
runs-on: ubuntu-latest

.github/workflows/cla.yml

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -46,15 +46,15 @@ jobs:
4646
env:
4747
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
4848
with:
49-
path-to-document: 'https://github.com/corbitsdev/corbits-code/blob/main/CLA.md'
50-
path-to-signatures: 'signatures/version1/cla.json'
51-
branch: 'cla-signatures'
49+
path-to-document: "https://github.com/corbitsdev/corbits-code/blob/main/CLA.md"
50+
path-to-signatures: "signatures/version1/cla.json"
51+
branch: "cla-signatures"
5252
# People who never need to sign (maintainers, bots).
5353
allowlist: TheGreatAxios,brianjfox,*[bot]
5454
custom-notsigned-prcomment: >-
5555
Thank you for your contribution to Corbits Code. Before it can be merged,
5656
please read our [Contributor License Agreement](https://github.com/corbitsdev/corbits-code/blob/main/CLA.md)
5757
and sign it by posting a new comment on this pull request containing
5858
exactly the line below (nothing else):
59-
custom-pr-sign-comment: 'I have read the CLA Document and I hereby sign the CLA'
60-
custom-allsigned-prcomment: 'All contributors have signed the CLA.'
59+
custom-pr-sign-comment: "I have read the CLA Document and I hereby sign the CLA"
60+
custom-allsigned-prcomment: "All contributors have signed the CLA."

.prettierignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,3 +4,4 @@ vendor/
44
scratch/
55
node_modules/
66
CHANGELOG.md
7+
tests/fixtures/broken-toolchain/

AGENTS.md

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ git config core.hooksPath .githooks
1919
- **Paradigm:** Functional. No classes, no OOP.
2020
- **Types:** Full type safety. Avoid `any`; prefer `unknown`. Validate all external input at the boundary with arktype — do not hand-roll `typeof` guards for structured data.
2121
- **Files:** Small functions, small files, clear names. Acronyms keep their case (`URL`, `JSON`, `API`).
22-
- **Comments:** Comment *why*, never *what*. If a comment describes what the code does, fix the names instead.
22+
- **Comments:** Comment _why_, never _what_. If a comment describes what the code does, fix the names instead.
2323
- **No emojis** in code or docs.
2424

2525
## Scope Discipline
@@ -73,15 +73,15 @@ It authenticates over HTTPS via `gh`'s credential helper and rewrites the SSH re
7373

7474
Interchange is the standard library for this repo, consumed as published `@intx/*` npm packages pinned at 0.2.2, except `@intx/inference`, `@intx/types`, and `@intx/storage-isogit`, which resolve to vendored source under `vendor/intx-*` at upstream head (coupled by the reactor's approval-suspend primitive; `@intx/inference` also carries a local patch set). See `docs/VENDORING.md` for what's vendored, from which upstream commit, and the re-sync procedure. We never modify or push to the upstream interchange repository. Before writing any new infrastructure — plugins, middleware, utilities, state management, logging, authz, inference, tools — check these packages.
7575

76-
| Package | Covers |
77-
|---|---|
78-
| `@intx/authz` | Grant matching (`matchPattern`, `evaluateGrants`) for permission approvals; Corbits owns the gate, store, and TUI ask |
79-
| `@intx/inference` | Reactor loop, `createAuthzExtension`, `DefaultDirector` |
80-
| `@intx/agent` | Agent lifecycle, send queue, stream |
81-
| `@intx/tools-posix` | Shell, file read/write/edit, grep, search |
82-
| `@intx/storage-isogit` | Git-backed state persistence |
83-
| `@intx/log` | Structured logging via LogTape |
84-
| `@intx/types` | All shared runtime types |
76+
| Package | Covers |
77+
| ---------------------- | --------------------------------------------------------------------------------------------------------------------- |
78+
| `@intx/authz` | Grant matching (`matchPattern`, `evaluateGrants`) for permission approvals; Corbits owns the gate, store, and TUI ask |
79+
| `@intx/inference` | Reactor loop, `createAuthzExtension`, `DefaultDirector` |
80+
| `@intx/agent` | Agent lifecycle, send queue, stream |
81+
| `@intx/tools-posix` | Shell, file read/write/edit, grep, search |
82+
| `@intx/storage-isogit` | Git-backed state persistence |
83+
| `@intx/log` | Structured logging via LogTape |
84+
| `@intx/types` | All shared runtime types |
8585

8686
## Reference
8787

CONTRIBUTING.md

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,7 @@ or release notes from commit types. This project does not:
8282
- Reviewers and `git log` readers need a sentence that stands alone years later,
8383
not a taxonomy debate (`chore` vs `refactor` vs `fix`).
8484
- An imperative subject already encodes the action: `Fix race in the approval
85-
queue` is clearer than `fix: race in the approval queue`.
85+
queue` is clearer than `fix: race in the approval queue`.
8686
- Prefixes train agents and humans to smuggle scope, ticket IDs, and file names
8787
into the subject — noise we already reject elsewhere.
8888

@@ -93,8 +93,8 @@ Angular-style prefixes is not a reason to adopt them here.
9393

9494
Most commits need **no** body. A clear subject plus a coherent diff is enough.
9595

96-
Add a body only when a future reader of `git log` could not answer *why this
97-
change* from the subject and the diff alone. When present:
96+
Add a body only when a future reader of `git log` could not answer _why this
97+
change_ from the subject and the diff alone. When present:
9898

9999
- Blank line between subject and body
100100
- Wrap body lines at 72 characters
@@ -187,6 +187,7 @@ Link trackers at the **PR boundary**, not inside every commit.
187187

188188
Full Linear URLs also work. Prefer the body over stuffing the ID into the
189189
PR title so the title stays a plain-English sentence.
190+
190191
3. Do **not** put `CL-…` in commit subjects or bodies.
191192

192193
**Closing magic words** (issue moves to Done on merge when automation is

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,7 @@ CLI (src/index.ts)
7070
```
7171

7272
The chat director adds context management on top of the reactor:
73+
7374
- **Threshold compaction:** As the context window fills, the conversation is compacted at the next safe point.
7475
- **Idle compaction:** A pending compaction also runs when a turn ends without more work, so a text-only conversation still compacts.
7576
- **Overflow recovery:** A context-overflow error triggers a bounded compact-and-retry instead of failing the turn.
@@ -94,7 +95,6 @@ Corbits Code defaults to **auto mode** (`auto = true`). Workspace file writes/ed
9495
- Opaque shell wrappers the policy cannot statically inspect (variable expansion or command substitution in a wrapper payload)
9596
- Paths outside the workspace, writes under the session state root, mutating MCP tools, and unknown built-ins
9697

97-
9898
### What auto hard-denies (use the file tools instead)
9999

100100
- File creation or edits via shell: redirects (`>` / `>>`), `tee`, `sed -i` / `perl -i` / similar, interpreter inline programs or heredocs (`python -c`, `node -e`, …)

0 commit comments

Comments
 (0)