diff --git a/project/ticket-004/README.md b/project/ticket-004/README.md new file mode 100644 index 0000000..26e576a --- /dev/null +++ b/project/ticket-004/README.md @@ -0,0 +1,19 @@ +# ticket-004: Remove pfix auto-repair from the project + +- **Status**: IN_PROGRESS +- **Workflow state**: EDIT + +SESSION_EXECUTION_AUTHORIZATION: on 2026-09-13 the user requested that pfix be +removed from Semcod projects or deactivated, because its automatic repairs +overwrite development changes. + +AC-01: No tracked `pyproject.toml` declares a `[tool.pfix]` table or a `pfix` +requirement (runtime, optional, group or tool environment). +AC-02: The parsed TOML differs from the base only by the removed pfix entries. +AC-03: A tracked `uv.lock` is regenerated so it no longer records a direct pfix +requirement of this project. +AC-04: Source code, tests and generated documentation projections are unchanged. + +Canonical fleet evidence: +`subactor/docs/architecture/analysis/semcod-library-quality.md`. +This ticket does not establish full new-project adoption. diff --git a/project/ticket-004/intent.json b/project/ticket-004/intent.json new file mode 100644 index 0000000..66b10f5 --- /dev/null +++ b/project/ticket-004/intent.json @@ -0,0 +1,17 @@ +{ + "ticket": "ticket-004", + "summary": "Remove pfix auto-repair configuration and dependency declarations", + "allowedPaths": [ + "pyproject.toml", + "uv.lock", + "project/ticket-004/**" + ], + "forbiddenPaths": [ + ".env", + "src/**", + "tests/**", + ".github/workflows/**" + ], + "authorization": "SESSION_EXECUTION_AUTHORIZATION", + "outcome": "pfix is no longer configured, installed or locked by this project; no runtime behavior change." +} diff --git a/pyproject.toml b/pyproject.toml index c8572a6..2e6efbb 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -33,7 +33,6 @@ dependencies = [ "tomli>=2.0; python_version<'3.11'", "python-dotenv>=1.0", "costs>=0.1.20", - "pfix>=0.1.60", ] [project.optional-dependencies] @@ -81,7 +80,6 @@ dev = [ "ruff>=0.4", "mypy>=1.8", "costs>=0.1.20", - "pfix>=0.1.60", ] [project.scripts] @@ -116,22 +114,6 @@ testpaths = ["tests"] pythonpath = ["src"] addopts = "-v --tb=short" -[tool.pfix] -# Self-healing Python configuration -model = "openrouter/deep/deep-v4-pro" -auto_apply = true -auto_install_deps = true -auto_restart = false -max_retries = 3 -create_backups = false -git_auto_commit = false - -[tool.pfix.runtime_todo] -enabled = true -todo_file = "TODO.md" -min_severity = "low" -deduplicate = true - [tool.costs] # AI Cost tracking configuration badge = true diff --git a/uv.lock b/uv.lock index 9ac7a1a..9fbe3ae 100644 --- a/uv.lock +++ b/uv.lock @@ -6,10 +6,10 @@ resolution-markers = [ "python_full_version >= '3.13' and sys_platform == 'emscripten'", "python_full_version >= '3.13' and sys_platform != 'emscripten' and sys_platform != 'win32'", "python_full_version == '3.12.*' and sys_platform == 'win32'", - "python_full_version == '3.11.*' and sys_platform == 'win32'", "python_full_version == '3.12.*' and sys_platform == 'emscripten'", - "python_full_version == '3.11.*' and sys_platform == 'emscripten'", "python_full_version == '3.12.*' and sys_platform != 'emscripten' and sys_platform != 'win32'", + "python_full_version == '3.11.*' and sys_platform == 'win32'", + "python_full_version == '3.11.*' and sys_platform == 'emscripten'", "python_full_version == '3.11.*' and sys_platform != 'emscripten' and sys_platform != 'win32'", "python_full_version < '3.11'", ] @@ -1570,9 +1570,6 @@ wheels = [ name = "mistune" version = "3.3.4" source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "typing-extensions", marker = "python_full_version < '3.11'" }, -] sdist = { url = "https://files.pythonhosted.org/packages/7b/92/328a294a6de83bacb95bed01f04e0eaff4e3616ee359fc821a5dfc539b02/mistune-3.3.4.tar.gz", hash = "sha256:58b5c96d6fcb61190dfe5fae498d2b2065f99cf61e9649418fd54cf1ada86dfe", size = 121426, upload-time = "2026-07-22T05:22:30.89Z" } wheels = [ { url = "https://files.pythonhosted.org/packages/77/e4/288365afae98953bc01de09f686f40d8ee84578135aa7767d5d4e60b5278/mistune-3.3.4-py3-none-any.whl", hash = "sha256:ee015381e955e370962968befe1d729ab60fafb6a715ac6751763fbce38c8d4a", size = 66862, upload-time = "2026-07-22T05:22:29.419Z" }, @@ -1828,10 +1825,10 @@ resolution-markers = [ "python_full_version >= '3.13' and sys_platform == 'emscripten'", "python_full_version >= '3.13' and sys_platform != 'emscripten' and sys_platform != 'win32'", "python_full_version == '3.12.*' and sys_platform == 'win32'", - "python_full_version == '3.11.*' and sys_platform == 'win32'", "python_full_version == '3.12.*' and sys_platform == 'emscripten'", - "python_full_version == '3.11.*' and sys_platform == 'emscripten'", "python_full_version == '3.12.*' and sys_platform != 'emscripten' and sys_platform != 'win32'", + "python_full_version == '3.11.*' and sys_platform == 'win32'", + "python_full_version == '3.11.*' and sys_platform == 'emscripten'", "python_full_version == '3.11.*' and sys_platform != 'emscripten' and sys_platform != 'win32'", ] sdist = { url = "https://files.pythonhosted.org/packages/6a/51/63fe664f3908c97be9d2e4f1158eb633317598cfa6e1fc14af5383f17512/networkx-3.6.1.tar.gz", hash = "sha256:26b7c357accc0c8cde558ad486283728b65b6a95d85ee1cd66bafab4c8168509", size = 2517025, upload-time = "2025-12-08T17:02:39.908Z" } @@ -2245,10 +2242,10 @@ resolution-markers = [ "python_full_version >= '3.13' and sys_platform == 'emscripten'", "python_full_version >= '3.13' and sys_platform != 'emscripten' and sys_platform != 'win32'", "python_full_version == '3.12.*' and sys_platform == 'win32'", - "python_full_version == '3.11.*' and sys_platform == 'win32'", "python_full_version == '3.12.*' and sys_platform == 'emscripten'", - "python_full_version == '3.11.*' and sys_platform == 'emscripten'", "python_full_version == '3.12.*' and sys_platform != 'emscripten' and sys_platform != 'win32'", + "python_full_version == '3.11.*' and sys_platform == 'win32'", + "python_full_version == '3.11.*' and sys_platform == 'emscripten'", "python_full_version == '3.11.*' and sys_platform != 'emscripten' and sys_platform != 'win32'", ] dependencies = [ @@ -2996,7 +2993,6 @@ version = "0.4.48" source = { editable = "." } dependencies = [ { name = "costs" }, - { name = "pfix" }, { name = "pydantic" }, { name = "python-dotenv" }, { name = "pyyaml" }, @@ -3063,7 +3059,6 @@ compare = [ dev = [ { name = "costs" }, { name = "mypy" }, - { name = "pfix" }, { name = "pytest" }, { name = "pytest-cov" }, { name = "ruff" }, @@ -3107,8 +3102,6 @@ requires-dist = [ { name = "litellm", marker = "extra == 'llm'", specifier = ">=1.0" }, { name = "mypy", marker = "extra == 'dev'", specifier = ">=1.8" }, { name = "networkx", marker = "extra == 'compare'", specifier = ">=3.0" }, - { name = "pfix", specifier = ">=0.1.60" }, - { name = "pfix", marker = "extra == 'dev'", specifier = ">=0.1.60" }, { name = "planfile", marker = "extra == 'tasks'", specifier = ">=0.1.117" }, { name = "pybloom-live", marker = "extra == 'fast'", specifier = ">=4.0" }, { name = "pydantic", specifier = ">=2.0" }, @@ -3392,10 +3385,10 @@ resolution-markers = [ "python_full_version >= '3.13' and sys_platform == 'emscripten'", "python_full_version >= '3.13' and sys_platform != 'emscripten' and sys_platform != 'win32'", "python_full_version == '3.12.*' and sys_platform == 'win32'", - "python_full_version == '3.11.*' and sys_platform == 'win32'", "python_full_version == '3.12.*' and sys_platform == 'emscripten'", - "python_full_version == '3.11.*' and sys_platform == 'emscripten'", "python_full_version == '3.12.*' and sys_platform != 'emscripten' and sys_platform != 'win32'", + "python_full_version == '3.11.*' and sys_platform == 'win32'", + "python_full_version == '3.11.*' and sys_platform == 'emscripten'", "python_full_version == '3.11.*' and sys_platform != 'emscripten' and sys_platform != 'win32'", ] sdist = { url = "https://files.pythonhosted.org/packages/aa/2a/9618a122aeb2a169a28b03889a2995fe297588964333d4a7d67bdf46e147/rpds_py-2026.6.3.tar.gz", hash = "sha256:1cebd1337c242e4ec2293e541f712b2da849b29f48f0c293684b71c0632625d4", size = 64051, upload-time = "2026-06-30T07:17:53.009Z" } @@ -3559,10 +3552,10 @@ resolution-markers = [ "python_full_version >= '3.13' and sys_platform == 'emscripten'", "python_full_version >= '3.13' and sys_platform != 'emscripten' and sys_platform != 'win32'", "python_full_version == '3.12.*' and sys_platform == 'win32'", - "python_full_version == '3.11.*' and sys_platform == 'win32'", "python_full_version == '3.12.*' and sys_platform == 'emscripten'", - "python_full_version == '3.11.*' and sys_platform == 'emscripten'", "python_full_version == '3.12.*' and sys_platform != 'emscripten' and sys_platform != 'win32'", + "python_full_version == '3.11.*' and sys_platform == 'win32'", + "python_full_version == '3.11.*' and sys_platform == 'emscripten'", "python_full_version == '3.11.*' and sys_platform != 'emscripten' and sys_platform != 'win32'", ] dependencies = [