You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit 4e8cb01
Browse filesBrowse the repository at this point in the historyBrowse files
**Tested:** main `fc1b4f9` (includes #1529, the #1527 fix), latest release **v5.0.1**. Linux only, with real Poetry 1.8.5, 2.1.4, 2.2.1 and 2.5.1 and a local mock of the patch API serving one patched `six-1.16.0` wheel.
4
+
5
+
## Re-triage
6
+
7
+
-**#1527** (closed by #1529): confirmed fixed. A Poetry 2.5.1 project with `[project].name` + `dynamic = ["version"]` + `[tool.poetry].version` now gets the product `pkg:pypi/demo1527@0.3.0` from `scan --mode hosted --vex` (exit 0), and `poetry install` gets the patched bytes. No comment needed.
8
+
-**#450** (open): still reproduces on `fc1b4f9` with Poetry 2.5.1. No new information, so no comment.
9
+
10
+
## Cells (Linux, main `fc1b4f9`)
11
+
12
+
| Poetry | Cell | Result |
13
+
| --- | --- | --- |
14
+
| 2.5.1 |#1527 re-check | pass |
15
+
| 2.5.1 |#1527 variant with a stale `[tool.poetry].name`|`product_undetected`, deliberate (Poetry 1.x and 2.x build different names); known non-bug |
16
+
| 2.1.4 | Hosted (install, `poetry sync`, rollback byte-identical), vendored (`vendor --check`), agent in-project (scan, re-run, vex) and out-of-tree venv, hosted ⇄ vendored takeovers with a fresh install after each, vendored `repair` with the wheel deleted | pass |
17
+
| 1.8.5, 2.5.1 |`explicit` / `supplemental``[[tool.poetry.source]]` that six doesn't come from: hosted + vendored + fresh install | pass |
| macOS / Windows | anything | blocked: deleting `bughunt/poetry/*` is still denied, so no probes were pushed |
21
+
22
+
## Issues
23
+
24
+
- Filed **#1547**: `vex/product.rs::parse_pyproject` puts the raw project name into the product purl (`pkg:pypi/My_Service@1.2.0`) instead of the normalized pypi name (`my-service`). Reproduces in hosted `--vex` (Poetry 1.8.5, `[tool.poetry]`) and agent + standalone `vex` (Poetry 2.5.1, `[project]`). https://github.com/SocketDev/socket-patch/issues/1547
25
+
26
+
## False positives ruled out
27
+
28
+
- The first hosted → vendored takeover on 2.1.4 failed (exit 1, "already declares a [package.source] for six") because the mock origin isn't the patch server. With `SOCKET_PATCH_SERVER_URL` set it passes. Harness artifact.
29
+
30
+
## Next
31
+
32
+
1. Re-check #1547 once fixed, and #450 / #1105 / #1184.
Copy file name to clipboardExpand all lines: state/poetry.md
+20-5Lines changed: 20 additions & 5 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,6 +1,6 @@
1
1
[agent] Progress ledger for the scheduled Poetry bug-hunt routine (label pm:poetry).
2
2
3
-
Last updated: 2026-10-14 (run 21), main `6a06ddd` (includes #1506, the #1503 fix), latest release **v5.0.1**. Run 9 re-measured the cells marked "r9". Runs 10–21 have their own tables below. #327, #329, #671, #866, #945, #1023, #1024, #1136, #1282, #1447and #1503 are closed. macOS / Windows cells that still show #327 / #329 haven't been re-run, because probe branches are blocked.
3
+
Last updated: 2026-10-14 (run 22), main `fc1b4f9` (includes #1529, the #1527 fix), latest release **v5.0.1**. Run 9 re-measured the cells marked "r9". Runs 10–22 have their own tables below. #327, #329, #671, #866, #945, #1023, #1024, #1136, #1282, #1447, #1503and #1527 are closed. Open: #450, #1547. macOS / Windows cells that still show #327 / #329 haven't been re-run, because probe branches are blocked.
4
4
5
5
## Coverage matrix
6
6
@@ -14,7 +14,7 @@ Cells are "pass", "fail #N" or "untested". Hosted and vendored cells use a local
| 2.5.1 | Same plus a stale `[tool.poetry].name`|`product_undetected` (deliberate: Poetry 1.x and 2.x build different names; see Known non-bugs) |
268
+
| 2.1.4 | Full row: hosted, vendored, agent in-project + out-of-tree, takeovers both ways, `repair` with the wheel deleted, rollback | pass |
269
+
| 1.8.5, 2.5.1 |`[[tool.poetry.source]]` with `priority = "explicit"` / `"supplemental"` that six doesn't come from: hosted + vendored, fresh install | pass (not refused, patched) |
270
+
| 1.8.5, 2.5.1 | VEX product purl for a project named `My_Service` / `Demo_Pkg.Core` (hosted `--vex`, agent + `vex`) |**fail #1547** (raw name, not normalized) |
271
+
| 2.5.1 |#450| still fails |
272
+
| macOS / Windows | anything | blocked (deleting `bughunt/poetry/*` still denied) |
273
+
262
274
## Backlog
263
275
264
-
1. Re-check #1527 once fixed, plus the variant where `[tool.poetry]`also carries a stale `name` beside `[project].name` + dynamic version.
276
+
1. Re-check #1547 once fixed (also the `[tool.poetry]`layout and a dotted name).
265
277
2. Re-check #1105 (hosted A → vendored B, warm venv), #1184 (export residual keep) and #450 once fixed.
266
278
3.**Lead (run 14):** with `virtualenvs.create = false`, the project global fallback patches the system interpreter's dpkg-owned copy. That follows from #538's "patch every copy" design and needs a maintainer call before anyone files it. Since #409 (#1419), a system-site venv that imports a base copy also patches that base copy, on purpose.
267
-
4. Concurrent `poetry install` during a scan. Untested Linux cells: 1.2.2 agent, 2.1.x, 1.0.10 vendored repair, 2.4.3 mode switch.
279
+
4. Concurrent `poetry install` during a scan. Untested Linux cells: 1.2.2 agent, 1.0.10 vendored repair, 2.4.3 mode switch, 2.1.x nameless / `[project].name` layouts.
268
280
5.**macOS / Windows re-checks** for closed #327 / #329, the #640 default paths, #866 on macOS, macOS XDG and the Windows Poetry 1.0/1.1 env hash. All need probe branches.
269
-
6. Probe branches are still blocked: `bughunt/poetry/20260930-venv-discovery` and `bughunt/poetry/20260930-windows-modes` still exist, and deletion was denied again in run 21 (runs 9–21). A maintainer needs to delete them and allow deleting `bughunt/poetry/*`.
281
+
6. Probe branches are still blocked: `bughunt/poetry/20260930-venv-discovery` and `bughunt/poetry/20260930-windows-modes` still exist, and deletion was denied again in run 22 (runs 9–22). A maintainer needs to delete them and allow deleting `bughunt/poetry/*`.
270
282
7. Docs: `installer.modern-installation = false` (Poetry 1.4–1.8) keeps a warm same-version install, but the "Installer boundaries" table says 1.4–1.8 replace it. Line 24 still says CRLF / legacy `files` get a single-line inline array (changed by #1185). CLI_CONTRACT's error-code row for `mode_ambiguous` still names only agent + vendored state (the mode-resolution paragraph has the #1437 hosted-pin case).
- A vendored scan killed partway leaves `.socket/apply.lock` and some wheels under `.socket/vendor/pypi` with the lock untouched; the next scan proceeds and converges. Not a bug.
342
354
- A hosted scan of a one-package Poetry project finishes in under 50 ms, so a SIGKILL can't land mid-write. The lock is written by atomic replace (CLI_CONTRACT "Staged takeover"). Not a bug.
343
355
- The source-pin guard (`pyproject_source_constraints`) reads `[tool.poetry.dependencies]`, `dev-dependencies` and every `group.*.dependencies`; a group-only pin is covered.
356
+
-`[project].name` + `dynamic = ["version"]` + a different `[tool.poetry].name`: product detection returns `product_undetected` on purpose (`product.rs``pyproject_name_version`), because Poetry 2 builds `[project].name` ("[tool.poetry.name] … will be ignored") and Poetry 1.x builds `[tool.poetry].name`. Use `--product`. Not filed.
357
+
-`explicit` / `supplemental``[[tool.poetry.source]]` entries that six doesn't resolve from are not refused by hosted or vendored (r22). The refusal only covers a source six actually uses.
358
+
- Hosted → vendored takeover against a mock origin fails with "already declares a [package.source] for six; refusing to overwrite a user-authored source" unless `SOCKET_PATCH_SERVER_URL` names the mock (the hosted-origin rule). Harness artifact.
0 commit comments