Conversation
Implements #258. Adds `python.ruff-lint` and `python.ruff-format` as validation-python-owned warning checks with `defaultScopes: []`. They activate only through explicit selection or `.opcore/config` `validation.checks.defaults`; `checks.disabled` wins. Unrequested and disabled checks emit non-execution capability receipts, report skipped runs, never probe or invoke Ruff, and never degrade enforced coverage. `python.source-hygiene` is unchanged. Execution reuses the #246 canonical Python project context, the #209 graph import closure, and a shared #245-style exact after-state workspace primitive (`python-execution-workspace.ts`) with sanitized HOME/XDG/TMP/PATH runtime. Lint runs `ruff check --output-format=json --no-fix --no-cache --force-exclude` and consumes strict JSON; format runs bounded `ruff format --check --no-cache --force-exclude` batches and refines exit-1 batches by file without parsing human prose. Target-applicable `.ruff.toml`, `ruff.toml`, and `[tool.ruff]` configuration plus its recursive `extend` closure require non-symlink realpath evidence and are materialized without mutating source, config, lockfiles, environments, or caches. Extends `PythonValidationCapabilityRun` into a portable Ruff receipt variant with project key, context fingerprint, after-state manifest fingerprint, source/config paths, cwd, portable executable/argv, tool provenance, termination, duration, and diagnostic counts, plus runtime and JSON-schema state-machine invariants that reject contradictory or incomplete failure-state execution evidence. Status, scan, doctor, metrics, and ASP reporting are activation-aware: missing Ruff degrades only while a Ruff check is active, the `python.ruff_lint_findings`/`python.ruff_format_findings` signals derive only from executed receipts, and ASP executes and reports only selected check ids. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
feat: P1: Run truthful opt-in Ruff lint and format checks
feat(validation-python): add opt-in pytest authority
…ev-tools Purge deprecated toolchain and enforce strict self-validation
fix(validation): support nested Git workspace roots
Version bump only; no behavior change beyond the fix already merged in #298. - bumps all 17 workspace package versions and their exact internal dependency pins - bumps the Cargo workspace version and the three native artifactVersion values (binaries and checksums are unchanged; the CI native matrix rebuilds them for publish) - updates the hardcoded release version in check-workspace, release-dry-run, and release-publish, plus RELEASE_VERSION and OPCORE_CONFIRM_PUBLISH in release.yml - adds docs/release/v0.2.2.md, which the release workflow uses verbatim - backfills CHANGELOG entries for 0.2.0 and 0.2.1, which shipped undocumented Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01TytwH459JMysvWDj1PopjH
Five assertions pin the released version and must move with it: - opcore-facade: `opcore --version` human output and runtimeInfo.version - native-packaging-policy: OPCORE_CONFIRM_PUBLISH in release.yml - graph-core-artifact: the unsupported-Windows message - asp-provider: the canonical ASP server manifest version Left every other 0.2.1 in tests/ alone; those are inert fixtures (sample Cargo.toml versions, schema-contract payloads, fake host versions) that do not compare against the live release version. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01TytwH459JMysvWDj1PopjH
release: bump Opcore to 0.2.2
Comment on lines
+9
to
+18
| import { | ||
| TypeScriptProjectService, | ||
| defaultTypeScriptProjectExcludedDirectories, | ||
| isPathInside as isInside, | ||
| isSafeExistingFileInsideRepo, | ||
| normalizeModulePath, | ||
| type TypeScriptProjectContext, | ||
| type TypeScriptProjectOptions, | ||
| type TypeScriptProjectScope | ||
| } from "./typescript-project/index.js"; |
| @@ -0,0 +1,26 @@ | |||
| import { isAbsolute, relative, resolve, sep } from "node:path"; | |||
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.
Summary
Promote
devtomainfor the Opcore0.2.2nested-workspace fix.artifactVersionvalues to0.2.2docs/release/v0.2.2.mdand backfills CHANGELOG entries for 0.2.0 and 0.2.1, which both shipped undocumentedVerification
ffc828c, contributed by Sigurd Høystad (@saasom), the first outside contribution to this repo6cf124dcheck --changed --repo packages/appreturnedinfrastructure_failurewith zero checks executed andfatal: path 'packages/app/src/index.ts' exists, but not 'src/index.ts'opcore 0.2.2, runs 25 checks, catches the app'sTS2322atsrc/index.ts, correctly excludes the sibling package, and--repo .at the worktree root still reports both with full pathsOPCORE_REQUIRE_ALL_NATIVE_PACKAGES=1 npm run release:dry-runpasses at 0.2.2; each native binary matches both its.sha256and its metadata checksumdevon the same machine (ASP dogfood receipt,cutover release receipt,installed package bins, all needing packed artifacts or a pinned Ruff). No regressions from the bump.What this PR gates
native-artifactandaggregateare conditioned onmain, so this is the first run in the sequence that rebuilds graph-core for all three targets.mainrequires all five contexts:check, the threenative-artifactjobs, andaggregate.Worth knowing while reviewing: the graph-core binaries committed in git are stale relative to current
crates/, enough to fail three conformance suites when tests run against them instead of a fresh build. Evidence added to #227. It does not affect what ships, since the publish consumes the CI native artifacts rather than the committed ones.On merge
Merging triggers main-branch CI and, after it succeeds, the automated npm and GitHub release for
opcore@0.2.2with dist-taglatest. Release notes come verbatim fromdocs/release/v0.2.2.md.