diff --git a/project/TICKETS.md b/project/TICKETS.md index b402515..63d4ea8 100644 --- a/project/TICKETS.md +++ b/project/TICKETS.md @@ -153,6 +153,7 @@ This file indexes governance tickets without taking ownership of | **ticket-248** | [`README.md`](./ticket-248/README.md) | - | - | - | - | - | | **ticket-249** | [`README.md`](./ticket-249/README.md) | - | - | - | - | - | | **ticket-250** | [`README.md`](./ticket-250/README.md) | - | - | - | - | - | +| **ticket-251** | [`README.md`](./ticket-251/README.md) | - | - | - | - | - | | **ticket-252** | [`README.md`](./ticket-252/README.md) | - | - | - | - | - | | **ticket-253** | [`README.md`](./ticket-253/README.md) | - | - | - | - | - | diff --git a/project/ticket-251/README.md b/project/ticket-251/README.md new file mode 100644 index 0000000..ee47577 --- /dev/null +++ b/project/ticket-251/README.md @@ -0,0 +1,25 @@ +# Ticket 251: Use canonical dockuri Procache dependency + +- **ID**: ticket-251 +- **Owner**: agent:codex +- **Status**: IN_PROGRESS +- **Workflow state**: PUBLICATION +- **Created**: 2026-10-28 + +## Goal and scope + +Replace the old subactor/procache requirement with dockuri/procache at the independently merged94cb311 revision. Update only its provenance in the existing lock; keep other dependencies stable. Preserve foreign ticket250. + +SESSION_EXECUTION_AUTHORIZATION: user requested "kontynuuj, testuj, scalaj, wykonuj zalegle", continuing the authorized canonical-library migration and multi-provider cache work, including protected publication. + +## Acceptance criteria + +- [x] AC-01: Manifest and lock resolve canonical dockuri/procache94cb311 with no unrelated dependency changes. +- [ ] AC-02: Existing cache regressions, managed governance and protected Python3.10/3.11/3.13 verification pass using the candidate library. +- [ ] AC-03: Independent Validator approves the frozen exact head and the protected controller merges it. + +## Delivery boundary + +The protected OneDev dependency-input closure needs a separately owned exact revision before merge. Retain this ticket through publication; local checks alone do not grant approval. + +Local evidence: all36 scoped provider-cache regressions pass with canonical Procache, the five installed module digests match94cb311, and managed governance passes. Parsed comparison of all123 locked packages proves that only Procache Git provenance changed. Full local verification is recorded externally; protected three-interpreter input qualification remains required before merge. diff --git a/project/ticket-251/intent.json b/project/ticket-251/intent.json new file mode 100644 index 0000000..2d10eae --- /dev/null +++ b/project/ticket-251/intent.json @@ -0,0 +1,76 @@ +{ + "schema": "new-project.intent/v3", + "ticket": "ticket-251", + "summary": "Migrate the existing cache dependency to independently merged dockuri/procache94cb311 with no other dependency changes", + "workstream": "integration", + "classification": { + "kind": "SERVICE", + "priority": "P1", + "origin": "requested" + }, + "allowedPaths": [ + "project/ticket-251/**", + "TODO.md", + "project/TICKETS.md", + "pyproject.toml", + "uv.lock" + ], + "forbiddenPaths": [ + "project/ticket-*/user-*.md" + ], + "stacks": [], + "dependsOn": [], + "conflictsWith": [], + "integrationTicket": null, + "delivery": { + "acceptedBaseSha": "c14396fd977a52aae5d358d091afff2771c6b7d4", + "targetBranch": "main", + "outcome": "Replace the retired subactor/procache Git URL with canonical dockuri/procache at independently merged94cb311, retain dependency closure compatibility and publish through exact-head protected three-interpreter verification.", + "nonGoals": [ + "No unrelated dependency upgrades, product behavior, provider credential, TTL, governance or CI policy changes.", + "Do not alter foreign fastio ticket250 or bypass missing protected input qualification." + ], + "complexity": "S", + "estimatedMinutes": 90, + "budgets": { + "maxImplementationFiles": 2, + "maxAffectedComponents": 1, + "maxPublicInterfaceChanges": 0, + "maxRuntimeDependencies": 0 + }, + "architecture": { + "status": "accepted", + "decision": "Change only the existing Procache requirement and its uv.lock package provenance. Reuse current canonical backend and existing read-cache regressions. Coordinate exact new dependency-input qualification in the OneDev owner before target merge.", + "components": [ + { + "name": "canonical-cache-dependency", + "paths": [ + "pyproject.toml", + "uv.lock" + ] + } + ], + "responsibilityChanges": false, + "interfaceChanges": [], + "dataChanges": [], + "ui": { + "impact": "none", + "states": [], + "evidence": [] + }, + "rollback": "Protected revert to the previous pinned requirement; existing cache database schema remains compatible." + }, + "runtimeDependencies": [], + "validation": [ + { + "criterion": "AC-01", + "commands": [ + "uv lock --check", + "python -m pytest -q tests/test_scoped_provider_cache.py tests/test_github_metadata_cache_scope.py", + "project/governance-check.sh" + ], + "evidence": "Validate only intended manifest/lock provenance changes, VCS resolution, cache regression behavior, full protected Python3.10/3.11/3.13 matrix and independent exact-head publication." + } + ] + } +} diff --git a/pyproject.toml b/pyproject.toml index 4deb85c..658f990 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -31,7 +31,7 @@ dependencies = [ "filelock>=3.0", "python-dotenv>=1.0", "PyGithub>=2.0", - "subactor-procache @ git+https://github.com/subactor/procache.git@f1548ef488c133617b181005e8fd083eba2cc84b", + "subactor-procache @ git+https://github.com/dockuri/procache.git@94cb3118ede4a448a3cb2517e66a152687ff0af5", ] license = "Apache-2.0" diff --git a/uv.lock b/uv.lock index 7fd5966..5132c72 100644 --- a/uv.lock +++ b/uv.lock @@ -2355,7 +2355,7 @@ requires-dist = [ { name = "requests", specifier = ">=2.31" }, { name = "rich", specifier = ">=13.0" }, { name = "ruff", marker = "extra == 'dev'", specifier = ">=0.5" }, - { name = "subactor-procache", git = "https://github.com/subactor/procache.git?rev=f1548ef488c133617b181005e8fd083eba2cc84b" }, + { name = "subactor-procache", git = "https://github.com/dockuri/procache.git?rev=94cb3118ede4a448a3cb2517e66a152687ff0af5" }, { name = "typer", specifier = ">=0.12" }, { name = "uvicorn", extras = ["standard"], marker = "extra == 'all'", specifier = ">=0.30" }, { name = "uvicorn", extras = ["standard"], marker = "extra == 'api'", specifier = ">=0.30" }, @@ -3538,7 +3538,7 @@ wheels = [ [[package]] name = "subactor-procache" version = "0.1.0" -source = { git = "https://github.com/subactor/procache.git?rev=f1548ef488c133617b181005e8fd083eba2cc84b#f1548ef488c133617b181005e8fd083eba2cc84b" } +source = { git = "https://github.com/dockuri/procache.git?rev=94cb3118ede4a448a3cb2517e66a152687ff0af5#94cb3118ede4a448a3cb2517e66a152687ff0af5" } [[package]] name = "tiktoken"