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" },