plan: durable save-log entry (tick < 40 ms) #938
Open
kayg
wants to merge 1 commit from
plan/save-log-durable-entry into dev
pull from: plan/save-log-durable-entry
merge into: kayg:dev
kayg:main
kayg:feat/style-sheet-fixes
kayg:storage/wal-checkpoint-off-save-1051
kayg:t3/paged-search-reconcile-final
kayg:feat/pass8
kayg:review/calendar-2
kayg:fix/shared-row-swipes
kayg:feat/contrast
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: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:feat/dav-recorder-v3
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!938
Loading…
Reference in a new issue
No description provided.
Delete branch "plan/save-log-durable-entry"
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?
A tick still waits on several durable writes after #898. This design accepts a validated executor change with one FULL transaction in index.db, then applies history and exact markdown bytes in order outside the reply path. No product code changes.
Plan: docs/plans/save-log-durable-entry.md. Extends #898 and integrates #928 (#918/#919); the overlap search found no separate durable-entry plan.
Full evidence, commands, source/binary hashes and attached raw artifacts. kayg explicitly requested measured summary tables in this plan in the follow-up; raw artifacts stay in the PR comment. The earlier blocked measurement status is superseded.
Five numbered review questions carry recommendations: ack meaning, restore exception, numeric version aliases, initial scope/caps, permanent receipts/downgrade safety. These are proposals for kayg, not approved implementation decisions.
Validation:
git diff --check origin/dev...HEADpassed; clean worktree, one documentation file changed. No product gate or notes-typing flatness claimed. Measurements ran only on the perf VMs with both official locks held; the small profiler was built on dev-01 through Nix and ~/bin/slot. All task-owned build/measurement/load/lock units are inactive, scratch Homes/databases and large copied VM binaries removed. Never merge as part of this task.source review and measurement status
Head:
31258faef88dfe1e97c6f8f7f685f29ee7f31b75. Docs only, one file.git diff --check origin/dev...HEADpassed; no product tests or builds were run for this document.Read the engine action/retry path,
commit_onceand store schema/writer; Notes executor admission/recovery/publication, history receipts, room loading/executor/save acks; fsio staging/exchange; Notes search generations/watchers; Tasks status capture/result; ADRs 0011/0020/0021/0044/0047 and storage guidance. Compared dev9377d711, #8982432b5a4and #928d88a4c44, including #898 comments 77003/77110/77166/77221 and #918/#919 issue text. #928 had no PR comments when read.Decisions proposed for review, not kayg-approved implementation decisions:
spike status: blocked, no new measurements
Both perf VMs were reachable using
timeout 60 netbird sshwith the brief's retry policy. Disk checks: perf-01 74 GiB available; perf-02 33 GiB available. The perf-01 acquisition queued behind the activen887-index-hold/n887-matrixmeasurement (a candidate process was running). Anothermail932-holdacquisition was also queued. No other agent's process or lock was stopped. This task did not acquire both shared locks and therefore did not run the probe, a product dev-vs-dev control, or notes typing gates. There are no new latency numbers or gate passes to report.The existing #898 measurements remain the evidence for flush cost, not fresh results: span breakdown, comment 77110, quiet rerun, comment 77166, follow-up rerun and control caveat, comment 77221. In particular, that source describes about nine remaining flushes for one executor write, rather than an implemented three-flush executor baseline.
disposable storage spike for the next free window
This is a storage analogue, not a replacement for a product dev-vs-dev control. It compares one FULL commit of frozen pre/post bytes plus a history-sized payload with that same commit plus file fsync and parent fsync. Two identical baseline labels let a reviewer see drift within the analogue. It covers 4 KiB and 64 KiB files; five warmups then 100 samples per batch, order baseline-a, baseline-b, entry, entry, baseline-b, baseline-a. Default WAL checkpoints stay enabled.
Run only after holding
~/bin/perf-lockon perf-01 then perf-02 together, withdf -h /passing:~/bin/slot python3 ~/save-log-design-1104-spike.py. Use the existing Nix-provided Python; no compilation or package install is needed. It removes its scratch databases and keeps a small JSON result. Post that JSON here, not in the repository. Release both locks before leaving. Follow with the actual dev-vs-dev/product gates in the plan; this analogue omits background history/file/completion work and cannot establish throughput, typing, or tick p95.SHA-256 of the following exact script:
4af3672091380b422fdb76fdf5302cc840f37e497a447e16ed1ba5e2960efb5c.throwaway spike.py (artifact, not repository code)
Cleanup verified at 2026-11-04 22:30 IST: this task’s
save-log-design-1104-holdunit is inactive on both perf VMs; both task-owned readiness markers removed. No measurement process or scratch database was started, and no task-owned VM job remains.measured spike: quiet and shared-disk contention
The blocked status in comment 78441 is superseded. Both official locks were acquired in order (perf-01, then perf-02) and held together for every measurement. Repeated foreground waits stayed below 480 s; every NetBird SSH step used
timeout 60with up to three attempts. Measurement units, the contention worker and both lock units are now stopped. No product code changed.Raw samples, per-batch output, frozen entry, scripts, profiler source and hash manifest. Archive SHA-256:
0e38e877596e1f8cbe7d944da215ec48f783c851ff44dd2f73b3ba262a6ff20f.what ran
~/bin/slot, while this task held its lock. That worker overwrote a bounded 64 MiB file in 4 MiB blocks and fsynced each block. It ran 214.5 s at 227.2 MiB/s logical guest writes; worker fsync p50/p95 15.92/21.93 ms. The file was removed on stop. This reproduces measured shared-disk contention, not every possible host load.tasks.set-statuscalls on one 4 KiB task, alternating done/todo, fresh state for each batch, five warmups then 40 timed actions. Case order: dev-a, dev-b, #898 plain, #898 profiled, #898 profiled, #898 plain, dev-b, dev-a. Each pooled label has 80 samples/window. All cases completed without retries or HTTP failures.ef22c21cabe7711730ce68c4a16fc473ec55c042aa9b4bb9a64211335d3780a7, built on dev-01 from41f2efa387b74175971a838f602535089d0d5fb4. The relevant engine/store/notes/tasks/fsio trees are identical to this plan's dev base9377d711(git diffempty).d05915117b4ef077a20ef03623873f4392b2e2e3e24d4d0b44606acb9016a0ff, from1b81f85213, matching #898 comment 77110. This is the previously built binary, not a claim that its later worktree head2432b5a4was rebuilt. Both product binaries were relayed dev-01 → control → perf-01 with SHA-256 checked.~/bin/slot cc -shared -fPIC -O2, interceptsfsync/fdatasync, performs the actual kernel calls, and records start/end intervals to/dev/shm. It changes no sync flags and writes no trace to the tested disk. Tick residual = request wall time minus the union of intersecting sync intervals, so overlapping waits count once. The attachment contains every interval.storage, ms (pooled nearest-rank tails, no samples discarded)
“Three barriers” is the requested storage comparison, not the complete current executor. The real #898 requests recorded 11 sync calls each in this fixture, including existing file records/history/publication.
After stopping the load, the recovery probe was 6.80 / 9.17 ms. VM locks cannot prevent unrelated host I/O; the observed probes and controls define these windows.
controls and real current tick path
The duplicate three-barrier storage control's p95 delta is -3.2% quiet and +5.7% contended. The one-commit change is much larger than either control spread.
The plain/profiled p95 differs, especially in the quiet window; no correction or tail exclusion was applied. Residuals are a measured decomposition, not proof that all sync intervals were on the critical path.
measured-component tick estimate versus 40 ms
This is a sum of two separately measured p95 components, not a measured candidate p95 and not a mathematical bound on its tail. It supports the one-commit design for this clean, warm 4 KiB single-task case. It does not prove the 10k-fixture gate, cold capture, multiple owner notes, new accepted-read/version costs, throughput/drain stability, or notes typing flatness. Those remain hard first-implementation-PR gates. The contended commit p99 alone is 36.88 ms, so no all-requests-under-40 claim is justified.
exact reproduction commands
With both
~/bin/perf-lockunits held, and Nix-provided Python first in PATH:The archived
window.shcontains every real-action/storage command, andmanifest.jsonidentifies source and binary hashes. Storage databases and per-batch Homes were removed by each script. The large copied VM binaries have been removed. Raw artifacts remain attached here; kayg explicitly requested the measured summary tables in the plan in this follow-up, superseding the brief's design-only-table rule for this document.Final documentation head:
3de4e91edb6cdec8f53ef6f25bee17687ea23e4e.git diff --check origin/dev...HEADpassed; worktree clean, onlydocs/plans/save-log-durable-entry.mdchanged. Verified every task-owned build, smoke, quiet, contended, load and lock unit inactive; no scratch Home/storage directory remains.kayg referenced this pull request2026-11-05 23:21:11 +00:00
housekeeping #1009: rebased+green, left open for review.
rebased durable-entry design proposal; no implementation claim.
head:
940ef22bd24cf7ed956dfa9286d55c8ea14b5d7d. rebased onto devcd7f84432febfc63b788fbb9b9f9950452982d74and pushed with the original exact force-with-lease.validation on the Mac VM, through Nix and the shared Mac lock/slot: root
bun install --frozen-lockfile; inapps/web,bun run check,bun run lint,bun run build,bun run test;PERF_DIST=<worktree>/apps/web/dist bash perf/web.sh --bundle-only --gate. all passed. this documentation-only branch has no targeted browser specs or Rust implementation changes. exact commands, logs, and dev bundle control.original-head missing-commit/patch inventory, file
pr-938.md.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.