From c75aeeabf8576390970c8ecd1ce3e793ce12d9ef Mon Sep 17 00:00:00 2001 From: Tom Softreck Date: Mon, 14 Sep 2026 08:02:04 +0200 Subject: [PATCH] [ticket-006] build: remove pfix auto-repair configuration pfix was configured with auto_apply = true, auto_install_deps = true and create_backups = false, and its automatic repairs overwrote development changes. Remove the [tool.pfix] tables and every pfix requirement. The parsed TOML differs from the base only by the removed pfix entries. uv.lock is regenerated with uv 0.12.13 without changing any other package version. Co-Authored-By: Claude Opus 5 Claude-Session: https://claude.ai/code/session_014hezCdF29Azzf6AaAfEVcw --- project/ticket-006/README.md | 19 +++++++++++++++++++ project/ticket-006/intent.json | 17 +++++++++++++++++ pyproject.toml | 18 ------------------ uv.lock | 10 +++------- 4 files changed, 39 insertions(+), 25 deletions(-) create mode 100644 project/ticket-006/README.md create mode 100644 project/ticket-006/intent.json diff --git a/project/ticket-006/README.md b/project/ticket-006/README.md new file mode 100644 index 0000000..6b277ca --- /dev/null +++ b/project/ticket-006/README.md @@ -0,0 +1,19 @@ +# ticket-006: 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-006/intent.json b/project/ticket-006/intent.json new file mode 100644 index 0000000..0dfc6f0 --- /dev/null +++ b/project/ticket-006/intent.json @@ -0,0 +1,17 @@ +{ + "ticket": "ticket-006", + "summary": "Remove pfix auto-repair configuration and dependency declarations", + "allowedPaths": [ + "pyproject.toml", + "uv.lock", + "project/ticket-006/**" + ], + "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 e60ef93..9e13222 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -19,7 +19,6 @@ dependencies = [ "rich>=13.0", "jmespath>=1.0", "costs>=0.2.0", - "pfix>=0.1.79", ] license = "Apache-2.0" @@ -30,7 +29,6 @@ redeploy-mcp = "redeploy.mcp_server:serve" [project.optional-dependencies] dev = ["pytest>=8.0", "ruff>=0.4", "costs>=0.2.0", - "pfix>=0.1.79", ] op3 = ["op3>=0.1.8"] mcp = ["mcp>=1.0,<2"] @@ -52,22 +50,6 @@ redeploy = ["**/*.yaml"] [tool.setuptools.exclude-package-data] redeploy = ["tests/*", "tests/**/*"] -[tool.pfix] -# Self-healing Python configuration -model = "openrouter/qwen/qwen3-coder-next" -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 af014a5..dd7faf5 100644 --- a/uv.lock +++ b/uv.lock @@ -6,10 +6,10 @@ resolution-markers = [ "python_full_version >= '3.14' and sys_platform == 'emscripten'", "python_full_version >= '3.14' and sys_platform != 'emscripten' and sys_platform != 'win32'", "python_full_version >= '3.12' and python_full_version < '3.14' and sys_platform == 'win32'", - "python_full_version < '3.12' and sys_platform == 'win32'", "python_full_version >= '3.12' and python_full_version < '3.14' and sys_platform == 'emscripten'", - "python_full_version < '3.12' and sys_platform == 'emscripten'", "python_full_version >= '3.12' and python_full_version < '3.14' and sys_platform != 'emscripten' and sys_platform != 'win32'", + "python_full_version < '3.12' and sys_platform == 'win32'", + "python_full_version < '3.12' and sys_platform == 'emscripten'", "python_full_version < '3.12' and sys_platform != 'emscripten' and sys_platform != 'win32'", ] @@ -2400,7 +2400,6 @@ dependencies = [ { name = "loguru" }, { name = "markdown-it-py" }, { name = "paramiko" }, - { name = "pfix" }, { name = "pydantic" }, { name = "pyyaml" }, { name = "rich" }, @@ -2409,7 +2408,6 @@ dependencies = [ [package.optional-dependencies] dev = [ { name = "costs" }, - { name = "pfix" }, { name = "pytest" }, { name = "ruff" }, ] @@ -2434,11 +2432,9 @@ requires-dist = [ { name = "jmespath", specifier = ">=1.0" }, { name = "loguru", specifier = ">=0.7" }, { name = "markdown-it-py", specifier = ">=3.0" }, - { name = "mcp", marker = "extra == 'mcp'", specifier = ">=1.0" }, + { name = "mcp", marker = "extra == 'mcp'", specifier = ">=1.0,<2" }, { name = "op3", marker = "extra == 'op3'", specifier = ">=0.1.8" }, { name = "paramiko", specifier = ">=3.0" }, - { name = "pfix", specifier = ">=0.1.79" }, - { name = "pfix", marker = "extra == 'dev'", specifier = ">=0.1.79" }, { name = "pydantic", specifier = ">=2.0" }, { name = "pytest", marker = "extra == 'dev'", specifier = ">=8.0" }, { name = "pyyaml", specifier = ">=6.0" },