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 1f78d63
Browse filesBrowse the repository at this point in the historyBrowse files
Copy file name to clipboardExpand all lines: doc/01-summary.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -267,7 +267,7 @@ Several patterns show code that outlived its purpose:
267
267
| 10 | C |**Retire `--download-mode` and the diff path** (decided #792, v5): `diff` re-downloads every blob anyway on a cold cache; delete the diff machinery, the flag and `qbsdiff`. |~0.4K prod, 1K test, −1 dep | L | Part 7 | {{C25}} |
268
268
| 11 | C |**Delete verified dead/vestigial code:**`--vendor-source`, `VendorSource`, `PackageSource`, `vend_installed!`, `mem_blobs`, `lock_inventory/wired.rs`, dead vlt ledger helpers, `save_redirect_state` + its group-commit entry, the empty Deno extractor, the `switched_off("group_commit")` oracle path. |~1K prod, ~1K test | L | Parts 4–7 | {{E28,E41,C23}} |
269
269
| 12 | M |**Utility consolidation:** one HTTP retry/timeout primitive; one validated purl builder family (42 hand-built `format!("pkg:…")` and 24 prefix checks in production code); one digest/SRI helper set (fixing the `sha256_hex` name collision: one copy validates, three compute); one line-ending policy; one env-truthiness vocabulary (there are three); one UUID grammar (there are four). | 1–1.5K prod | L | Parts 4, 7 | {{C15,C17,C18,C19,C20,E16}} |
270
-
| 13 | C |**Embedded `--vex`** (15 flag instances on 3 commands, ~600 lines of glue, plus bypass sets that couple VEX correctness to each caller) → `fix && vex -O`. | 0.6K prod | L (MAJOR) | Parts 2, 6 | {{E42,C05}} (spellings half decided #966) |
270
+
| 13 | C |**Embedded `--vex`** (15 flag instances on 3 commands, ~600 lines of glue, plus bypass sets that couple VEX correctness to each caller) → `fix && vex -O`. | 0.6K prod | L (MAJOR) | Parts 2, 6 | {{E42,C05}} (spellings half removed, #1031) |
271
271
| 14 | S |**Simplify per-package-manager auto-config:** npm `allow-remote` (re-implements npm's `ini` and config layering, ~900 lines), pnpm `trustLockfile` (~450; three open corruption bugs), the vlt warm-tree heal (installed-tree surgery in a lockfile-only mode), parallel rewriter groups (benchmark them or drop them). | 1–1.5K prod | M | Part 3 | {{E34}} |
272
272
| 15 | C |**Self-update:** keep the binary swap and the notifier (decided #983); harden it: retry, stall timeout, streaming download, live post-release test. **Telemetry:** one `track(Event)` + a shared client instead of 19 wrappers and ~45 token/org call sites. |~0.3K prod | L | Parts 2, 7 | {{C22,C36}} |
273
273
| 16 | M |**Tests:** 207 → ~25 binaries (needs `RunCtx` first, to drop the env-mutating `#[serial]`); a `socket-patch-test-support` crate (`binary()` is defined in 103 files, `git_sha256` in 86, 14 divergent `scrub_socket_env`, and 10 test files with no env scrub at all); retire the oracles; triage covgap; snapshots instead of 328 sentence assertions. | 15–25K test lines; minutes off the Windows critical path | M | Part 8 | {{C30,C31,C32,E35}} |
Copy file name to clipboardExpand all lines: doc/02-cli.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -99,7 +99,7 @@ A sliding-window copy-paste detector finds little *literal* duplication. **The d
99
99
-**Dead or vestigial flags:**
100
100
-`--vendor-source`: core's `VendorSource` has **one variant**, and `build` is an error.
101
101
-`--download-mode` is an unvalidated `String`, checked only where it is used. That breaks the "fail loud on typo" posture the same file applies to `--ecosystems`. On `045d7ec` a bad value fails `apply` and `repair` with exit 1 and `apply_failed`/`repair_failed`, while `apply --check`, `rollback`, `list` and `vendor` exit 0; `--vendor-source bogus` is a clap usage error (exit 2). {{C45}}
102
-
-**Deprecated spellings and aliases:**`scan --apply` (hidden), `scan --vendor` (hidden), `get --no-apply`, and the `download` and `gc` aliases. `resolve_mode_flags` (`scan/mod.rs:184–246` on `9c43dfc`) exists mainly to reconcile these. Only `--apply`/`--vendor` are called deprecated, and nothing warns: on `9c43dfc` both run silently with no removal date, while the contract makes `--no-apply`, `download` and `gc` permanent (MAJOR to remove). `--sync` is a documented shorthand, not a deprecated spelling. **Decided (#966):** all five are removed in v5 with no warning release; `resolve_mode_flags`shrinks to the `--sync` vs `--mode` check, the hosted default and the global-scope check;`--sync` stays. {{C05}}
102
+
-**Deprecated spellings and aliases:**`scan --apply` (hidden), `scan --vendor` (hidden), `get --no-apply`, and the `download` and `gc` aliases. **Removed in v5 (#966, #1031):** all five are gone with no warning release and are now clap usage errors (exit 2); `resolve_mode_flags`keeps only the `--sync` vs `--mode` check, the hosted default and the global-scope check.`--sync` stays as the shorthand for `--mode agent --prune`. {{C05}}
103
103
-**Name collisions:**
104
104
-`--package` is a value list on `scan` but a boolean type-forcer (`-p`) on `get`.
105
105
-`--check` on `apply` audits *Go `replace` redirects only*; on `vendor` it audits artifacts and JVM wiring.
Copy file name to clipboardExpand all lines: doc/03-hosted.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -203,7 +203,7 @@ For uv, pylock, poetry, pdm, hatch, vlt, maven and bun.lockb, the module's own f
203
203
### New findings since the review
204
204
205
205
- {{E50}}: hosted `rewrite_nuget` and upstream restore rewrite every `packages.lock.json` entry of the patched id, in every target framework, whatever its `resolved` version; vendored `locked_at` only touches entries at the patched version. `packages.lock.json` has four walkers (hosted, restore, vendored, VEX).
206
-
- {{E52}}: `vendor/go_sum_edit.rs` keeps free `upsert_module_lines` / `has_module_version` / `remove_exact_module_version_lines` with no production caller, re-implemented by the `GoSumEditor` the hosted Go rewriter uses; the free copies survive only as a test oracle, and the pure hosted codec lives in `vendor/`.
206
+
- {{E52}}: every go.sum edit goes through the `GoSumEditor` the hosted Go rewriter uses; the free oracle-only copies were deleted (#1103). The pure hosted codec still lives in `vendor/go_sum_edit.rs`, not `formats/`.
207
207
- {{E15}}: the hosted cargo planner `plan_cargo_toml` is a line scanner, gated by a second `toml_edit` classifier of the same declarations. It refuses `serde = { version = "1", features = [⏎ "derive",⏎] }` as "inline table does not close on its line", although cargo and `toml_edit` accept it, so hosted skips a crate that vendored mode handles. Upstream restore unpins with a third, line-level grammar.
208
208
- {{E58}}: the hosted-vlt ledger helpers left without a caller by #277 were deleted (#1141); `UpstreamClient::seed_rubygems_sha256` is still a test helper compiled into production.
209
209
- {{E73}} October 7: "is this hosted patch pinned" is decided four ways (`confirm`, `mark_pinned`, `memory_recorded`, discovery); lockless NuGet/Cargo pins are attested in-run then reported contested forever (PR #1058).
- Merged since the last entry: #1103 (E52 slice) and maintainer draft #1031 (#966); #1185 was recorded by the 23:52Z run. Register: E52 → partly fixed (#1103); C05 → partly fixed (#1021, #1031). Living document rewritten line-locally: `doc/03-hosted.md` (E52 bullet: free go.sum copies deleted), `doc/02-cli.md` (legacy spellings removed in v5), `doc/01-summary.md` (§3 row 13).
5
+
- Ranking: 14 open `arch-refactor/*` / `agent/fix-*` PRs change 304 files; every CLI command module except a few still sits in one. #989, #717, #1098 (`ecosystem_dispatch.rs`, `vex_consumed.rs`) and #1129 (`npm_crawler.rs`) stay blocked. Among free items, #905 slice 3 scored highest (D ≈4, L): `redirect/vlt.rs`, `go_mod_edit.rs`, `jvm/gradle.rs` and `lock_inventory/pypi.rs` left the open PRs' file sets. The #595 cargo child (S 3) ranks next.
- Lessons: the BOM guard cuts "production" at the first `#[cfg(test)]\nmod tests`; a test module with any other name placed earlier in a file counts as production, so name a new one `tests`.
| E47 | 3 | Decide: support tiers for `bun.lockb` writes, vendored pnpm 7/8, vlt pre-1.0 encodings and hosted pnpm ≤ 6, and whether hosted JVM ships as beta. | §5; §6 Q3; 4.6 |#1156| decision #1156|
52
52
| E48 | 3 | Discovery re-implements package-manager layouts (venv-name hashing, global prefixes, the pnpm store). Target: ask the package manager (`poetry env info -p`, `pipenv --venv`, `npm query`, …). | 2.2 #2; 6.6 || rejected; not adopted (#1000) |
53
53
| E50 | 2 | Hosted `rewrite_nuget` and upstream restore rewrite `packages.lock.json` entries of the patched id at other versions (every framework); vendored `locked_at` filters by version. Four lock walkers. | new finding |#593| filed #593|
54
-
| E52 | 3 |`vendor/go_sum_edit.rs`: free go.sum helpers have no production caller and are re-implemented by `GoSumEditor`; the pure hosted codec lives in `vendor/`. | new finding |#631|in PR #1103; slice: oracle copies deleted, the move to `formats/golang/sum.rs` remains |
54
+
| E52 | 3 |`vendor/go_sum_edit.rs`: free go.sum helpers have no production caller and are re-implemented by `GoSumEditor`; the pure hosted codec lives in `vendor/`. | new finding |#631|partly fixed (#1103): the oracle-only free helpers are deleted and every go.sum edit goes through `GoSumEditor`; the move to `formats/golang/sum.rs` remains |
55
55
| E53 | 2 | Vendored pnpm wrote the root `package.json` with `serialize_json`. | new finding |#662| fixed (#810) |
56
56
| E54 | 3 | Poetry and PDM restored line endings with two rules. | new finding |#695| fixed (#703) |
| E58 | 3 | Production `pub fn`s with no production caller, orphaned by #277 (`committed_artifact_intact`, `go_sum_edit::remove_lines`, hosted-vlt ledger helpers, three test-only helpers). | new finding; 3.6 |#782| partly fixed (#1141: hosted-vlt ledger helpers, `read_project_file` gated); `committed_artifact_intact`, `remove_lines`, `seed_rubygems_sha256`, `copy_manifest_tag` remain in open-PR files |
59
59
| E59 | 2 | Vendored gem `edit_lock` searched only the first `GEM` section. | new finding |#779| fixed (#805) |
60
60
| E61 | 2 | The vendored-reference scan missed NuGet, Maven and `hatch.toml` wiring. | new finding |#832, #958| fixed (#1015) |
61
61
| E63 | 2 | Hosted Maven splices the API `maven_suffixed_version` into `pom.xml` unchecked, while hosted Gradle refuses a malformed suffix; four suffix builders (executed twice). | new finding |#882| filed #882|
62
-
| E64 | 2 | No shared BOM helper (4 `strip_bom` copies, ~50 inline strips); `formats::pnpm`'s `lockfileVersion` readers skipped it (executed twice). Symptoms #903, #904, #623. | new finding; 4.4 |#905| partly fixed (#909, #1117, #1160): `formats::text` helper, pnpm readers and 19 inline strips moved; 15 files remain on `PENDING_INLINE_BOMS`|
62
+
| E64 | 2 | No shared BOM helper (4 `strip_bom` copies, ~50 inline strips); `formats::pnpm`'s `lockfileVersion` readers skipped it (executed twice). Symptoms #903, #904, #623. | new finding; 4.4 |#905| partly fixed (#909, #1117, #1160): `formats::text` helper, pnpm readers and 19 inline strips moved; 15 files remain on `PENDING_INLINE_BOMS`; slice 3 (4 files) in PR #1191|
63
63
| E65 | 3 | Every vendored sink discards `force`/`sources`, yet `vendor --force` docs promise a tolerance and a warning nothing emits (executed twice). | new finding; 5.2 |#923| filed #923|
64
64
| E66 | 2 | Vendored Poetry picks its forward splicer by line ending (`utils::poetry_lock` vs the `toml_surgery` scanner), with different `files` shapes and checks (executed twice). | new finding; 5.4 |#936| fixed (#1185) |
65
65
| E68 | 2 | Vendored gem forward treats any Gemfile containing the copy path as wired, revert needs the exact line: a trailing comment leaves the lock restored and the Gemfile on `path:` (executed 3×). | new finding; 5.3 |#988| filed #988|
| C02 | 1 | The patch API clients set no HTTP timeout. | §1 #2|#570| fixed (#581) |
8
8
| C03 | 1 |`vendored_takeover` ignored `kept_artifact` on a drift-keep. | §1 #3; 2.4 |#568| fixed (#708) |
9
9
| C04 | 1 | Vendored Hatch ran a planted `hatch`. | §1 #4; 7.3 |#613| fixed (#617) |
10
-
| C05 | 1 |`SOCKET_FORCE` is bound to `vendor --force`, `apply --force` and `self-update --force`, so forcing a self-update also forces past hash checks. Merged C35: drop the deprecated spellings and decide embedded `--vex`. `vendor --force` promises a tolerance nothing implements (#923). | §1 #6; R9; R10 |#615, #966, #923| partly fixed (#1021); in PR #1031; decided 2026-10-07: `SOCKET_FORCE` binding removed (#615), v5 removes legacy spellings (#966); embedded `--vex` undecided |
10
+
| C05 | 1 |`SOCKET_FORCE` is bound to `vendor --force`, `apply --force` and `self-update --force`, so forcing a self-update also forces past hash checks. Merged C35: drop the deprecated spellings and decide embedded `--vex`. `vendor --force` promises a tolerance nothing implements (#923). | §1 #6; R9; R10 |#615, #966, #923| partly fixed (#1021, #1031); decided 2026-10-07: `SOCKET_FORCE` binding removed (#615), legacy spellings removed in v5 (#966, #1031); embedded `--vex` undecided |
11
11
| C06 | 1 |`get` round-trips its arguments through `DownloadParams` and `..GlobalArgs::default()`, which silently resets `offline`, `patch_server_url` and more. `get` also builds a fake `ApplyArgs`, and `get` and `scan` call each other. | 2.1; 2.3; R7 || rejected; resets inert on 045d7ec, cycle folded into C12 |
12
12
| C07 | 1 | The URL builders disagree. When org auto-resolve fails, `patches_path` sends JSON calls to `/v0/orgs/default/…`, while `binary_url` and `vendor_package_url` send the same client to the public proxy. Telemetry has a fourth copy of this logic. | 7.2 |#648| in PR #1041; decided 2026-10-07: org resolved once per run, failed auto-resolve → whole run on the proxy |
13
13
| C08 | 2 | Repo hygiene: a stray `.github/actions/actions/cache/<sha>/.vscode/launch.json`, a README that documents v5 but whose installer installs v4, and 39 references to a "DESIGN §" document that doesn't exist. (The dead CI path filters go to the CI janitor.) | §1 #8; 8.5 J |#649| rejected; #649 closed not planned 2026-10-08 |
0 commit comments