| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
feat(pipeline): add live validation to the test gate (#999) * feat(test): make the Test step report scenarios and a verdict The Test step reported "unit tests passed" where a reviewer needed to know which end-user scenarios were driven against the real product. This makes that the step's contract instead of a hope. The evidence turn now derives named scenarios from the intent and returns each with a result (pass/fail/untested), an explicit `live` flag, evidence and a reason, plus one go/no-go/inconclusive verdict. Both are required by the schema and validated on the way in: a non-empty scenario list, every declared field present, evidence behind any pass or fail, and no result that contradicts its verdict. `live` is a claim about what actually ran - a unit test, stub or fixture is not live - and a scenario this machine cannot drive is reported `untested` with the capability that stopped it rather than guessed at. The turn is unconditional: a green `commands.test` is the baseline, not a substitute for driving the product, so the evidence turn always follows it. Verdict policy is C2 = a: no-go parks the step, inconclusive parks for a human, and untested never parks - it is listed on the PR precisely so that reporting it honestly stays cheaper than a guessed pass. The scenario table and verdict render in the PR's Testing section and Pipeline fold, and the machine-readable half rides the attestation as live_validation, omitted whenever the head changes after Test because that claim is about one commit and does not transfer to another. `test.instructions` carries the repository's runbook for standing its product up. It is trusted-default-branch-only for the same reason `document.instructions` is: a pushed branch must not steer the gate that validates it. Also fixes three pre-existing test failures found on the way: a codex adapter test racing process spawn against a 200ms deadline, a daemon test whose push attestation reached the real github.com on an authenticated machine, and TestScenario's json tags omitting fields the wire contract requires. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01CTbs2RAw4LpeeRF1HmHmKF * no-mistakes(review): Honor unconditional live validation and bind attestations * no-mistakes(review): Correct live-validation attestation documentation * no-mistakes(review): Document trusted test runbook configuration * no-mistakes(document): Document unconditional live validation contract * no-mistakes(ci): Fixed CI regressions by making the failing-baseline test command Windows-compatible and updating the E2E assertion for unconditional evidence checks. Verified with targeted race tests, repeated CLI flake coverage, and `make e2e`. The macOS broken-pipe failure was transient; Greptile's concern conflicts with the explicit requirement for unconditional evidence validation --------- Co-authored-by: Claude Opus 5 <noreply@anthropic.com> | 3 天前 | |
feat(cli): install agent skill at user level (#284) * feat(init): install agent skill at user level instead of vendoring into repos `no-mistakes init` no longer writes SKILL.md into each target repo's .claude/skills and .agents/skills. It now installs/refreshes the skill at user level: ~/.claude/skills/no-mistakes/SKILL.md (Claude Code, OpenCode) and ~/.agents/skills/no-mistakes/SKILL.md (Codex, OpenCode, Rovo Dev, Pi). Both locations were verified against each harness's documented user-level skill discovery. The symlink-aware install logic is reused unchanged with the home directory as root, and install stays idempotent and best-effort. When init finds a vendored copy left by an older version it prints a one-line notice that the copy can be removed, without touching it. The metadata.internal frontmatter marker is gone: it existed solely to hide vendored per-repo copies from repo skill listings, and the user-level copy is a genuine user installation that should stay discoverable. With no vendored copies anywhere, InstalledMarkdown() is deleted, genskill renders only the canonical skills/no-mistakes/SKILL.md, and this repo's own committed .agents/skills copy and .claude/skills symlink are removed. * no-mistakes(review): Fix quick-start skill install wording * no-mistakes(document): Sync skill install documentation | 2 个月前 | |
fix: replace the running executable during Windows self-update (#650) * fix: replace the running executable during Windows self-update Fixes #373 * fix(update): assert platform-appropriate permissions in replace tests Windows does not preserve Unix mode bits, so a hard 0751 assertion fails on windows-latest even when the replace logic is correct. Expect 0666 on Windows and keep 0751 everywhere else, and report the expected value in the failure message instead of a hardcoded 751. --------- Co-authored-by: Matt Van Horn <455140+mvanhorn@users.noreply.github.com> | 18 天前 | |
fix(update): fetch version metadata from release CDN (#1007) * fix(update): resolve versions from a CDN channel manifest Unauthenticated GitHub REST is capped at 60 req/hr, so fleet installs 403'd on release metadata even though binary downloads already used the CDN. Publish channels.json on a stable release-asset URL and read it first so update needs no token and cannot hit that limit. * no-mistakes(review): Remove REST fallback and require explicit manifest schema * no-mistakes(review): Remove obsolete REST version discovery path * no-mistakes(review): Remove obsolete channel manifest fallback paths * no-mistakes(review): Require explicit repository for channel publication * no-mistakes(review): Remove duplicate channel publication path * no-mistakes(review): Correct channel publisher guidance * no-mistakes(document): clarify updater manifest documentation * no-mistakes(ci): Updated publish-channels workflow checkout to explicitly use the repository default branch, preventing historical release tags from selecting revisions without the publisher. Verified with `git diff --check` and `go test ./...` | 3 天前 | |
test(e2e): add antigravity fixture recording and replay coverage (#809) * test(agent): cover antigravity in fakeagent and the e2e user journey * no-mistakes(document): Add antigravity to agent lists, doctor example, and fakeagent doc comment * no-mistakes(document): Add antigravity to agent Values and auto resolution order in docs * feat(recordfixture): capture antigravity fixtures via the owned e2e-record workflow * no-mistakes(review): Assert Antigravity recorder argv forwarding; focused tests pass * fix(recordfixture): stage agy captures atomically and contain the process tree * no-mistakes(review): Test plain fixture replay path by splitting TestRunAgyReplaysRecordedFixture into structured/plain subtests * no-mistakes(review): Validate Antigravity captures and replay configured fixtures reliably * no-mistakes(document): Document Antigravity capture and replay behavior * no-mistakes: apply CI fixes * fix(recordfixture): expect cmd-exe quote escaping in agy argv test; dedupe antigravity docs The windows-core run at 0ba9bd95 failed TestCaptureAgyPlacesForwardedFlagsBeforePromptAndSchemaLast because the fake .cmd agent records Go's literal backslash-quote escaping: cmd.exe %~1 expansion does not undo it, while real agy parses argv with CommandLineToArgvW and sees the unescaped JSON. Assert the escaped schema arg on Windows with a comment explaining the harness-only artifact. After rebasing onto main (#812), agents.md carried two Antigravity adapter sections and two supported-agents table rows. Keep one of each, reflecting final capabilities: session resume via --conversation and terminal-authoritative result precedence (structured_output > result.response > stream deltas). * fix(recordfixture): reject any non-SUCCESS agy result during capture validation validateAgyCapture only inspected the final result status, so a capture containing an ERROR result followed by SUCCESS validated even though the production replay parser treats any ERROR result as fatal. Fail fast on the first non-SUCCESS result and require at least one result event. | 19 天前 |
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 3 天前 | ||
| 2 个月前 | ||
| 18 天前 | ||
| 3 天前 | ||
| 19 天前 |