WIP: DAV recorder v3 — measured Rust size stop (682 changed lines) #822
Draft
kayg
wants to merge 1 commit from
feat/dav-recorder-v3 into dev
pull from: feat/dav-recorder-v3
merge into: kayg:dev
kayg:main
kayg:fix/shared-row-swipes
kayg:feat/pass8
kayg:t3/paged-search-reconcile-final
kayg:feat/style-sheet-fixes
kayg:storage/wal-checkpoint-off-save-1051
kayg:feat/contrast
kayg:review/calendar-2
kayg:dev
kayg:feat/collections-db
kayg:fix/instant-keys-1056
kayg:feat/money-round
kayg:perf/stalls-1054
kayg:wip/tiering-v3-cold4
kayg:wip/tiering-v3-cold5
kayg:port/rows-actions
kayg:port/rows-drop
kayg:port/hidden-blocks
kayg:port/rows
kayg:port/port-tables
kayg:port/port-tables-2
kayg:t3/mail-1011-liveness
kayg:port/devices
kayg:port/port-attachments
kayg:port/port-attachments-2
kayg:port/port-attachments-3
kayg:docs/design-consistency
kayg:docs/engineering-standards
kayg:fix/rusqlite-0.41-rustsec-2026-0459
kayg:feat/iphone-fixes
kayg:shared/restore-and-stale-918-919
kayg:fix/phone-top-band-contrast
kayg:feat/notes-approve
kayg:perf/soak-max-gate
kayg:feat/files-s1-identity
kayg:fix/lifecycle-event-id
kayg:feat/quickfix
kayg:wip/tiering-v3-cold
kayg:perf/web-mockup-frame-fixes
kayg:port/contacts-merge
kayg:port/contacts-edit
kayg:test/shared-room-no-deleted-text
kayg:perf/first-paint-credits
kayg:fix/shared-history-after-grant
kayg:fix/phone-swipe-regressions
kayg:feat/contrast-r1
kayg:review/sharing-pr3-review
kayg:feat/tiering-v3-s2-tags
kayg:feat/folder-drop
kayg:fix/deskpills-lazy-share
kayg:feat/sharing-s1-pr3
kayg:tmp/money-round-before
kayg:fix/phone-pane-backdrop-roots
kayg:fix/palette-preload-chips
kayg:fix/invite-defaults
kayg:port/tasks-matrix
kayg:fix/restore-green-gates
kayg:fix/sharing-fast-path-hardening
kayg:t3/photos-s1
kayg:feat/tiering-v3-s1-namespace
kayg:notes-archive-hide
kayg:feat/tasks-actions
kayg:t3/photos-plan-slice-one
kayg:feat/whiteboard-s1
kayg:t3/paged-search-reconcile
kayg:t3/smooth-pane-transitions
kayg:t3/index-position-startup-scan
kayg:fix/private-staging-759b-r2
kayg:feat/dav-transport
kayg:feat/imap-notes-fetch
kayg:feat/imap-notes-projection
kayg:feat/imap-notes-readonly
kayg:feat/imap-notes-auth
kayg:feat/imap-notes-server-foundation
kayg:docs/undo-block-ids-plan
kayg:fix/undo-768
kayg:proto/block-identity-v7d
kayg:issue/carddav-read-perf-fix-r2
kayg:issue/carddav-read-r2
kayg:docs/imap-766-plan-v2
kayg:docs/imap-notes-plan
kayg:docs/quota-plan-2
kayg:fix/parallel-test-flakes
kayg:feat/contacts-companion-pure
kayg:docs/calendar-backend-v2-plan
kayg:feat/calendar-ical-converter
kayg:docs/tasks-writes-v2-plan
kayg:docs/carddav-writes-v2-plan
kayg:docs/contacts-import-v2-plan
kayg:issue/610-pm-midnight
kayg:feat/calendar-v2-s1-containment
kayg:docs/dav-recorder-v2-plan
kayg:plan/previews-865
kayg:plan/save-log-durable-entry
kayg:fix/e2e-data-on-ram
kayg:feat/appwindow3
kayg:feat/appwindow2
kayg:feat/appwindow
kayg:feat/money-p1
kayg:feat/keys-sheet
kayg:review/calendar-2-themes
kayg:feat/smooth-cursor
kayg:fix/float-style
kayg:review/calendar-2-float
kayg:release/2026-11-06-hotfix
kayg:archive/port/rows-drop-code
kayg:archive/port/rows-actions
kayg:archive/port/rows
kayg:scratch/tasks-894-ui-gates
kayg:review/calendar-2-night-wip
kayg:release/2026-11-05
kayg:archive/feat/tiering-v3-s1-namespace
kayg:archive/flaky/rows-drop-fixed
kayg:archive/flaky/rows-actions
kayg:archive/feat/tiering-v3-reader
kayg:archive/feat/tiering-v3-roots
kayg:archive/flaky/rows
kayg:sim/bm15-final
kayg:sim/bm15-fix
kayg:sim/bm15-bis-932
kayg:sim/bm15-bis-909
kayg:sim/bm15
kayg:sim/bm15-bis-887
kayg:perf/tiering-option-b
kayg:port/style-3
kayg:port/style-2
kayg:port/style
kayg:fix/sw-lazy-precache
kayg:fix/vim-w-waits-for-save
kayg:fix/signout-test-races
kayg:fp-scratch/all
kayg:sim/bm15-first-paint
kayg:archive/bm15/rows-drop
kayg:archive/bm15/rows-actions
kayg:fix/palette-snippet-contrast
kayg:archive/bm15/rows
kayg:archive/bm15/hidden
kayg:archive/plan/save-log-durable-entry
kayg:mock/money-fix2
kayg:archive/fix/e2e-data-on-ram
kayg:mock/appearance-all
kayg:mock/pill-press
kayg:archive/docs/design-consistency
kayg:mock/auto-swipes
kayg:mock/mail-actions
kayg:archive/feat/mail-p1
kayg:mock/money-static
kayg:archive/review/standards-917
kayg:archive/docs/engineering-standards
kayg:perf/tiering-761-fix
kayg:mock/type-audit
kayg:mock/third-pane
kayg:feat/contacts-import-v2-s1
kayg:perf/executor-hot-path
kayg:archive/port/hidden-blocks
kayg:archive/port/devices
kayg:scratch/executor-on-894
kayg:scratch/executor-spans2
kayg:scratch/executor-spans
kayg:train/2026-11-03-bm14c
kayg:archive/port/rows-drop
kayg:feat/tiering-761-d-scale
kayg:feat/tiering-761-c-index
kayg:feat/tiering-761-b-reader
kayg:archive/review/sharing-pr3-review-9fec3d1f
kayg:train/2026-11-03-bm14b
kayg:perf/ports-lazy-budgets
kayg:feat/tiering-761-a-migration
kayg:train/2026-11-03-bm14
kayg:train/2026-11-03-bm12
kayg:archive/review/sharing-pr3-review
kayg:archive/feat/sharing-s1-pr3
kayg:train/2026-11-03-bm11
kayg:archive/feat/imap-notes-fetch
kayg:train/2026-11-03-bm10
kayg:archive/review/sharing-pr3-review-code
kayg:archive/plan/previews-865
kayg:train/2026-11-02-bm9
kayg:archive/port/port-attachments-3
kayg:archive/port/contacts-merge
kayg:fix/motion-audit-859
kayg:train/2026-11-02-bm8
kayg:archive/scratch/bm8-prep
kayg:archive/port/port-pickers
kayg:archive/port/port-tables-2
kayg:archive/port/port-tables
kayg:archive/feat/sharing-s1-pr3-code
kayg:archive/scratch/bm7-fixed
kayg:train/2026-11-02-bm7
kayg:archive/fix/parallel-test-flakes-code-minipc01
kayg:train/2026-11-02-bm6
kayg:docs/imap-766-readonly-slice
kayg:research/788-diagnosis
kayg:archive/fix/parallel-test-flakes
kayg:archive/perf/pr792-cold-index-edit
kayg:docs/sharing-slice-1
kayg:archive/docs/imap-766-plan-v2
kayg:feat/dav-recorder-v2
kayg:archive/docs/dav-recorder-v2-plan
kayg:spike/imap-766-s0-cases
kayg:archive/fix/undo-768
kayg:feat/dav-recorder
kayg:archive/docs/contacts-import-v2-plan
kayg:archive/feat/calendar-ical-converter
kayg:feat/contacts-import
kayg:perf/cold-growth-on-764
kayg:perf/cold-growth-on-tiering
kayg:archive/docs/tasks-writes-v2-plan
kayg:archive/docs/calendar-backend-v2-plan
kayg:archive/feat/contacts-companion-pure
kayg:feat/tasks-set-status
kayg:feat/tasks-move-reorder
kayg:archive/docs/carddav-writes-v2-plan
kayg:archive/feat/calendar-v2-s1-containment
kayg:feat/tasks-delete-promote-duplicate
kayg:archive/feat/dav-transport
kayg:archive/fix/carddav-rebuild-r1
kayg:archive/fix/carddav-retention-r1
kayg:feat/carddav-writes
kayg:perf/quota-on-tiering
kayg:perf/quota-simple
kayg:perf/cold-growth-on-quota-stack
kayg:feat/calendar-identity
kayg:feat/calendar-event-parser
kayg:feat/calendar-props-maps
kayg:port/glass-when-ring
kayg:feat/tiering-761-s1
kayg:wip/10by32-01-impl-759b-scratch-20261030
kayg:wip/6by32-01-bm3-webkit-pause-20261030
kayg:wip/10by32-01-bm3-chromium-pause-20261030
kayg:wip/6by32-01-tier-761-s1-pause-20261030
kayg:spike/imap-766-s0
kayg:wip/6by32-02-calternal-pause-20261030
kayg:wip/8by64-01-review-688-pause-20261030
kayg:wip/6by32-01-verify-744-pause-20261030
kayg:wip/6by32-01-verify-742-pause-20261030
kayg:fix/private-staging-759b
kayg:wip/6by32-01-review-748-pause-20261030
kayg:wip/6by32-01-review-733c-pause-20261030
kayg:wip/6by32-01-review-733b-pause-20261030
kayg:wip/6by32-01-perf-idle-8-pause-20261030
kayg:wip/6by32-01-perf767-base-pause-20261030
kayg:wip/6by32-01-perf767b-767-pause-20261030
kayg:wip/6by32-01-perf767b-764-pause-20261030
kayg:wip/6by32-01-perf767-767-pause-20261030
kayg:wip/6by32-01-perf767-764-pause-20261030
kayg:wip/6by32-01-lists-b-pause-20261030
kayg:wip/6by32-01-ids-verify5-pause-20261030
kayg:wip/6by32-01-ids-verify4-pause-20261030
kayg:review/calendar-month
kayg:wip/10by32-02-undo-768-20261030
kayg:test/ids-verify3
kayg:wip/10by32-02-bm3-chromium-20261030
kayg:wip/10by32-01-review-753-20261030
kayg:wip/10by32-01-perf-idle-2-20261030
kayg:wip/10by32-01-bm2-webkit2-20261030
kayg:plan/759b-staging
kayg:train/2026-10-30-bm2
kayg:review/758b-tests
kayg:review/758-tests
kayg:review/764d-tests
kayg:review/767b-tests
kayg:review/preview-2026-10-29
kayg:review/767-tests
kayg:docs/tiering-731-plan
kayg:wip/c6b02-when2
kayg:wip/c6b02-tasks-create-fix5
kayg:wip/c6b02-settings-frost-mock
kayg:wip/c6b02-settings-frost-base
kayg:wip/c6b02-settings-frost
kayg:wip/c6b02-ring
kayg:wip/c6b02-review-733d
kayg:wip/c6b02-bm1-full-a
kayg:wip/compute02-when-field
kayg:wip/compute02-webkit-lists-repro
kayg:wip/compute02-train-bl2-dev
kayg:wip/compute02-dev-green-pw164
kayg:docs/deploy-plan
kayg:review/764c-tests
kayg:review/764b-tests
kayg:review/748g-tests
kayg:review/764-tests
kayg:review/759b-tests
kayg:fix/storage-owner-liveness-642
kayg:fix/storage-fix-7
kayg:wip/compute02-storage-fix-7
kayg:review/759-tests
kayg:feat/tiering-731
kayg:wip/tiering-731-first-attempt
kayg:wip/compute02-storage-fix-1
kayg:review/754g-tests
kayg:perf/idle-honest-2
kayg:review/754f-tests
kayg:review/754e-tests
kayg:review/755-tests
kayg:review/754d-tests
kayg:review/754c-tests
kayg:review/754b-tests
kayg:review/754-tests
kayg:fix/storage-private-tmp-642-dev
kayg:wip/compute02-verify-750
kayg:test/ids-verify5
kayg:test/ids-verify4
kayg:fix/storage-exact-file-quarantine-642
kayg:wip/compute02-verify-740
kayg:perf/one-flush-save
kayg:review/calendar-static
kayg:wip/compute02-verify-737
kayg:review/indexing-ring
kayg:review/when-field-2
kayg:wip/compute02-review-733
kayg:proto/block-identity-2-review
kayg:proto/block-identity-review
kayg:wip/c6b02-tc-design
kayg:review/when-field
kayg:issue/tasks-create-ids
kayg:issue/tasks-create
kayg:review/combined
kayg:wip/compute02-review-combined
kayg:review/task-polish
kayg:review/top-buttons
kayg:review/q1-q5
kayg:train/2026-10-26-bl2
kayg:archive/wt-398h
kayg:archive/train-bm-proptest-seed
kayg:archive/integ325-293
kayg:archive/integ325-ci
kayg:archive/client-auth-review-baseline
kayg:archive/wt-sim-4853
kayg:archive/wt-sim-4811
kayg:archive/wt-448m
kayg:archive/wt-398a-allocator
kayg:issue/calendar-adr
kayg:archive/old/train/2026-10-23bk2
kayg:archive/old/train/2026-10-23bk
kayg:issue/469-mockup-9a
kayg:issue/smart-tasks-mockup
kayg:issue/469-menus
kayg:issue/652-signout-flake
kayg:issue/652-history-fix7
kayg:issue/652-history-fix6
kayg:archive/old/issue/spring-check-perf
kayg:issue/spring-check-perf
kayg:issue/659-rename-fast
kayg:archive/old/train/2026-10-21ar
kayg:issue/search-hardening-3
kayg:issue/652-history-fix5
kayg:issue/660-port-sheets-glass
kayg:issue/652-history-fix4
kayg:issue/652-history-fix3
kayg:issue/652-history-fix2
kayg:issue/652-history-flake
kayg:train/2026-10-21an
kayg:issue/settings-admin-port
kayg:issue/search-port
kayg:train/2026-10-20am
kayg:issue/storage-split-fix2
kayg:issue/storage-split
kayg:archive/old/issue/folder-ids-fix
kayg:train/2026-10-20al
kayg:archive/old/issue/folder-ids
kayg:train/2026-10-20ak
kayg:issue/tables-mockup
kayg:train/2026-10-19aj
kayg:train/2026-10-19ai
kayg:issue/469-merge-fixes
kayg:issue/sidebar-band
kayg:archive/old/issue/608-settings-spec
kayg:train/2026-10-19ah
kayg:issue/swipe-offscreen
kayg:train/2026-10-19ag
kayg:archive/old/issue/590-nlp-adr
kayg:archive/old/issue/587-event-after-write-2
kayg:train/2026-10-19af
kayg:archive/old/issue/587-event-after-write
kayg:issue/469-pill-room-c
kayg:issue/469-pill-room
kayg:train/2026-10-19ae
kayg:issue/469-narrow-handle
kayg:issue/397-ios-swipe-2
kayg:archive/old/issue/adrs-photos-files-tasks
kayg:issue/469-desk-fixes
kayg:archive/old/issue/auto-update-adr
kayg:issue/469-filter-gap
kayg:issue/469-port-1b
kayg:issue/442-opacity-flake
kayg:archive/397-ios-swipe-2
kayg:issue/327-web-fast-3
kayg:archive/old/issue/469-port-1
kayg:issue/469-port-1
kayg:issue/327-web-fast-2
kayg:archive/old/issue/327-web-fast
kayg:archive/old/issue/425-stt-bench-vq1
kayg:archive/old/issue/445-no-bleed
kayg:archive/old/issue/400-swipe-mockup-2
kayg:issue/426-client-review
kayg:issue/426-client-2
kayg:issue/426-client
kayg:archive/old/issue/476-safe-area-lab
kayg:archive/445-top-light-2
kayg:archive/old/issue/445-top-light
kayg:issue/471-blocks-mockup
kayg:archive/old/issue/448-links-app-2
kayg:archive/old/issue/448-links-app
kayg:archive/old/issue/398-cold-links
kayg:issue/434-442-small-2
kayg:issue/434-442-small
kayg:archive/old/issue/398-unload
kayg:archive/old/issue/445-bottom-band
kayg:issue/445-bottom-band
kayg:issue/351-rem-3
kayg:archive/312-views-mockup
kayg:issue/351-rem-2
kayg:issue/351-rem
kayg:archive/old/issue/327-first-note
kayg:issue/395-width-phone
kayg:archive/old/issue/327-typing
kayg:issue/396-ios-edges
kayg:issue/397-ios-swipe
kayg:archive/398-allocator
kayg:archive/old/issue/327-notes-index
kayg:issue/345-347-contrast-empty-2
kayg:archive/old/issue/44-arenas
kayg:issue/44-arenas
kayg:archive/integ325
kayg:archive/old/issue/327-perf-harness
kayg:archive/old/issue/44-thp
kayg:issue/44-thp
kayg:archive/old/issue/285-sticky-pills
kayg:archive/old/issue/44-trim-3
kayg:issue/44-trim-3
kayg:archive/old/issue/165-cards
kayg:archive/old/issue/165-picker-2
kayg:archive/old/issue/212-multi-select
No reviewers
Labels
Milestone
Clear milestone
No items
No milestone
Projects
Clear projects
No items
No project
Assignees
Clear assignees
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".
No due date set.
Dependencies
No dependencies set
Reference
kayg/calternal!822
Loading…
Reference in a new issue
No description provided.
Delete branch "feat/dav-recorder-v3"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Measured implementation checkpoint, size stop
Incomplete draft, not ready to merge. Feature implementation stopped after formatted incremental production Rust reached 682 changed lines, crossing the raised approximately 650-line stop condition. No Python exporter or captures were produced. No gates are waived. Head:
0ac548edc2d875506b889fd08b7d8febcaa0b419.Approved contract: #818 at
dfcd2fdf, revision 72227, plan review 72220. #820 stays paused at58e50394. This continues #822's earlier forecast checkpoint under the newly raised allowance.Actual size and boundary
Counts use
git diff --numstat 58e50394 -- crates/dav-replay/src, excluding unchanged reused code and removal ofsrc/record.rs:Separately: old custom proxy removed, 292 Rust lines; old proxy tests removed, 417 lines. New focused Rust tests: 97 lines. New Python production/tests: 0/0. Entire PR relative to starting
62c25e6dadds 5,253 production Rust lines and 2,090 Rust test lines, including unchanged #820 reuse. Do not interpret those reused lines as incremental adaptation.The raised budget includes closed headers and URI work. This is an actual formatted diff, not another estimate. No code was compressed and no gate removed to meet a count.
Implemented checkpoint and remaining work
Reused #820 typed comparison, bindings, independent seeds, continuity and mutation suites. Removed the custom proxy and disabled the
recordcommand. Closed header names, media/charset values, capability/method words and booleans replace raw string fields; Basic realms become slots and unknown/deferred headers refuse normalization. URI root/path, relative, HTTP and HTTPS origins are distinct, with authority slots. Schema objects use recursive serde deny-unknown. Four focused tests check deferred-header refusal, Basic realm omission, protocol-value differences and nested unknown/raw fallback refusal.Still incomplete: stock Nix mitmproxy packaging; Python exporter and finalizer; resource/receipt/sentinel/publication boundary; format-3 semantic slot/profile validation and v2 refusal; six-field card/XML narrowing; omitted error bodies; complete transport, dates and origin policy; mounted own-server scenarios; exact Radicale QName reproduction; historical through-proxy/privacy and mutation gates. Format intentionally remains 2 pending that work, so
validateis only an incomplete-loader checkpoint, not a format-3 acceptance gate. Existing synthetic fixture builders are test helpers, not an approved capture/export path. No privacy or completion guarantee is claimed for this checkpoint.Retain the approved costs and failure contract from #818: preflight/hash O(raw bytes), conversion O(B log I), one bounded decoded flow plus bounded slots and contained upstream overhead. Failure → effect → detection → recovery → test remains the plan's full table. This checkpoint does not establish those exporter bounds.
Gate table
| Plan first-PR gate | Result |
| Mounted own DAV → stock mitmdump → contacts-crud export/replay; duplicate UID 403/recovery | NOT RUN / NOT COMPLETE; measured size stop |
| Mounted own DAV → stock mitmdump → contacts-initial-sync export/replay | NOT RUN / NOT COMPLETE; measured size stop |
| R1 P1.1 independently seeded FN / UID swap / UID collapse | NOT COMPLETE; reused independently seeded comparison/tests, no v3 integration gate |
| R1 P1.2 actual advertised href following; root/relative/HTTP/HTTPS controls | NOT RUN / NOT COMPLETE; measured size stop |
| R1 P1.3 / R2 P1 capability headers and unknown offline refusal | NOT RUN / NOT COMPLETE; measured size stop |
| R3 P1 Apple/auth/Digest/cookie/Link capture survival and zero-output refusal | PARTIAL: four focused closed-header tests PASS; stock-capture survival/export gate NOT RUN |
| R3 P1 discovery/401/Radicale QName/CardDAV 403 | NOT RUN / NOT COMPLETE; measured size stop |
| Earlier privacy P1s from #789 | NOT RUN / NOT COMPLETE; measured size stop |
| R1 P2 media / length / ETag | NOT RUN / NOT COMPLETE; measured size stop |
| R2 P2 timestamps / charset / three date grammars | NOT RUN / NOT COMPLETE; measured size stop |
| R3 P2 cookie refusal / strict boolean / Basic state | NOT RUN / NOT COMPLETE; measured size stop |
| R3 continuity sync / ETag / 412 / header multiplicity | NOT RUN / NOT COMPLETE; measured size stop |
| Carried P3 cleanup reporting | NOT RUN / NOT COMPLETE; measured size stop |
| Completion sentinel / receipt / prefix / failure matrix | NOT RUN / NOT COMPLETE; measured size stop |
| Pre-reader framing / bounded reads / gzip / child limits | NOT RUN / NOT COMPLETE; measured size stop |
| Strict recursive v3 loader / slots / v2 refusal / determinism | PARTIAL: recursive serde unknown-field rejection added; format remains 2, semantic slot/profile loader NOT IMPLEMENTED |
| Persisted-file and stdout/stderr sentinel matrix | NOT RUN / NOT COMPLETE; measured size stop |
| Publication / I/O / ordering | NOT RUN / NOT COMPLETE; measured size stop |
| dev-01 x86_64 Nix import / FlowWriter–FlowReader / mitmdump smoke | NOT RUN / NOT COMPLETE; measured size stop |
| dev-02 aarch64 Nix import / FlowWriter–FlowReader / mitmdump smoke | NOT RUN / NOT COMPLETE; measured size stop |
| Linux fmt / clippy -D warnings / crate tests / Python tests | PARTIAL: dev-01 fmt and clippy PASS; crate suite FAIL; Python NOT RUN |
| Required-scenario inventory check | PENDING (exit 3); required real captures absent |
| Real Apple capture | PENDING; Mac GUI ready, capture is a later job |
| Calendar/Reminders and real iPhone | PENDING; separate follow-ups |
Linux verification
All commands ran through
netbird ssh claude@calternal-dev-01-compute02.vpn.kayg.org, in~/Developer/Worktrees/dav-recorder-v3-impl, inside the prescribed temporary Nix overlay. No build/test/install ran on code-minipc01. dev-01 had 315 GiB free before work (threshold 50 GiB); dev-02 read-only disk inspection showed 74 GiB free. No dev-02 build was started after the size stop.Full-suite failures: fixtures, replay, review_r2_mutations, review_regressions and schema retain v2 expectations for unknown headers/query/userinfo/calendar media; they need adaptation to the narrow v3 contract. The sixth target, closed_headers, had a test header named
unknowncolliding with fixed diagnostic textunknown header; corrected to a distinct sentinel and rerun 4/4. These results do not establish every historical P1 gate. Logs remain private on dev-01:~/dav-recorder-v3-rust.log,~/dav-recorder-v3-tests.log,~/dav-recorder-v3-final.log.No raw capture, receipt, fixture, account or proxy CA was created. No merge. Real Apple capture stays PENDING, with GUI readiness recorded separately from capture evidence.
Cleanup: removed the owned dev-01 worktree
target/(849 MiB); absence verified. Small logs and the worktree remain for resumption. No owned job is still running.WIP: DAV recorder v3 — stopped for Rust adaptation sizeto WIP: DAV recorder v3 — measured Rust size stop (682 changed lines)Implementation checkpoint pushed at
0ac548edc2d875506b889fd08b7d8febcaa0b419. Stopped under the raised size rule after rustfmt measured 682 incremental production Rust changed lines against #820 at58e50394: 478 added + 204 deleted, excluding unchanged reuse and removal of the old 292-line proxy. New Rust tests: 97 lines. New Python production/tests: 0/0.Reused typed replay/comparison and focused tests; disabled old record and removed custom proxy; added closed header/media/capability/boolean forms, slotted Basic realm, URI-origin forms and recursive serde unknown-field rejection. This remains incomplete: format is still 2, semantic format-3 loader and Python export/finalization are not implemented. No fixture or raw capture was produced.
Dev-01 Nix verification: fmt PASS; clippy
-D warningsPASS; focused closed-header tests 4/4 PASS. Full crate suite FAIL at114237b9in six targets; the new diagnostic-test naming collision is corrected and rerun, while v2 expectation adaptations remain unfinished. Inventory check PENDING, exit 3. The PR description contains the exact commands and full gate table. Both-architecture Nix/mitmdump and mounted own-DAV scenarios are NOT RUN, not passed. Real Apple capture stays PENDING; Mac GUI readiness is acknowledged, capture is a later job.All edits were on code-minipc01 in the owned worktree; all builds/tests ran on dev-01 through netbird ssh/Nix/slot. Commits pushed after each step; no merge. Deleted the owned 849 MiB target directory and verified absence. No owned job remains running.
PR #822, head
0ac548edc2, gates partial/failed/not run (Apple PENDING), actual lines Rust adaptation +478/-204=682; new Rust tests 97; Python 0.Paused (orchestrator, 2026-11-01)
This PR stops here at
0ac548ed, and I'm pausing it on purpose:/dav/, because #782 added only app-password auth. So there's nothing to record or replay against for a while.Resume when: the CardDAV server slice (#807 writes plan, plus the read path) is on dev. At that point, redo the size estimate against the real server surface before writing code. Plan v3 (#818) stays approved as the design. The checkpoint branch stays as it is.
kayg referenced this pull request2026-11-05 23:21:11 +00:00
Housekeeping #1009 status: audited head
0ac548edc2d875506b889fd08b7d8febcaa0b419against devcd7f84432feb.git cherry origin/dev <head>reports 5 unmatched commits and 0 equivalent patches. Separate stable patch-id indexing and key-file checks do not establish full landing. Absent from dev:crates/dav-replay/Cargo.toml,crates/dav-replay/README.md,crates/dav-replay/fixtures/required-scenarios.json. Left unchanged as WIP, per kayg’s instruction; no rebase, close, tests, or merge. The #1009 audit records the unmatched commit list.View command line instructions
Checkout
From your project repository, check out a new branch and test the changes.Merge
Merge the changes and update on Forgejo.Warning: The "Autodetect manual merge" setting is not enabled for this repository, you will have to mark this pull request as manually merged afterwards.