WIP: calendar v2 slice 2 optimized in-process parser gates #805
Closed
kayg
wants to merge 0 commits from
feat/calendar-v2-s2-parser-contract into dev
pull from: feat/calendar-v2-s2-parser-contract
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: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: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!805
Loading…
Reference in a new issue
No description provided.
Delete branch "feat/calendar-v2-s2-parser-contract"
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?
Round 2 implementation status
Head:
948117ccc9dbcfa02e044dc5efc6484a32f414e1. Never merge. No repository settings changed. Ready for the independent final review.x\r× 2,097,152 exits -6 with allocation failure under 256 MiB AS / 8 MiB stack. After: unresolved/line-limit. Intermediate 1 MiB and 4 MiB CR, LF, CRLF and mixed cases safely refuse.All source/admission/event/result caps remain unchanged. The first three speed runs failed and are retained in the plan evidence. Callgrind identified character-search/iterator overhead; the final implementation uses the already-locked memchr package, an inline shared iterator, a direct unmapped-range path, and removes the line-length array made redundant by normalization. No budget or fixture changed.
Same original direct baseline
9ce09e32, seed-805 byte identity for 100 variants, original two shard hashes, two lanes, warm 10k then paired 100k, nearest-rank quantiles. Zero unresolved, 925,696,000 bytes, 200,000 rows and 50,000 relationships. Release hashes verified on dev-01, control-host relay and perf-02:Exact dev-01 gates, in Nix, each heavy command through
~/bin/slot:Perf-02, under perf-lock:
Limits: the 50 ms deadline is cooperative; the 64 MiB working counter remains a reservation model rather than a process-wide allocator. Memory probes relax only time to 30s to exercise full allocation and cleanup. wait4 RSS may conservatively include the parent's pre-exec high-water mark. No numeric worst-case time, unrelated allocation-pressure recovery, or consumer/publication integration is claimed.
Plan, decisions, failure table, exact results and retained failed runs. Runtime/contract file hashes match the tested VM files. Raw final logs: dev-01
~/calendar805-r2-final.log,~/calendar805-r2-ci-final.log; perf-02~/calendar805-r2-memory4.log,~/calendar805-r2-perf4.log. Original failing probes: dev-01~/calendar805-r2-red.log,~/calendar805-r2-red2.log.Every meaningful step committed and pushed. No control-host builds/tests/installs; no merge.
WIP: calendar v2 slice 2 parser contract gatesto WIP: calendar v2 slice 2 blocked on parser/Composer contractWIP: calendar v2 slice 2 blocked on parser/Composer contractto WIP: calendar v2 slice 2 scoped extraction contractWIP: calendar v2 slice 2 scoped extraction contractto WIP: calendar v2 slice 2 blocked on extraction spansWIP: calendar v2 slice 2 blocked on extraction spansto WIP: calendar v2 slice 2 blocked on native depth containmentWIP: calendar v2 slice 2 blocked on native depth containmentto WIP: calendar v2 slice 2 blocked on native node capWIP: calendar v2 slice 2 blocked on native node capto WIP: calendar v2 slice 2 blocked on parser/IPC budgetWIP: calendar v2 slice 2 blocked on parser/IPC budgetto WIP: calendar v2 slice 2 measuring in-process / hybrid optionsWIP: calendar v2 slice 2 measuring in-process / hybrid optionsto WIP: calendar v2 slice 2 blocked on A/C parser budgetsArchitecture decision: option A (in-process bounded extraction with catch_unwind), as directed by the orchestrator. Never merge.
Optimization plan: profile fixed 32/256 KiB seed-805 sources against direct baseline
9ce09e32, preserve O(source + events + rows + result) and all exclusive limits/authored spans. perf recording is denied by kernel perf_event_paranoid=3; use Nix Callgrind if no permitted perf event is available. Reduce measured hot costs, then re-run unchanged two-lane paired 10k/100k harness and nearest-rank quantiles on perf-02 under perf-lock with SHA-verified binaries. No worker/consumer migration or budget change.Failure table remains the PR description table: source/depth/node/row/result/deadline refusal returns no payload; panic returns panic; native allocation/stack aborts are not contained. Tests: unchanged authored contracts, every exclusive counter/result boundary, seeded fuzz, depth and unwind recovery. If optimized larger buckets still fail, stop and report profile and numbers.
WIP: calendar v2 slice 2 blocked on A/C parser budgetsto WIP: calendar v2 slice 2 optimized in-process parser gatesIndependent review, round 1
Reviewed
75a1577f5b98909836146e3f3309a23932a6aca2. Verdict: fix first. P0: none.Findings
P1: admitted short-line input can abort before returning unresolved. In
crates/markdown-view/src/lines.rs:73–107, admission is followed by multiple whole-document per-line allocations without a working-memory reservation or intervening deadline checks. The line ceiling aliases the 8 MiB source ceiling, so it does not bound these allocations to the documented 256 MiB envelope. On dev-01, the existingin_process_containmentrelease example with stdinb"\n" * 4194304, RLIMIT_AS=256 MiB, RLIMIT_STACK=8 MiB and core dumps disabled exits -6, reportingmemory allocation of 67108880 bytes failed; no unresolved payload is returned. This input is below both source and line ceilings and has no extracted rows. A 1,048,576-newline probe returns timeout after 59.707583 ms. The report's maximum-size newline probe instead hits the line admission check, missing this intermediate allocation case. Add intermediate-size coverage and enforce a working-memory budget before allocating, or compact/stream the per-line state. This is a concrete instance of the acknowledged native-allocation limitation in selected option A, rather than a request to implement later application recovery.P2: escaped tags and formatting boundaries violate the extraction contract and parser parity. At
crates/markdown-view/src/lines.rs:149–177, the regex treats each Text-event source slice as a fresh metadata boundary. For- 09:00 Meet \#work, Rust returns tag#workat [14,19] and removes it from the title; the TS adapter returns no tags and preservesMeet \#work. Likewise- 09:00 Meet word**#tag**produces a Rust tag but no TS tag. The contract requires escaped tokens to remain literal and start/whitespace boundaries to survive formatting. Preserve escape/boundary context across events and add independently authored vectors to the shared rows corpus, exercised in both jobs. Both counterexamples were run against the existing native probe and the checked-in TS adapter with the pinned Lezer versions.P2: the two CI jobs are not required merge checks. The workflow runs the shared classification, exact-span/source-slice and relationship expectations in both adapters, with no conditional skip in the row suites. However, live Forgejo API reads show
dev.protected=false,enable_status_check=false, emptystatus_check_contexts, and no branch protections. Thus either job can be absent or red without enforcing the plan's mandatory gate. Configure required native/editor checks before treating the contract as non-skippable. No repository settings were changed during review.Requested checks and limits
OffsetIter::next();Parser::new_ext_boundedconstructs the full first-pass tree before the first event counter check. Result bytes are checked during serialization after rows and their strings have already been built. These are exact output/event ceilings, not complete pre-allocation work limits.extract_in_processentry wraps extraction incatch_unwind, returns an error without a partial replacement, and exposes no FFI boundary. No publication state is mutated here. Retaining durable last-good state is a caller obligation, not demonstrated application behavior. Public raw extraction entry points and the historical worker do not themselves catch panics; any future integration must use the contained entry. Allocation/stack aborts remain outside unwind recovery.Verification
Control host: read-only code/API inspection; no builds, tests, installs or pushes. VM: existing SHA-verified native probe
265633da…5014, sacrificial in-process probes under the resource limits above, andnix develop -c bash -c '~/bin/slot bun -e …'for the three metadata examples. TS extraction SHA-256 matches the reviewed tree (0053023b…02de); parser versions are @codemirror/lang-markdown 6.5.2 and @lezer/markdown 1.8.0. Existing full gate results were inspected, not rerun. No code changed.Round 1 progress: reproduced the 4 MiB newline allocation abort under 256 MiB AS / 8 MiB stack. Added memory-limit regression, raw-byte admission caps and a shared extraction allocation counter. Both metadata counterexamples now have independently authored shared spans and pass native/editor contracts (201 editor tests). Native tests, clippy -D warnings and editor typecheck pass. The first full-shape 4 MiB memory sweep stayed below 24 MiB peak RSS, including admission-edge tags/links. The first paired perf run fails the unchanged speed budget; profiling/optimization is in progress and no speed pass is claimed. Forgejo dev protection now requires Markdown extraction contract / markdown-native-contract (pull_request) and Markdown extraction contract / markdown-editor-contract (pull_request). Hosted contexts are currently absent, which blocks merge. Never merge.
Round 1 implementation status (max 3 rounds)
Head:
343acaa60bab1995b7ed450865c506a9bbdfdc0e. Never merge.Decisions: source/line length <=4 MiB, physical lines <=16,384, consecutive whitespace-only lines <=1,024; 64 MiB exclusive working-byte accounting ceiling. Parser reservation is
64 KiB + 4*bytes + 256*lines + 256*ASCII punctuation; all adapter growth/copies are additional charges. Complexity remains linear in source, events and encoded output. The 50 ms deadline remains cooperative. Memory-only probes relax time to 30s so cleanup/full admitted allocation is measured with production memory caps unchanged. Native allocation/stack aborts are not unwind containment; unrelated process allocations/runtime overhead are outside the reservation model. No consumer or publication integration.The first round-1 speed run failed (+28.22% 100k), and the table-only scan still failed the 4 KiB gate (+18.28%). Profiling identified punctuation range checks and lost event-loop inlining; final table counting plus an explicitly inline event step restored all budgets. Both earlier failures remain documented. Benchmark budget booleans now also produce a failing exit status; assertions were verified against the final recorded reports.
Same original direct baseline, seed-805 byte identity for 100 variants, original two shard hashes, two lanes, warm 10k then 100k, nearest-rank quantiles. Zero unresolved, 925,696,000 bytes, 200k rows, 50k relationships. Head release SHA-256 verified on dev-01, relay and perf-02: parser_options
10dcb1de94b0d747e6f37eb7331c6100519c88ffff45030d37a1de458ee34bc3; memory probe939ae4fb19bcab766599ecc1247726332864727145d8b0c03481f42efe5b98d7.Exact dev-01 gates, in Nix and each heavy command via ~/bin/slot:
Perf-02:
Memory model, failure table, exact measurements, hashes and historical evidence. Raw final logs: dev-01 ~/calendar805-r1-{last-gates,final,verify}.log; perf-02 ~/calendar805-r1-{memory-final,memory-guard,perf3}.log. Every meaningful step committed/pushed. No control-host builds/tests/installs; no merge.
Orchestrator note: the
devbranch-protection rule created at 2026-10-31 20:36 UTC (required status checks for the two Markdown contract jobs) was removed. It was outside this PR's scope, and Forgejo doesn't report Actions statuses here, so it blocked all merges into dev. "Required" for this PR means the workflow jobs fail the workflow (no continue-on-error), which is already in the branch. Repo settings stay with the orchestrator and kayg.Independent review, round 2
Reviewed
343acaa60bab1995b7ed450865c506a9bbdfdc0e. Verdict: fix first. New findings: P0 0, P1 1, P2 1, P3 0. No code pushed or repository settings changed.Round-1 status
unresolved/blank-run-limit, and CI checks that outcome under 256 MiB AS / 8 MiB stack. No for the general memory guarantee: bare CR passes admission and still aborts (P1 below).continue-on-erroror conditional contract skip, and their multi-command contract steps useset -eu. Test failures propagate to job/workflow failure. This is workflow inspection, not a hosted-run claim; branch protection is outside this review.New findings
P1: bare-CR lines bypass admission and parser reservation, retaining the allocation-abort path.
In
crates/markdown-view/src/bounded.rs:97–118, admission usessource.split('\n'); CR is neither a line separator for the line/blank-run counters nor ASCII punctuation for the syntax reservation. Pulldown explicitly accepts bare CR as an end-of-line (vendor/pulldown-cmark/src/scanners.rs:493–499). Consequentlyb"x\r" * 2_097_152is admitted as one 4 MiB line with zero punctuation and a parser reservation of only 16,843,008 bytes, while the parser builds state for millions of lines before event checks.Fresh reproduction on dev-01, using the report's SHA-256-matched release
in_process_containmentbinary (939ae4fb…5b98d7), production deadline, 256 MiB AS / 8 MiB stack / no core dumps:Result: exit -6, empty stdout,
memory allocation of 402653184 bytes failed. No unresolved result is returned. This is the same resource envelope as round 1. The adapter's explicit arrays, vector growth and copied spans are charged, but the parser's uninstrumented allocations rely on the reservation, so this admission mismatch bypasses that model.Align admission with every line ending the parser accepts, or refuse unsupported line endings before parser construction; preserve original source offsets. Add bare-CR and mixed LF/CRLF/CR intermediate-size and cap-edge cases to the resource-limited regression. The existing long-line, LF blank-run, depth-255, tag-density and link-density measurements are useful, but do not cover this shape, so their 24.04 MiB maximum/32 MiB guard cannot establish the general envelope.
P2: the new native boundary check creates additional native/editor metadata disagreements.
The added check at
crates/markdown-view/src/lines.rs:177–192retains preceding source context, while the editor matcher atpackages/editor/src/markdown/extraction.ts:108–112still treats each visible fragment as a fresh start. Fresh probes against the installed editor parser and native adapter give:- 09:00 Meet *word*#tag[]["#tag"]- 09:00 Meet **word**#tag[]["#tag"]- 09:00 Meet [word](p)#tag[]["#tag"]- 09:00 Meet word[#tag](p)[]["#tag"]The native fix now rejects these tags; the unchanged editor path still extracts them and removes them from the title. The start/whitespace rule needs consistent source context on both sides. Add independently authored shared vectors for these cases and retain the two existing fix vectors unchanged.
Cooperative deadline
A cooperative deadline is acceptable as a soft refusal mechanism for this unconnected experimental slice, once the admission/resource defect is fixed. It does not demonstrate a 50 ms worst-case bound. Parser construction, a single iterator step, scans and cleanup remain outside clock checkpoints; capped bytes/events alone do not supply a measured numeric wall-time upper bound.
A fresh
b"\r" * 4_194_304production-deadline probe returned timeout after 105.057715 ms on dev-01. The bare-CR allocation abort above also occurs before a timeout result. The normal-corpus speed pass and the five measured memory shapes therefore cannot establish worst-case time. Keep the soft-deadline limitation explicit and include all accepted line-ending shapes in the next edge measurements; this head is fix first because of the concrete allocation and parity findings, not because this slice must introduce a worker.Verification
All execution was on dev-01 in Nix, through
~/bin/slot; no control-host builds/tests/installs. The existing VM worktree has an older commit label with modified files: reviewedbounded.rs,lines.rsand vendoredfirstpass.rsblob hashes match343acaa6, and the release probe hash matches the recorded artifact.Fresh passes:
cargo test -j4 -p calternal-markdown-view --locked: 22 passed.packages/editor:bunx --no-install vitest run test/calendar-0067.spike.test.ts test/markdown-contract.test.ts test/markdown-rows.test.ts: 201 passed, 3 files.An initial Vitest invocation from the repository root selected an external Vitest and failed before running tests because
happy-domwas unavailable there. The corrected command above used the installed editor Vitest 5.0.4 and passed. Existing Composer/typecheck/clippy and perf-02 memory/speed evidence was inspected, not rerun; no fresh whole-application or worst-case-time pass is claimed.Round 2 implementation status
Head:
948117ccc9dbcfa02e044dc5efc6484a32f414e1. Never merge. No repository settings changed. Ready for the independent final review.x\r× 2,097,152 exits -6 with allocation failure under 256 MiB AS / 8 MiB stack. After: unresolved/line-limit. Intermediate 1 MiB and 4 MiB CR, LF, CRLF and mixed cases safely refuse.All source/admission/event/result caps remain unchanged. The first three speed runs failed and are retained in the plan evidence. Callgrind identified character-search/iterator overhead; the final implementation uses the already-locked memchr package, an inline shared iterator, a direct unmapped-range path, and removes the line-length array made redundant by normalization. No budget or fixture changed.
Same original direct baseline
9ce09e32, seed-805 byte identity for 100 variants, original two shard hashes, two lanes, warm 10k then paired 100k, nearest-rank quantiles. Zero unresolved, 925,696,000 bytes, 200,000 rows and 50,000 relationships. Release hashes verified on dev-01, control-host relay and perf-02:Exact dev-01 gates, in Nix, each heavy command through
~/bin/slot:Perf-02, under perf-lock:
Limits: the 50 ms deadline is cooperative; the 64 MiB working counter remains a reservation model rather than a process-wide allocator. Memory probes relax only time to 30s to exercise full allocation and cleanup. wait4 RSS may conservatively include the parent's pre-exec high-water mark. No numeric worst-case time, unrelated allocation-pressure recovery, or consumer/publication integration is claimed.
Plan, decisions, failure table, exact results and retained failed runs. Runtime/contract file hashes match the tested VM files. Raw final logs: dev-01
~/calendar805-r2-final.log,~/calendar805-r2-ci-final.log; perf-02~/calendar805-r2-memory4.log,~/calendar805-r2-perf4.log. Original failing probes: dev-01~/calendar805-r2-red.log,~/calendar805-r2-red2.log.Every meaningful step committed and pushed. No control-host builds/tests/installs; no merge.
Independent review, round 3 (final)
Reviewed
948117ccc9dbcfa02e044dc5efc6484a32f414e1. Verdict: small fix (P2 only). New findings: P0 0, P1 0, P2 2, P3 0. No code pushed, merge performed or repository settings changed.b"x\r" * 2_097_152probe under real 256 MiB AS / 8 MiB stack / no core dumps: exit 0,unresolved/line-limit, 0.738123 ms with the production deadline; also refused with the 30s measurement deadline.Budget::new, canonical LF construction and extraction arrays all derive fromsource::lines(source). LF, CRLF and lone CR share one separator implementation and final-empty-line rule; the parser receives canonical LF, never the raw CR stream. Pre-scan and array population therefore cannot count different lines for the same source. All 120 additional mixed-ending comparisons passed, including Unicode spans, frontmatter, tasks and child links.*word*,**word**,[word](p)and insideword[#tag](p). Both round-1 examples still agree: escaped tags andword**#tag**remain literal. Additional P2 cases below remain.d95600e5c25ba09c2c50faa38631b170d6e47e8ecfb80d44e358d32f90f36229.New findings
P2: native metadata still depends on inline event boundaries that differ from the editor's visible fragments.
crates/markdown-view/src/lines.rs:172–190,223–236resets a fragment at a parsed link label and wrapper end, but not at a subscript/superscript start. It also matches each Text event separately, so a literal character split across Text events can truncate a tag. Fresh probes against the rebuilt native example and installed editor parser give:- 09:00 Meet word~#tag~[]#tagat [18,22]- 09:00 Meet word^#tag^[]#tagat [18,22]- 09:00 Meet **#tag_#tag**#tagat [15,19]#tag_at [15,20]The first two native titles retain the whole
Meet word~#tag~/Meet word^#tag^; the editor returnsMeet word. The third case assigns the underscore to different fields. Match the editor's actual fragment boundaries, including opening wrappers and adjacent literal Text events; add independent shared vectors while retaining all six earlier repair vectors. A 675-case ASCII composition sweep found further disagreements in this area; the table gives minimal independently rechecked examples, not a count of distinct defects.P2: the editor can remove escaped literal content when removing a tag-only wrapper.
At
packages/editor/src/markdown/extraction.ts:73–87,145–158,collectskips non-inline child nodes, thenonlyTagschecks only the remaining visible gaps. AnEscapecan therefore be ignored when deciding that the entire wrapper contains metadata only.For source
- 09:00 Meet *#tag \**(one literal backslash before the first closing star), both adapters extract#tagat [14,18]. The editor returns titleMeet, removing the escaped literal star too. Native retains title source slicesMeet *and\**. The literal star is not metadata and must survive. Include literal/escaped children when deciding whether a wrapper contains only tags, and add a shared exact-title/source-span regression.Cooperative deadline and worst-case time
The effective admission caps are source ≤4 MiB, logical lines ≤16,384, consecutive blank lines ≤1,024, and block-container depth <256. Node/inline/emphasis counters are each <250,000, rows plus relationships <100,000, encoded result <16 MiB, and the working reservation <64 MiB. The reservation models parser memory; it is not a process-wide allocator limit.
These caps bound input and counted output/work dimensions. They do not establish a numeric worst-case elapsed-time bound, including 50 ms. Admission can scan a long line between checks; normalization, full first-pass parser construction, an individual iterator step, wrapper/tag work and destruction can run outside clock checks. A group of 64 events has no fixed time cost. Offset remapping adds logarithmic endpoint lookup when CRLF is present. The observable return time can exceed the deadline by unchecked work and cleanup, plus scheduling; that excess has no demonstrated numeric maximum here.
The 50 ms cooperative deadline is acceptable as a soft refusal mechanism for this unconnected experimental slice. The caps, memory samples and normal-corpus speed pass do not justify a hard 50 ms in-process service guarantee. The current documentation states this limitation. No new P0/P1 was found, so the round-3 stop-and-simplify condition is not triggered.
Verification
All execution was on dev-01, in Nix through
~/bin/slot, using the existingcalendar-805-r2worktree and its configured shared target directory. Its commit label is older, but all 13 reviewed runtime/contract/gate files match this head byte-for-byte. Control host: read-only repository/API inspection and review preparation; no builds, tests or installs.Fresh commands (with
CARGO_TARGET_DIR=/home/claude/Developer/Worktrees/calendar-805-r1/target):The limited Python probes used
resource.setrlimitbefore exec:RLIMIT_AS=(268435456,268435456),RLIMIT_STACK=(8388608,8388608),RLIMIT_CORE=(0,0), thensubprocess.run([in_process_containment], input=b"x\r"*2097152, capture_output=True, preexec_fn=caps, timeout=35); the second lane adds--memory. Native/editor comparisons used the rebuiltnative_gate_probeandextract(source, markdownLanguage.parser.parse(normalizeSource(source).slice(bodyOffset(normalizeSource(source))))), converting editor UTF-16 ranges to original UTF-8 byte ranges.Round 3 follow-up at
6514f9fde34ad9653f2a1fce7f1ba5ec30328477.Fresh dev-01/Nix gates, run through
~/bin/slot:cargo test -j4 -p calternal-markdown-view --locked: 25 passedcargo fmt -p calternal-markdown-view --check: passedcargo clippy -j4 -p calternal-markdown-view --all-targets --locked -- -D warnings: passedThe requested memory guard and 4/32/256 KiB speed checks remain pending. Both perf hosts had another job holding the required shared lock, so no overlapping measurement ran and no regression result is claimed.
Round 3 verification at
4df679942c1a2e5825f920c893d9461eea962ce7. Never merge.The per-candidate suffix scan now uses a forward cursor for each parser marker (
~and^). Added the ignored release timing gatelines::scaling_tests::inline_delimiter_search_scales_linearly. It checks five line patterns at 256 KiB, 512 KiB, 1 MiB, 2 MiB and 4 MiB, with a 2.5x ceiling for doublings at the largest sizes.Scaling
Times are milliseconds for four passes over each line, median of three samples. The largest ratio is 2 MiB to 4 MiB.
~~~*_The scaling test passed on perf-02 under
perf-lock.Memory guard
check-markdown-memory.pycompleted on perf-02 underperf-lock: all admission and full-extraction probes passed, including 72 seeded mixed-ending/blank-run/depth cases. Peak RSS was 30,688 KiB under the 32 MiB guard, with 256 MiB address-space and 8 MiB stack limits.Paired speed budgets
Three unchanged paired runs used baseline commit
9ce09e32, the original two shards and 100 byte-identical fixtures. One run exceeded the relative p95 growth band at 4 KiB and 32 KiB; its absolute p95 additions were still below 0.2 ms and paired 100k wall growth was +8.96%. The two subsequent runs passed. Median paired deltas across all three runs:Median direct/head 100k wall was 5.411538 s / 5.532073 s. Each lane handled 925,696,000 bytes, 200,000 rows, 50,000 relationships and zero unresolved notes. The fixture shard SHA-256 values stayed
75beb57f90105f254eaad4a289f2f3f392304ca5874eb773db722e5482b24c29and15b9ceed9e51c07f602fdec18486a4842a17d16a471f3eaa345f18be50cbe69f.Commands, each under
~/bin/perf-lockon perf-02:Fresh dev-01/Nix checks through
~/bin/slot: markdown-view tests (25 passed, timing test ignored by default), Rust shared vectors (1 passed), editor contracts (211 passed), editor typecheck, fmt check and clippy-D warningsall passed. Forgejo currently has no hosted statuses or reviews for this draft head; these are VM results.Verified release artifact SHA-256: direct baseline
048f981931bb699b744b2863421a6599850f37812cdf45c42e96fcaa68e2d34e; headoptions-head28767aca7500cf9d2ccec4c66f5cf1618933d0a021aa7c856a489bab51e19625;in_process_containment38cef3f187b30db4c10bb93b23a4b7898901773d9fa69776944975e4e2bbd3e3.Independent review: lookahead cache
reviewed
4df679942c1a2e5825f920c893d9461eea962ce7, including #issuecomment-71999.verdict: cache correctness and scaling pass, with nonblocking P2/P3 follow-ups on performance evidence and coverage. no P0/P1. this is not an unqualified stable-speed-gate pass. no code pushed or merge performed.
findings
docs/plans/0067-slice2/compare-optimized.pyasserts both <=10% relative p95 growth and <=0.2 ms added p95 for each run, plus <=10% paired wall growth. In the three reports cited by the status (calendar805-r4-perf-final.log,-repeat.log,-confirm.log), 4 KiB relative growth is +15.13%, -5.90%, +7.35%; 32 KiB is +10.0107%, -15.98%, +2.52%. The first run really fails the unchanged relative gate, despite absolute additions of only 5.991 µs / 26.820 µs. Baseline 4 KiB p95 varies 39.604–54.172 µs, while head varies 45.595–51.676 µs. The harness always measures baseline before head, so temporal drift can change the comparison. The reported three-run median is accurate descriptive evidence, but does not replace the script's per-run acceptance rule. Before claiming a stable pass, define a fixed repeated-run acceptance policy in advance and alternate/interleave baseline/head order; retain failed runs and unchanged thresholds. This qualifies measurement confidence, not cache correctness.crates/markdown-view/src/lines.rs:630queriesb'~'; the asterisk/underscore patterns contain escaped punctuation but still query tilde. Add caret and all-escaped tilde/caret suffix patterns, ideally alongside a small permanent differential test. This does not invalidate the present double-tilde regression gate.correctness and differential probe
The cache preserves the old scan under the actual caller's invariants: one immutable full source per extraction, forward candidate offsets, and one fixed end per logical line. Each marker has independent state. A cached closer before the next start is discarded; scanning resumes after that closer. A new line starts beyond the preceding line's scanned end. Each extraction creates a fresh cache.
Odd/even backslash parity and adjacent-tilde rejection are unchanged. Backslash runs preceding distinct candidate markers do not overlap, so their backward checks remain amortized linear. Star/underscore formatting and code spans affect parser events, but do not introduce additional cache markers; lexical lookahead through code text is identical to the old scan. Backward requests take the reset path. This private helper is not a general cache for changing source buffers or arbitrary end changes within a line.
On dev-01, an uncommitted detached worktree at
~/Developer/Worktrees/review805-lookaheadcontains the exact pre-cache function from6514f9fdand an assertion comparing it with every cached result. Seed0x8054df67994, 150,000 generated sources, 4,990,569 direct queries, 150,000 production-parser extractions, zero mismatches. Inputs combine single/double/triple tildes, carets, stars, underscores, odd/even backslash runs, escaped markers, code spans, links, tags, Unicode, and LF/CRLF/lone-CR lines. Direct queries retain state across lines, skip candidates to pass closers, alternate markers, and separately exercise backward requests. Production extraction also compares every actual lookahead call. There is no mismatching input to report.Fresh dev-01/Nix checks through
~/bin/slot:CARGO_TARGET_DIR=/home/claude/Developer/Worktrees/calendar-805-r1/target cargo test -j4 --release -p calternal-markdown-view --locked seeded_differential -- --nocapture: pass.calendar805-r4/packages/editor:bunx --no-install vitest run test/calendar-0067.spike.test.ts test/markdown-contract.test.ts test/markdown-rows.test.ts: 211 passed. Both adapters pass the same authored expectations; all threecontracts/markdown-extraction/*.jsonhashes match between worktrees.Probe/native/editor logs: dev-01
~/review805-lookahead-probe.log,~/review805-native-contract.log,~/review805-editor-contract.log. Only the probe/instrumentation and required Nix files remain uncommitted.scaling assessment
yes, the gate is sensitive to the old quadratic scan. In the repeated
~~pattern, every tilde is rejected as adjacent, so the old function rescans all remaining candidates on every request. For m markers this is m(m−1)/2 candidate visits: doubling size approaches 4x, exceeding the 2.5x threshold. The cache scans that suffix once and subsequent requests are constant work, yielding O(n) total work. The~and several other patterns alone would not catch the old behavior because they quickly find a valid closer; the double-tilde case supplies the distinguishing fixture.The recorded locked perf-02 doubling ratios near 2x support this analysis. I inspected those results and the three raw speed reports, and verified the current baseline/head artifact hashes against #issuecomment-71999. I did not rerun timing measurements on dev-01 or claim an end-to-end worst-case time bound.
ADR 0003 evidence migration:
docs/plans/0067-slice2/all-build-evidence.txtSource commit: 515559bbbb8f449d48b4487af98b8b9723842c5a; snapshot from dev
55f35fcd. Full original source preserved below before repository removal/stripping. Design, code and test inputs are retained where applicable.ADR 0003 evidence migration:
docs/plans/0067-slice2/all-perf-evidence.txtSource commit: 515559bbbb8f449d48b4487af98b8b9723842c5a; snapshot from dev
55f35fcd. Full original source preserved below before repository removal/stripping. Design, code and test inputs are retained where applicable.ADR 0003 evidence migration:
docs/plans/0067-slice2/depth-green-evidence.txtSource commit: a85fd82c93e22f676ebab3e091efb6a4adc1e013; snapshot from dev
55f35fcd. Full original source preserved below before repository removal/stripping. Design, code and test inputs are retained where applicable.ADR 0003 evidence migration:
docs/plans/0067-slice2/depth-red-evidence.txtSource commit: a85fd82c93e22f676ebab3e091efb6a4adc1e013; snapshot from dev
55f35fcd. Full original source preserved below before repository removal/stripping. Design, code and test inputs are retained where applicable.ADR 0003 evidence migration:
docs/plans/0067-slice2/evidence.txtSource commit: 86735e6b7856222d56a7954f1e7543cd04d817f7; snapshot from dev
55f35fcd. Full original source preserved below before repository removal/stripping. Design, code and test inputs are retained where applicable.ADR 0003 evidence migration:
docs/plans/0067-slice2/final-static-evidence.txtSource commit: 515559bbbb8f449d48b4487af98b8b9723842c5a; snapshot from dev
55f35fcd. Full original source preserved below before repository removal/stripping. Design, code and test inputs are retained where applicable.ADR 0003 evidence migration:
docs/plans/0067-slice2/linear-build-evidence.txtSource commit: 62b7304f5280887cb30137591194087cf8a83d5e; snapshot from dev
55f35fcd. Full original source preserved below before repository removal/stripping. Design, code and test inputs are retained where applicable.ADR 0003 evidence migration:
docs/plans/0067-slice2/linear-native-evidence.txtSource commit: 62b7304f5280887cb30137591194087cf8a83d5e; snapshot from dev
55f35fcd. Full original source preserved below before repository removal/stripping. Design, code and test inputs are retained where applicable.ADR 0003 evidence migration:
docs/plans/0067-slice2/linear-red-evidence.txtSource commit: 62b7304f5280887cb30137591194087cf8a83d5e; snapshot from dev
55f35fcd. Full original source preserved below before repository removal/stripping. Design, code and test inputs are retained where applicable.ADR 0003 evidence migration:
docs/plans/0067-slice2/native-limits-evidence.txtSource commit: a9bddfa1152bb06625c90ef2cc8af2af295db183; snapshot from dev
55f35fcd. Full original source preserved below before repository removal/stripping. Design, code and test inputs are retained where applicable.ADR 0003 evidence migration:
docs/plans/0067-slice2/native-remaining-evidence.txtSource commit: 41642d671d3eb3b8cf7eb4261e20661b7bd00771; snapshot from dev
55f35fcd. Full original source preserved below before repository removal/stripping. Design, code and test inputs are retained where applicable.ADR 0003 evidence migration:
docs/plans/0067-slice2/optimization-after-profile-evidence.txtSource commit: 75a1577f5b98909836146e3f3309a23932a6aca2; snapshot from dev
55f35fcd. Full original source preserved below before repository removal/stripping. Design, code and test inputs are retained where applicable.ADR 0003 evidence migration:
docs/plans/0067-slice2/optimization-build-evidence.txtSource commit: 75a1577f5b98909836146e3f3309a23932a6aca2; snapshot from dev
55f35fcd. Full original source preserved below before repository removal/stripping. Design, code and test inputs are retained where applicable.ADR 0003 evidence migration:
docs/plans/0067-slice2/optimization-final-evidence.txtSource commit: 75a1577f5b98909836146e3f3309a23932a6aca2; snapshot from dev
55f35fcd. Full original source preserved below before repository removal/stripping. Design, code and test inputs are retained where applicable.ADR 0003 evidence migration:
docs/plans/0067-slice2/optimization-native-evidence.txtSource commit: 75a1577f5b98909836146e3f3309a23932a6aca2; snapshot from dev
55f35fcd. Full original source preserved below before repository removal/stripping. Design, code and test inputs are retained where applicable.ADR 0003 evidence migration:
docs/plans/0067-slice2/optimization-perf-evidence.txtSource commit: 75a1577f5b98909836146e3f3309a23932a6aca2; snapshot from dev
55f35fcd. Full original source preserved below before repository removal/stripping. Design, code and test inputs are retained where applicable.ADR 0003 evidence migration:
docs/plans/0067-slice2/optimization-profile-evidence.txtSource commit: 44165b952c736eb39928c8c3eeb05a42d97b71e8; snapshot from dev
55f35fcd. Full original source preserved below before repository removal/stripping. Design, code and test inputs are retained where applicable.Original file (35,640 bytes): optimization-profile-evidence.txt
ADR 0003 evidence migration:
docs/plans/0067-slice2/optimization-vectors-evidence.txtSource commit: 75a1577f5b98909836146e3f3309a23932a6aca2; snapshot from dev
55f35fcd. Full original source preserved below before repository removal/stripping. Design, code and test inputs are retained where applicable.ADR 0003 evidence migration:
docs/plans/0067-slice2/options-build-evidence.txtSource commit: 9064e29ac5ca9744cd369c1137a16bfd764e37d3; snapshot from dev
55f35fcd. Full original source preserved below before repository removal/stripping. Design, code and test inputs are retained where applicable.ADR 0003 evidence migration:
docs/plans/0067-slice2/options-memory-evidence.txtSource commit: bda07f4763567f710ee37b30022edf610c6fece2; snapshot from dev
55f35fcd. Full original source preserved below before repository removal/stripping. Design, code and test inputs are retained where applicable.ADR 0003 evidence migration:
docs/plans/0067-slice2/options-perf-evidence.txtSource commit: bda07f4763567f710ee37b30022edf610c6fece2; snapshot from dev
55f35fcd. Full original source preserved below before repository removal/stripping. Design, code and test inputs are retained where applicable.ADR 0003 evidence migration:
docs/plans/0067-slice2/package-arm-evidence.txtSource commit: 515559bbbb8f449d48b4487af98b8b9723842c5a; snapshot from dev
55f35fcd. Full original source preserved below before repository removal/stripping. Design, code and test inputs are retained where applicable.ADR 0003 evidence migration:
docs/plans/0067-slice2/package-mac-evidence.txtSource commit: 515559bbbb8f449d48b4487af98b8b9723842c5a; snapshot from dev
55f35fcd. Full original source preserved below before repository removal/stripping. Design, code and test inputs are retained where applicable.ADR 0003 evidence migration:
docs/plans/0067-slice2/package-x86-evidence.txtSource commit: 515559bbbb8f449d48b4487af98b8b9723842c5a; snapshot from dev
55f35fcd. Full original source preserved below before repository removal/stripping. Design, code and test inputs are retained where applicable.ADR 0003 evidence migration:
docs/plans/0067-slice2/resume-evidence.txtSource commit: 5e07725121a50980784aaac27ef92b807873f633; snapshot from dev
55f35fcd. Full original source preserved below before repository removal/stripping. Design, code and test inputs are retained where applicable.ADR 0003 evidence migration:
docs/plans/0067-slice2/round2-final-perf-evidence.txtSource commit: 195168428eb02cced156c9247a6b226f4b68bce0; snapshot from dev
55f35fcd. Full original source preserved below before repository removal/stripping. Design, code and test inputs are retained where applicable.ADR 0003 evidence migration:
docs/plans/0067-slice2/round2-initial-perf-evidence.txtSource commit: 195168428eb02cced156c9247a6b226f4b68bce0; snapshot from dev
55f35fcd. Full original source preserved below before repository removal/stripping. Design, code and test inputs are retained where applicable.ADR 0003 evidence migration:
docs/plans/0067-slice2/round2-inline-perf-evidence.txtSource commit: 195168428eb02cced156c9247a6b226f4b68bce0; snapshot from dev
55f35fcd. Full original source preserved below before repository removal/stripping. Design, code and test inputs are retained where applicable.ADR 0003 evidence migration:
docs/plans/0067-slice2/round2-memchr-perf-evidence.txtSource commit: 195168428eb02cced156c9247a6b226f4b68bce0; snapshot from dev
55f35fcd. Full original source preserved below before repository removal/stripping. Design, code and test inputs are retained where applicable.ADR 0003 evidence migration:
docs/plans/0067-slice2/round2-memchr-profile-evidence.txtSource commit: 948117ccc9dbcfa02e044dc5efc6484a32f414e1; snapshot from dev
55f35fcd. Full original source preserved below before repository removal/stripping. Design, code and test inputs are retained where applicable.ADR 0003 evidence migration:
docs/plans/0067-slice2/round2-memory-evidence.jsonlSource commit: 195168428eb02cced156c9247a6b226f4b68bce0; snapshot from dev
55f35fcd. Full original source preserved below before repository removal/stripping. Design, code and test inputs are retained where applicable.ADR 0003 evidence migration:
docs/plans/0067-slice2/round2-profile-evidence.txtSource commit: 948117ccc9dbcfa02e044dc5efc6484a32f414e1; snapshot from dev
55f35fcd. Full original source preserved below before repository removal/stripping. Design, code and test inputs are retained where applicable.ADR 0003 evidence migration:
docs/plans/0067-slice2/round2-tested-files.sha256Source commit: 195168428eb02cced156c9247a6b226f4b68bce0; snapshot from dev
55f35fcd. Full original source preserved below before repository removal/stripping. Design, code and test inputs are retained where applicable.ADR 0003 evidence migration:
docs/plans/0067-slice2/rules-contract-evidence.txtSource commit: 2c6cb7ab60a4349a981f46d6d4004e5341f15786; snapshot from dev
55f35fcd. Full original source preserved below before repository removal/stripping. Design, code and test inputs are retained where applicable.ADR 0003 evidence migration:
docs/plans/0067-slice2/rules-red-evidence.txtSource commit: 2c6cb7ab60a4349a981f46d6d4004e5341f15786; snapshot from dev
55f35fcd. Full original source preserved below before repository removal/stripping. Design, code and test inputs are retained where applicable.Original file (32,927 bytes): rules-red-evidence.txt
ADR 0003 evidence migration:
docs/plans/0067-slice2/README.mdSource commit: 195168428eb02cced156c9247a6b226f4b68bce0; snapshot from dev
55f35fcd. Full original source preserved below before repository removal/stripping. Design, code and test inputs are retained where applicable.Original file (72,984 bytes): README.md
ADR 0003 evidence migration:
docs/plans/0067-slice2/baseline-worker.rsSource commit: 515559bbbb8f449d48b4487af98b8b9723842c5a; snapshot from dev
55f35fcd. Full original source preserved below before repository removal/stripping. Design, code and test inputs are retained where applicable.ADR 0003 evidence migration:
docs/plans/0067-slice2/check-native-limits.pySource commit: 90b9e22ad7624549389362d884959ea9579c418b; snapshot from dev
55f35fcd. Full original source preserved below before repository removal/stripping. Design, code and test inputs are retained where applicable.ADR 0003 evidence migration:
docs/plans/0067-slice2/check-worker-package.pySource commit: 73a24063d9f7c318e3fc3f75060ab4cb0745aded; snapshot from dev
55f35fcd. Full original source preserved below before repository removal/stripping. Design, code and test inputs are retained where applicable.ADR 0003 evidence migration:
docs/plans/0067-slice2/compare-optimized.pySource commit: 343acaa60bab1995b7ed450865c506a9bbdfdc0e; snapshot from dev
55f35fcd. Full original source preserved below before repository removal/stripping. Design, code and test inputs are retained where applicable.ADR 0003 evidence migration:
docs/plans/0067-slice2/compare-options.pySource commit: 9064e29ac5ca9744cd369c1137a16bfd764e37d3; snapshot from dev
55f35fcd. Full original source preserved below before repository removal/stripping. Design, code and test inputs are retained where applicable.ADR 0003 evidence migration:
docs/plans/0067-slice2/gate-pool.pySource commit: 515559bbbb8f449d48b4487af98b8b9723842c5a; snapshot from dev
55f35fcd. Full original source preserved below before repository removal/stripping. Design, code and test inputs are retained where applicable.ADR 0003 evidence migration:
docs/plans/0067-slice2/options-memory.pySource commit: bda07f4763567f710ee37b30022edf610c6fece2; snapshot from dev
55f35fcd. Full original source preserved below before repository removal/stripping. Design, code and test inputs are retained where applicable.ADR 0003 evidence migration:
docs/plans/0067-slice2/scale-manifest.jsonSource commit: 73a24063d9f7c318e3fc3f75060ab4cb0745aded; snapshot from dev
55f35fcd. Full original source preserved below before repository removal/stripping. Design, code and test inputs are retained where applicable.Closing: head
4df67994is already in dev (reached via301bcc15); nothing left to merge. Branch kept.Pull request closed