Files
rclone/docs/plans/001-protondrive-tier1-workspace/task-19-review.md
T
2026-11-12 15:12:51 +01:00

3.2 KiB

Task 19 review (b667a1ab0..cf7577dc1)

Spec Compliance

  • ✅ Spec compliant (with the handoff "Task 19" notes applied: base 06700aaf2 for old binary, TODO entry followed).
  • Verified: git diff of go.mod/go.sum is 11 + 20 deletions, no additions. Removed: Proton-API-Bridge, go-proton-api, relvacode/iso8601, ProtonMail/gluon, goquery, cascadia, juniper, go-message, go-vcard, resty/v2, logrus (plus their go.sum lines). Nothing else changed. go mod tidy -diff is clean, go build ./... passes, go mod verify ok, no .go file imports any removed module.
  • Not re-run (taken from report): size check, race suite, cross-compile, full go test ./....
  • ⚠️ cmd/bisync TestRcBackupDir failure is claimed pre-existing (also at 06700aaf2); not independently verified. Handoff said only cmd/serve/s3 was the baseline, so controller may want to eyeball it.

Strengths

  • crypto_diff_internal_test.go deleted; fixture helpers moved verbatim (crypto_internal_test.go:870-1010), -update branch and flag dropped cleanly, imports tidy, vet clean.
  • Frozen tests are not vacuous: checkOldLibFixture (crypto_internal_test.go ~930-1010) decrypts node keys, name, hash key, content key, block, block signature, manifest and xattrs, with require.NoError on each decrypt and assert.Equal against stored plaintexts; n==2 guards against a deleted fixture. Ran TestFrozenFixtures (file, folder) and TestFrozenFileFixture (legacy, v6): PASS. Fixtures (folder.json, file.json, file/{legacy,v6}/*) still present.
  • Docs: TODO entries closed/rewritten accurately, lost coverage and downgrade risk logged, DECISIONS entry honest, ARCHITECTURE rough-edge removed.

Issues

Critical

None.

Important

None.

Minor

  • docs/plans/001-protondrive-tier1-HANDOFF.md:56 still says "19-21 Not started" and the table at :55 says 1-18 implemented; the bullet at :64 was updated to say Task 19 is done, so the file contradicts itself. Update the table to 1-19 / 20-21.
  • docs/plans/001-protondrive-tier1-HANDOFF.md:378 (ruling 13) says Proton-API-Bridge stays in go.mod until Task 19; now historical. Acceptable as a decision record, but could note "removed in Task 19".
  • Lost coverage (multi-block, empty old-library files, downgrade compat with released rclone) is admitted and logged. Cheap partial mitigation not taken: the fixtures could not be regenerated, so multi-block old-library fixtures are impossible without the library; however the downgrade direction (new writer -> old reader) could have been kept as a committed fixture only by writing it with the old library before removal (e.g. one new-writer file blob plus a note). This is now only possible by checking out 06700aaf2/b667a1ab0. Suggest, if downgrade matters, a one-off generation from b667a1ab0 of a multi-block old-library file (e.g. 2 blocks) and a new-writer output, committed under testdata/oldlib/. Not blocking.
  • crypto_internal_test.go oldLibFixture comment still says "one block of content"; accurate for current fixtures.

Assessment

Task quality: Approved

Reasoning: go.mod/go.sum changes are pure, tidy-clean removals of only the two libraries and their exclusive dependencies, build passes, and the retained frozen-fixture tests perform real assertions that pass. Only a stale handoff status table remains.