[WIP] Borrow task checkbox fields; ARM64 performance acceptance still blocked #716

Closed
kayg wants to merge 22 commits from perf/arm64-fixes-3 into issue/perf-move
Owner

Task indexing copied plain checkbox text and block IDs into temporary owned strings, serialized them to JSON, then discarded those copies. The shared parser now lends those fields directly to serialization. Public parsing, stored JSON, schema and parser rules are unchanged. The branch retains the idle and index-write improvements from #710.

Related to #686; supersedes draft #710. Blocked on performance acceptance. After commands failing: tasks-after-1-10k (exit 1), tasks-after-1-100k (exit 1), tasks-after-2-10k (exit 1), tasks-after-2-100k (exit 1), tasks-after-3-10k (exit 1), tasks-after-3-100k (exit 1).

100k metric Before, runs 1 / 2 / 3 After, runs 1 / 2 / 3 Limit
Warm update p95 ms 48.776 / 36.930 / 30.993 43.918 / 29.091 / 42.332 40 ms
Cold growth percent 19.151 / 19.052 / 19.180 15.317 / 18.767 / 15.936 10 percent

Workspace tests: 1188 passed, 0 failed, 20 ignored. Crash/recovery matrices, formatting, clippy with warnings denied, editor and web typechecks, and 5,000 parser cases passed.

No limit or durability barrier was changed. Atomic note replacement still waits for file sync, required directory sync and durable FULL history. All scheduling, journal, cache, page-size, compression and checkpoint experiments were rejected and remain outside the product diff.

The remaining warm cost is USB SSD flush latency and contention. Extending existing history batching with bounded cross-save coordination while preserving every acknowledgment barrier remains possible future work; it is not implemented or proven here. Complete before/after tables, rejected experiments with numbers and verbatim gate output are on #686. Raw evidence archive, SHA256 5d61debc7998e04e11a3c3edc94657cf33108c1e0aeb6e1a3c73c5c8b27f1d55.

Head: e837280e03fa2763121639222efee8c575494d17. Before: 21180d0b2a82b8003cb1f1ee117a0a300ba5edaa.

Task indexing copied plain checkbox text and block IDs into temporary owned strings, serialized them to JSON, then discarded those copies. The shared parser now lends those fields directly to serialization. Public parsing, stored JSON, schema and parser rules are unchanged. The branch retains the idle and index-write improvements from #710. Related to #686; supersedes draft #710. Blocked on performance acceptance. After commands failing: tasks-after-1-10k (exit 1), tasks-after-1-100k (exit 1), tasks-after-2-10k (exit 1), tasks-after-2-100k (exit 1), tasks-after-3-10k (exit 1), tasks-after-3-100k (exit 1). | 100k metric | Before, runs 1 / 2 / 3 | After, runs 1 / 2 / 3 | Limit | | --- | --- | --- | --- | | Warm update p95 ms | 48.776 / 36.930 / 30.993 | 43.918 / 29.091 / 42.332 | 40 ms | | Cold growth percent | 19.151 / 19.052 / 19.180 | 15.317 / 18.767 / 15.936 | 10 percent | Workspace tests: 1188 passed, 0 failed, 20 ignored. Crash/recovery matrices, formatting, clippy with warnings denied, editor and web typechecks, and 5,000 parser cases passed. No limit or durability barrier was changed. Atomic note replacement still waits for file sync, required directory sync and durable FULL history. All scheduling, journal, cache, page-size, compression and checkpoint experiments were rejected and remain outside the product diff. The remaining warm cost is USB SSD flush latency and contention. Extending existing history batching with bounded cross-save coordination while preserving every acknowledgment barrier remains possible future work; it is not implemented or proven here. Complete before/after tables, rejected experiments with numbers and verbatim gate output are on #686. [Raw evidence archive](https://git.kayg.org/attachments/b134be11-fabf-4550-8f15-44d4d6b60d4b), SHA256 `5d61debc7998e04e11a3c3edc94657cf33108c1e0aeb6e1a3c73c5c8b27f1d55`. Head: `e837280e03fa2763121639222efee8c575494d17`. Before: `21180d0b2a82b8003cb1f1ee117a0a300ba5edaa`.
kayg added 22 commits 2026-10-28 02:19:26 +00:00
Cover list boundaries in multiline reference titles
Some checks failed
CI / web (pull_request) Failing after 50s
CI / server (pull_request) Successful in 1m17s
CI / rust (pull_request) Successful in 13m37s
5ed9dcc7e3
Keep unchanged backlinks when refreshing note metadata
Some checks failed
CI / server (pull_request) Successful in 1m44s
CI / rust (pull_request) Successful in 15m53s
CI / web (pull_request) Failing after 54s
21180d0b2a
This reverts commit 795b4ad20c.
Borrow plain checkbox fields while building task index rows
Some checks failed
CI / server (pull_request) Successful in 1m7s
CI / rust (pull_request) Successful in 16m8s
CI / web (pull_request) Failing after 37s
e837280e03
Author
Owner

Closing per #931: the ARM64 perf series was reset for tiering and executor work.

Closing per #931: the ARM64 perf series was reset for tiering and executor work.
kayg closed this pull request 2026-11-04 17:37:25 +00:00
Some checks failed
CI / server (pull_request) Successful in 1m7s
CI / rust (pull_request) Successful in 16m8s
CI / web (pull_request) Failing after 37s

Pull request closed

Sign in to join this conversation.
No reviewers
No milestone
No project
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!716
No description provided.