Repository navigation
perf: delegate full gates to pull request CI - #476
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
|
Caution Review failedThe pull request is closed. ℹ️ Recent review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Pro Plus Run ID: ⛔ Files ignored due to path filters (48)
📒 Files selected for processing (26)
Disabled knowledge base sources:
WalkthroughThe pull request updates gate classification and evidence, weighted Go test sharding, migration stepping and seed caching, Linux desktop E2E execution, session-stream errors, and worktree synchronization. ChangesGate execution
Go test census and sharding
Migration stepping and seed generation
Desktop E2E execution
Session prompt stream errors
Worktree synchronization
Estimated code review effort: 5 (Critical) | ~120 minutes Sequence Diagram(s)sequenceDiagram
participant Gate as scripts/gate.sh
participant Runtime as scripts/gate_runtime.sh
participant Git as Git
participant Lanes as Affected lanes
Gate->>Git: classify changed content
Gate->>Runtime: compute tree_fingerprint
Gate->>Runtime: acquire_gate_slot
Gate->>Lanes: run affected local lanes
Lanes-->>Gate: lane results
Gate->>Runtime: release_gate_slot
sequenceDiagram
participant Apply as store.Apply
participant Stepper as MigrationStepper
participant Goose as Goose provider
participant Database as SQL database
Apply->>Stepper: NewMigrationStepper
Stepper->>Goose: prepare migration provider
Stepper->>Database: validate connection capacity
Apply->>Stepper: UpTo maximum version
Stepper->>Goose: apply pending migrations
Goose->>Database: update migration state
✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Warning Some tools did not complete. Review the errors below. 🔧 golangci-lint (2.12.2)level=error msg="[linters_context] typechecking error: build constraints exclude all Go files in /magefiles" Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
|
| Filename | Overview |
|---|---|
| .agents/skills/cy-loop-tasks/scripts/update-state.py | Adds delivery evidence persistence, but permits unauthenticated caller-supplied metadata to mark CI complete. |
| .agents/skills/cy-loop-tasks/scripts/detect-phase.py | Adds an await-CI phase and trusts persisted delivery evidence when transitioning to done. |
| .github/workflows/ci.yml | Parallelizes full verification and E2E lanes with aggregate checks and expanded Go sharding. |
| scripts/gate.sh | Converts the local gate to fail-safe affected-lane verification while delegating full coverage to PR CI. |
| magefiles/gotest_lane.go | Implements deterministic weighted package and split-test sharding with timing artifacts. |
| internal/store/migration_stepper.go | Introduces a reusable validated migration provider for explicit version stepping. |
| internal/store/globaldb/global_db_migration_seed_test.go | Builds migration-prefix fixtures incrementally and caches integrity-checked snapshots. |
Flowchart
%%{init: {'theme': 'neutral'}}%%
flowchart TD
Local[Scoped make gate] --> Push[Push exact head]
Push --> PR[Draft pull request]
PR --> CI[Parallel full CI lanes]
CI --> Observe[Observe required checks]
Observe --> State[Record PR URLs, heads, and checks]
State --> Done{Delivery PASS?}
Done -->|Yes| Complete[Phase E done]
Done -->|No| Repair[Repair and push new head]
Repair --> CI
Reviews (1): Last reviewed commit: "perf: improve ci" | Re-trigger Greptile
| "CI evidence requires one --head-sha for every --pr-url" | ||
| ) | ||
| invalid_url = next((url for url in pr_urls if not _GITHUB_PR_URL.fullmatch(url)), None) | ||
| if invalid_url: | ||
| raise StateUpdateError(f"invalid GitHub PR URL: {invalid_url}") | ||
| invalid_sha = next((sha for sha in head_shas if not _GIT_SHA.fullmatch(sha)), None) | ||
| if invalid_sha: |
There was a problem hiding this comment.
When an agent supplies the current local HEAD, any syntactically valid PR URL, and any nonempty check name, this validation records PASS without confirming that the PR has that head or that its required checks succeeded, causing detect-phase.py to emit phase=E action=done while CI is pending or failing.
Summary
make gatescoped, evidence-cached, contention-bounded, and fail-safe for missing or unclassified pathsMeasured decisions
modernc.org/...; the weekly workflow runs uncached with full checkptrVerification
make gate— scoped local gate; evidence fingerprint recorded in.cache/gate/cy-loop-taskshelper suite — 38 passing testsQA impact
No user-visible product behavior changed. This is developer gate, CI, test-fixture, and worktree tooling, so no
docs/qa/scenarios/entry is added or reset.Compozy Impact Audit
skills/compozy/; no public tool ID, CLI path, hook event, capability, extension resource, or memory/network/task behavior changed.No
config.tomlkey, default, or setting lifecycle changed.Summary by CodeRabbit
Bug Fixes
Improvements