neper

Readiness

Compiler
72.11%
118.98 of 165 capabilities
Library – e.lib
90.94%
25383 of 26269 declarations · 341 of 341 UI controls · 202.67 of 266 library capabilities
Tooling
54.55%
44.73 of 82 capabilities
NeperOS
86.60%
66.68 of 77 capabilities
Tests passing
Windows 1122 of 1122 passed (100%) · selfhost suite run.ps1, every named fixture, to its last line in 45 min (NeperOS paused) · 2026-10-23
WSL 1122 of 1122 passed (100%) · selfhost suite run.sh, every named fixture, to its last line in 41 min (NeperOS paused) · 2026-10-23

Backlog

223 pending capabilities in pickup order — the NeperOS stage first (D2119), then chart work, across all categories; the first row is next. Only what is not implemented yet is listed here; what each item has delivered is in work-evidence.md.

Backlog — 223 pending
IDWork and progressRemaining work
C104NeperOS stage 2: the kernel as an AVF guest on a Pixel (crosvm bring-up) (75%)Opened by D2143 when C103 closed D2119 stage 1. Acceptance (D2119 stage 2): the same microkernel boots as an Android Virtualization Framework guest that crosvm starts with the Linux arm64 boot protocol -- device tree in x0, GICv3, PSCI 1.0, an ns16550 serial console, and virtio console, block and vsock over PCI -- first under crosvm, then on a retail Pixel via `adb shell vm run` as a non-protected VM. Device addresse … (full text in docs/work-evidence.md)
C185macOS file and protocol associations, Finder-opened files and URLs (small bundles, application delegate) (90%)Built and verified 2026-10-25 (D5217): shell.associate_file/associate_protocol write a bundle under ~/Library/Application Support/Neper/Associations (Info.plist with CFBundleDocumentTypes or CFBundleURLTypes, a copy of the program as its executable), register it with lsregister -f and make it the default handler (LSSetDefaultRoleHandlerForContentType / LSSetDefaultHandlerForURLScheme); dissociate removes it. The shel … (full text in docs/work-evidence.md)
C186macOS permissions: camera, microphone and location status and request (80%)Built 2026-10-25 (D5218): permission_status reads AVCaptureDevice authorizationStatusForMediaType (camera, microphone) and CLLocationManager authorizationStatus (location); a status that is not decided or is restricted is Unavailable because shell.Permission has no not-determined state. permission_request asks for the camera and microphone through AVCaptureDevice requestAccessForMediaType with a global Objective-C bl … (full text in docs/work-evidence.md)
C187macOS biometrics (LocalAuthentication) and the photo picker (PHPicker) (50%)Built 2026-10-25 (D5220): biometrics through LocalAuthentication, capabilities().biometrics is LAContext canEvaluatePolicy for Touch ID asked at every call (true only where enrolled), permission_status(Biometric) is Granted there, and biometric_verify shows the system sheet through evaluatePolicy:localizedReason:reply: with a hand-built global block and waits up to a minute; without biometrics it answers Unsupported. … (full text in docs/work-evidence.md)
C188macOS print dialogs: NSPrintPanel and the page setup panel over the PDF printer (70%)Built 2026-10-25 (D5219): print_dialog runs NSPrintPanel modally over a copy of the shared NSPrintInfo with the page range preset to the caller's minimum and maximum, copies and range shown, and returns a Printer (the virtual PDF printer of D5212) carrying the chosen range and copies; page_setup_dialog runs NSPageLayout and returns paper and margins in hundredths of a millimetre (points converted). tests/macos/probe/ … (full text in docs/work-evidence.md)
C189macOS notices through UNUserNotificationCenter: removal, replacement and actions (40%)Built 2026-10-25 (D5221), the center path unverified: for a program with a bundle identifier (shell.bundled()), notice_publish and notice_update ask UNUserNotificationCenter for alert and sound authorization once (requestAuthorizationWithOptions with a hand-built global block, waiting up to a minute) and post a request whose identifier is neper-<id> (the same id again replaces it); notice_remove removes the delivered … (full text in docs/work-evidence.md)
C190macOS window system: accessibility, input methods, close veto, live resize, Retina (75%)Not done: a real input method composing Japanese, Chinese or Korean and its candidate window's place (C192); preedit display; focus, set-value and selection requests, tables, relations and live regions in the accessibility elements, and a real VoiceOver reading the tree (C192); native-resolution checks on a real Retina display (C192). A Retina scale change between displays needs no delegate method: every poll re-reads backingScaleFactor and the content size in pixels, so moving a window to a display of another scale shows up as a Resize with the new pixel size, and window_metrics reports the new scale_percent. Still to see on a real Mac: a drag of an edge by a person repainting smoothly through the handler.
C191macOS application bundles and distribution: a bundle command, icon, code signing, notarization (75%)Not done: running a Developer ID signature and notarization, which need an Apple developer identity this repository does not have; a neper command that calls the script; Info.plist entitlements. Done when a notarized bundle has been built and opened on a clean Mac.
C192macOS verification on real hardware: what the CI runners cannot do (20%)The checklist is a program, written 2026-10-25 (D5228) and compiled for both architectures but never run: tests/macos/manual/main.e. Build it on the Mac (neper-self emit-executable tests/macos/manual/main.e . aarch64 macos manual; x64 on an Intel Mac) and run ./manual from a Terminal: it goes through one check at a time, says what to do, waits where a person is needed, and writes PASS, FAIL or skipped lines to ~/nepe … (full text in docs/work-evidence.md)
C193macOS GPU: a Metal backend for e.gpu (the Vulkan fixtures cannot run on a Mac) (95%)Remaining: stronger atomic orders (Metal 3.1 has no fence), 64-bit atomics and subgroup operations on 64-bit values, switch and helper calls (SPIR-V has neither), the Windows and Linux suites for the shared compiler change.
C194macOS corpus: the fixtures that are only reported (extern_many, freestanding, os_syscall, x_tds_integrated, gpu_*) (70%)Done 2026-10-25 (D5225): the Mac corpus asserts every fixture that can run on a Mac (1108 pass, 0 fail, 0 info) and skips seven with the reason a Mac has by nature, as SKIP lines counted apart in the TOTAL: extern_many (four glibc extensions libSystem lacks, then it reads its own ELF header), freestanding and os_syscall (an ELF image, Linux system call numbers), gpu_vulkan_raw and gpu_fault_unchecked (Vulkan, which a … (full text in docs/work-evidence.md)
C195macOS shell polish: drag files and images out, session restore, Dock overlay image (70%)Not done: session restore (restart_register) stays Unsupported, because a launchd job with KeepAlive starts at once and a Mac restores a program's windows through the system's own saved state, which is not a command line to register; promised files (a file made at the drop's destination) and a real pointer drag with the files landing in Finder (C192).
C107NeperOS shell 3: the e.os surface on NeperOS (os.neperos.e) (93%)Queued by D2148. Acceptance: an `os` variant for target `aarch64 neperos` over NeperOS system calls -- memory from untyped/frame capabilities, threads, monotonic time from the counter and wall time from the RTC the device tree names (PL031 on virt), file I/O through the C106 server, stdout and stderr through the console server; e.io, e.fs, e.time, e.thread and e.fmt compile unchanged for NeperOS, and their existing f … (full text in docs/work-evidence.md)
C092M3-04: e.gpu runtime surface: Device, Queue, Buf[T], launch, sync, barrier (95%)`e.gpu` at `surface: partial`: `open`/`close`/`has`/`info`, `queue` and `queue_with`, `Buf[T]` as a generation-checked handle into a per-device table, `alloc`/`upload`/`write`/`download`/`release`/`len`, tokens with `done`/`wait`/`wait_for`, `sync`, `grid1/2/3`, and `gpu.launch[K]` as the third argument-pack intrinsic: the pack is checked against the kernel's parameters (`Buf[T]` for a device slice, a value of the pa … (full text in docs/work-evidence.md)
C093M3-05: device selection: devices, DeviceInfo/DeviceKind/DeviceKey, open_id, info (95%)Missing: a CUDA backend (M4), AmbiguousDevice from real hardware, MIG.
C094M3-06: device-callable inference into the kernel-owning module's .em (95%)Missing: function-pointer helpers.
C095M3-07: GPU floating point: no contraction, math.fma only, denormals, ftz (88%)Missing: f64 div/sqrt, NVIDIA DenormPreserve, ftz+f64 on the CPU.
C096M3-08: determinism harness, the device-reached edit case (90%)PART (D4201-D4202): gpu_device_edit edits a helper two modules from the kernel and requires main and lowhelp rebuilt, midhelp kept, hot image equal to clean, device equal to host, -j 1 and -j 3 --perturb images equal; also fixed emit-em-all --incremental rebuilding main/e.gpu/e.sync every time (D4202). Run by hand on x64 Windows and the Linux target; the run.sh block not executed.
C083Determinism harness (95%)compiler fixed point on both platforms, artifact-linked equals source-linked for every artifact fixture, and incremental equals clean for link/incremental (D205); the compiler's own 31 artifacts, listed in graph order, link byte-equal to the source build, and so does the set with one module rebuilt incrementally (D213, D214) -- `link-em` lays functions out in the order the artifacts are given, so the order is an inpu … (full text in docs/work-evidence.md)
C088Bootstrap frozen and deleted (0%)bootstrap/neper.c still builds stage 0. Follow-on (D1898): deletion is also the biggest LLMx lever — until it lands, agents write M1 per the docs and compile neper-0 plus quirks, and failures like T021's look like agent error.
T004run (93%)`run PATH ROOT ARCH OS OUTPUT [--release] [--arena SIZE] --json` (D231): a build, then the program is launched with its stdout and stderr to files beside the executable and read back whole into one `run` record with the process exit code, captured bytes base64 when they are not UTF-8 (section 2); tests/conformance/tools/run.e exits 3 and writes a non-UTF-8 stderr byte. A trap's record is read back out of stderr as th … (full text in docs/work-evidence.md)
T011info (95%)`info --json` (D229): the header, one `info` record -- tool version, the one language profile, the commands the stream reaches (`check`, `info`, `parse`, `tokens`), the host target, both build targets, the one CPU level the emitter honours -- every collection sorted by bytes, and a result; tests/conformance/tools pins it per host. `commands` names every section 1 command the stream reaches -- build, check, dis, fmt, … (full text in docs/work-evidence.md)
T012v1 schema validation of emitted records (95%)Missing: the producer (M6 pacman P0).
T016Conformance corpus accept/reject/format/tokens/parse/tools (95%)Missing: a live model pass rate (provider and budget).
T021Compiler hashes from the library (95%)Missing: the suite's stage-one (bootstrap) build verification.
T023Generated-code benchmark corpus (85%)Missing: a live model's numbers (needs a provider and budget; T027).
T026Agent workflow adoption: context-file before file reads, patch or plan-* before scripts (85%)REMAINING: the measured movement of lang-stats ctx Ktk and script% on new sessions. PART (D4303): measured over 14/7/3 days: script share 6-8% (baseline 38%), ctx 459/448/377 Ktk, $/KB 0.674/0.600/0.439, turns/ed 6.1/5.9/6.4. Open: turns/ed against Dart's 3.3-3.8, read volume.
T027H12 v1 precursor: held-out two-family evaluation on real tools (5%)NOT DONE: register the model families and versions, the held-out task ids and the OpenCode arm, archive baseline results, and run (needs provider access and budget).
T028Repeated diagnostics: fixtures and fingerprints for the codes that recur across a repair (85%)Over 198 observed repairs in the transcripts (lang-stats.py, REPAIR table), a compile diagnostic is fixed in the next reply but only 15.7% of repairs took one edit, and 61.5% of consecutive failed builds repeat an error code from the failure before -- E-TYPE-0002 and the other kind-level codes cannot tell a second site from an unfixed first one. H31's cross-run fingerprints are T2; the v1 precursor is a fixture per r … (full text in docs/work-evidence.md)
T029Rename fix for a local that collides with a module-scope name (E-NAME-0003) (85%)E-NAME-0003 ended 35 of the 134 builds that failed on a compile code in 2026-09-20..27, the most of any code: common nouns that large modules use as functions (`text`, `level`, `row`, `placeholder`, `at`, `cell`, `icon`), `use` qualifiers (`source`, `bytes`, `check`) and the reserved `target`, `Vec` and `i8`. D66's no-shadowing rule stays; what is missing is a fifth fix kind beside the four in src/main.e's diagnostic … (full text in docs/work-evidence.md)
C082Work-stealing pool, parallel parse and codegen (75%)the front end runs in waves of eight workers (D321); the modules are lowered, selected and written as artifacts on eight workers with checkers that share the declarations (D325); and the same workers check the bodies and build both inlining oracles first, each with a checker forked from the program's and importing the types of a body copied from another worker's oracle (D326). A two-million-line program builds cold i … (full text in docs/work-evidence.md)
C098AES-GCM at OpenSSL's speed: AES and carry-less multiply instructions for e.crypto.aead (80%)Missing: 8-way interleave and fused CTR+GHASH, ARMv8 AES/PMULL, VAES.
C150NeperOS storage remainder: per-app directories, Share, thumbnails, zip, external storage, large files (85%)Remaining: per-app quota, sharing from installed apps, browsing into and writing to folders on the external card, Camera/Wallet saving beyond /DCIM, Downloads and /Wallet.
C151NeperOS Dynamic, the server side: protocol, model, compile-and-repair, signing, many installed apps (50%)Remaining: live model, a fourth icon, the NIR scanner.
C152NeperOS Document remainder: PDF images and vectors, Office layout, pinch zoom, attachments (75%)Remaining: pinch zoom and page strip (one pointer, no two-finger gesture), opening from Wallet pages, PDF glyph outlines, clipping, Indexed images, soft masks.
L048Reference drivers: k8s labels, AWS subset, SSH transport (90%)Missing: response parsing, rest-json, S3 handlers, consul/vault/etcd/docker clients.
T032MCP server, share-token, and audit-trail service surface (0%)Appdor services/mcp-server (stdio NDJSON plus HTTP JSON-RPC, caller-JWT RLS scoping), src/sharing share tokens (b64url payload plus HMAC, distinct from jwt.e), src/audit record taxonomy with CSV export, src/templates workflow recipe catalog as data. Serve via e.net.http plus e.os.proc stdio and e.db; DB-poll worker shape (no AMQP) maps to e.task plus e.db.pool.
L054HTTP fuzz and host-sweep helpers for authorized scanning (0%)e.net.http plus e.fmt.html/xml and e.text.regex cover web-test transport and parsing, but the wfuzz/gobuster pattern (payload encoders, concurrent sweep runner, finding records) is rebuilt by every scanner. Add e.net.http extensions plus a recipe: payload-encoder table, sweep runner over e.task with e.ratelimit and e.cancel, stable-ID finding records via e.algo.hash; fixtures use fake HTTP only, target authorization … (full text in docs/work-evidence.md)
L055Certificate issuance for authorized TLS-intercept testing (e.crypto.x509) (0%)e.crypto.x509 parses and verifies only (parse/parse_pem/pool/verify_signature in lib/e/crypto/x509.e) -- the auto-CA plus forged-leaf half of the intercept-proxy story has no issuance path. Add CA generation plus leaf issuance/signing over e.crypto.sign (no new crypto primitives) with fixtures: issued chain verifies under a pinned CA, expiry/SAN/DNS-name goldens, fail-closed on wrong issuer. Plan: docs/ethical-hackin … (full text in docs/work-evidence.md)
L065Complete native code editor in e.ui.code_editor (CodeMirror 6 / JustCode parity) (30%)Missing: widget, IME/accessibility, bidi, decorations, snippets, LSP, Scratch .sb3, embedded-language HTML.
L066Safe structured Markdown viewer over e.fmt.markdown and e.ui.control (90%)Missing: a real shaper, pointer-capturing draw region.
L067Refresh-stable explorer tree adapter over e.ui.collection (90%)Missing: hu/sq/mt/vi, host enumeration and mutation authorization, real-theme run.
T033Project source metrics by language with snapshot deltas (90%)NOT DONE: reuse of a shared language registry (none exists), a Neper-native command.
T034Reattachable harness journal and work-status panel (0%)Planning only (D1812). Reference: JustCode src/perp.js. Not yet: a tooling panel composed from existing collection/overlay controls and L066's safe viewer, reading persistent journal/status through a supplied adapter; timeline/detail/filter views, follow-tail, path-specific watcher refresh with bounded fallback, absent-harness handling and close/reopen reattachment. Work lifecycle stays in the harness, so closing the … (full text in docs/work-evidence.md)
T035UI resource and command consistency audits (50%)NOT DONE: running it against a real registry manifest; the repository has no resource, translation or command catalogue to emit one.
L098Equation (math typesetting) rendering in e.text (98%)Missing: MathML input for the new constructs.
L125SVG document rendering in e.gfx (95%)Missing: feMorphology/Turbulence/Image/Tile/ComponentTransfer/lighting/ConvolveMatrix/DisplacementMap, filter shorthand, nested filters in replays.
L135Micro-slivers: s2, bincode-style codec, magic sniff, shell words, host lookups, signals, byte-unit, rational (95%)Missing: user database (getpwuid), full locale-variable cascade.
L136Terminal emulator engine in e.ui (80%)Missing: PTY ownership, per-cell colour drawing in the view.
L148Scheduler control: day, week and agenda views (95%)Missing: painting and pointer dispatch.
L150NodaTime-style dates: non-ISO calendars, patterns, maps (99%)Missing: further locales beyond Babel's CLDR subset.
T036OpenCode harness skill and agent routing (80%)NOT DONE: a live OpenCode first-run smoke (static routing check only).
T039T2.0 foundations: snapshots, cache identities, bounded transport (80%)NOT DONE: per-command schema versions and bounds, the versioned edit/fix schema with expected-source hashes, bounded run --json capture, H15/H16/H24 acceptance runs. ACCEPTANCE ROWS FOUND (D2319 follow-up): the suite carries fault injection for apply (--fault-apply), cancellation (--fault-cancel), hash collision (--fault-collision), a worker running dry (--fault-dry, six rows), an interrupted edit (--fault-edit) and cache writes (--fault-write), the ten-thousand edit/query/revert soak under a fixed budget (run.ps1 batch soak), -j 1 versus -j 3 --perturb byte equality, and the seeded Windows run reached them green (run 16, D2317). REMAINING GAPS, named: no test of a source file changing between the lazy read of two modules of one check (a mixed-version snapshot), no queued-request saturation test (there is no request queue to saturate: `query-batch` is one process, one request at a time), and package-resolution/generator-input identity waits on M6. SUITE (run 18): the capabilities golden and the schema validation pass on Windows.
T040T2.1 understand and check: context, queries, provenance, diagnostics (5%)NOT DONE: every other T2.1 obligation (compiler-derived context beyond context-file, reusable queries, provenance, compiled guidance, unsafe enumeration, tiered checks, optimization explanations, causal diagnostics) and memory budgets.
T041T2.2 edit and test evidence: plans, contracts, structured tests (15%)Still open: executed/cached/not-run evidence, structured expected/actual values, setup/cancellation outcomes, output artifacts, change contract (H35), runtime failures (H41), compatibility diff (H42). SUITE (run 18, seeded Windows, static gate and live-API assertion excluded): the --compact, --why and --retries rows, the flaky fixture and the capabilities golden all pass.
T042T2.3+T2.4 trusted host: policy, verified receipts, durable tasks (60%)NOT DONE: the transport that serves handles, retention/reclamation, the host that runs obligations and observes effects, OS sandbox mediation, replay description. SUITE (run 19, seeded Windows, static gate and live-API assertion excluded): the six x_agent_* rows pass in run.ps1 together with x_migrate, the capabilities, --compact, --why and --retries rows; the run stopped later at a NeperOS thread-order assertion (D-free fix in 9e3587d2, interleaved scheduler output).
L163Fast, small PNG encoding: dynamic Huffman, lazy matching and table CRC (85%)Missing: the deflate matcher is still ~4x C zlib, the nine-run protocol. PART (D4400): deflate/PNG encode about 2x faster with byte-identical output (callgrind 2.97 G -> ~1.5 G instructions, 800x500 adaptive ~225 -> ~120 ms wall, 48-case old/new differential identical, algo_deflate/fmt_png/fmt_png_adaptive/fmt_zlib/fmt_gzip pass). Still ~1.5-2x C zlib; nine-run protocol not run.
C153NeperOS Camera remainder: the sensor feed, video files, flash and exposure hardware, the QR reader (0%)Split from C122 (D2397): the Camera writes photos and straightened scans as PNG files in /DCIM that Photos lists, with focus ring, exposure steps and a timer. Acceptance: (1) a camera driver server (virtio-video or USB video under QEMU, the Pixel camera later) delivering frames to the viewfinder at a steady rate, front and rear chosen from the devices found; (2) video recording with a codec from the library and audio … (full text in docs/work-evidence.md)
C154NeperOS Wallet remainder: encrypted storage, MRZ from an image, editing, camera scanning (85%)Remaining: a real OCR-B passport page untested (font unavailable), Camera 186x300 scan sheet too small for MRZ, TD1/TD2 zones, vault password change, opening a QR URL in the Browser.
C155NeperOS SSH remainder: Secure credentials and Keychain, saved hosts, port forwarding, SFTP, keys (50%)Remaining: port forwarding screen, OpenSSH key import.
C156NeperOS Weather remainder: the current location and weather alerts (75%)Remaining: other national feeds, location permission UI.
C157NeperOS Call remainder: telephony and audio, shared contacts, voicemail, notifications (15%)Remaining: telephony/SIP and audio path, shared contact store for Messages/Mail/Wallet, favorites and search, missed-call notifications and DND, voicemail, SIP loopback fixture.
C158NeperOS Mail remainder: accounts, folders and threads, HTML and attachments, notifications (70%)Remaining: OAuth, Secure-stored passwords (C116), drafts/signatures/contact picker, IDLE, Camera/Photos attachments, icon badge.
C159NeperOS Browser remainder: CSS layout, images, forms, cookies, storage and downloads (70%)Remaining: HTTP/2, flex/grid layout, incognito, search engine and suggestions, per-site permissions.
C160NeperOS Maps remainder: map data, location, search and turn-by-turn navigation (65%)Remaining: road graph from an extract, walking/cycling/transit, saved places, rerouting and voice, rotation/pinch.
C161NeperOS sensors remainder: a sensor server and drivers, the gyroscope, GPS and the location service (85%)Missing: real sensor hardware (the hub is scripted).
C162NeperOS Level remainder: fast sensor stream, self-test, orientation modes, feedback (90%)Remaining: the 50 Hz stream from the sensor server, Level's modes, readings and feedback, a recorded-trace fixture. PART: level, level_stream, level_selftest, level_kept, level_kept_again boot rows pass.
C163NeperOS Flashlight remainder: a finer timer, quick toggles, patterns, torch policy (80%)Split from C133 (D2422): the Flashlight drives a simulated torch through the settings server. Acceptance: (1) a finer timer (a 10 ms tick or a timer capability in the kernel) so a Morse unit can be 100 ms and a strobe can reach 10 flashes a second, with a speed control; (2) a quick toggle from the status bar and the lock screen; (3) patterns kept as a list the user can add to; (4) the torch turned off when the camera … (full text in docs/work-evidence.md)
C164NeperOS Chat remainder: TLS, accounts and presence, history, files, encryption (55%)Remaining: files and images, server history, notifications, E2E.
C165NeperOS Meet remainder: media transport, capture, codecs, screen sharing (0%)Split from C135 (D2424): Meet signals over a WebSocket and shows the people and the speaker the server names. Acceptance: (1) media over C117 (needs UDP in the network server): a WebRTC-style stack (ICE, DTLS-SRTP) or a simple SFU protocol; (2) capture: the camera frames from the camera server (C153) and the microphone from e.audio, encoded and sent with a codec from the library, the received streams decoded into the … (full text in docs/work-evidence.md)
C166NeperOS Recorder remainder: the microphone and speaker, transcription, background recording (40%)Remaining: transcript with words timed to the playhead and tap-to-seek, lock-screen control, scripted-source record-and-play fixture.
C167NeperOS Translate remainder: a real model, more scripts and inputs, history and speech (20%)Remaining: 40 languages and an on-device model, Arabic/Devanagari/CJK/Thai/Hebrew shaping, voice/camera/handwriting input, conversation mode, speech output, small-test-model fixture.
C168NeperOS Steps remainder: background counting, history, profile, notifications (85%)Remaining: real sensor hardware (scripted hub).
C169NeperOS Blocks remainder: fast fall, held keys and drags, score board, sound (95%)Missing: sound.
C170NeperOS Secure remainder: HOTP, QR and export, clipboard and autofill, biometrics, breach check (70%)Remaining: fingerprint/face unlock, clipboard/autofill service, Wallet and API keys kept in Secure.
C171NeperOS AI remainder: streaming, keys in Secure, conversations, files and tools (50%)Remaining: those boots.
C172NeperOS Document remainder: PDF painting, zoom, tables, HTML view, spreadsheets (75%)Remaining: pinch zoom, Browser and Mail on the shared HTML view, Browser downloads and open-with sheet, Dynamic source view, fixtures on real PDF/DOCX/PPTX from independent producers (only hand-assembled, reportlab and generated samples so far).
C173NeperOS Dynamic step-one remainder: the scanner, the versioned app kit, removal (60%)Remaining: NIR-level scanner walk, signed revocation list fetched anew.
C174NeperOS Clock remainder: a background ringer with the app closed (95%)Split from C145 (D2433): the Clock's alarms, timer and stopwatch persist in /clock. Acceptance: (1) a background service started by the kernel in the unified boot reads /clock, owns the schedule and, when an alarm or timer is due, raises a notification through the status server (C111) and starts the ringer even with another app or the home screen in front; (2) Snooze and Dismiss from the notification, written back to … (full text in docs/work-evidence.md)
C175NeperOS clipboard remainder: Paste in every field, a lifetime setting, clear on lock (80%)Missing: Copy takes plain text only, 32 bytes at most.
C176NeperOS settings recipients remainder: audio, fingerprint, radios, battery (80%)Remaining: a real battery driver and Bluetooth/Hotspot peers.
L164gRPC remainder: server side, deadlines and stubs from .proto descriptors (95%)Missing: HTTP/3 (no oracle), hedging combined with transparent retry has no vector, per_attempt_ns has no grpcio oracle.
G001e.data.table: typed columns, null bitmaps, string dictionary + heap, bulk load, journal (70%)NOT DONE: row compaction, a boxed Value accessor, u16 dictionary ids, the e.db cursor adapter, a Linux run, and the load/rank timings against the design targets (load <= 250 ms).
G002e.data.tableview sort: key derivation, stable radix, multi-key, comparer slow path (60%)NOT DONE: the parallel driver, cachegrind budget check, Date/Enum kinds, single-row repositioning, a Linux run.
G003filter tree compile + evaluate (dictionary fast path, narrowing, parallel) (70%)NOT DONE: parallel evaluation, relative-date operators, custom functions, the MTG 56,095 count (needs the real pool), a Linux run.
G004group + summary engine, expansion keyed by path, group summaries/footers (70%)NOT DONE: group footers, date-part grouping, parallel passes, incremental upkeep under edits, a Linux run.
G005search / locate / value list (70%)NOT DONE: search on numeric display text, binary search of a sorted dictionary, match highlighting, find-panel syntax, a Linux run.
G006e.ui.datagrid v1: bands, footer, group rows, filter row, navigator, indicator, preview, no-data (95%)NOT DONE: whole-frame golden images (the harness has no fonts; glyph goldens need a font decision), a column chooser window, the filter row below the header, a Linux run.
G007editing: cell kinds + editors + write-through + lock (80%)D3916: tableview.reposition/refilter_row/row_matches (data_tablerow: 150k rows vs full apply_sort/apply_filter, every key kind, mutations caught); datagrid bool toggle, select editor (choice), can_edit lock, value_changed old/new, begin_batch/end_batch (ui_datagrid section 13, exits 310-337). Open: undo, paste helper, Linux run. Proposed by docs/grid.md section 9 (MTG Studio v3 migration grid, 150k records, DevExpres … (full text in docs/work-evidence.md)
G008custom painters + row style + conditional formatting rules (70%)D3917: e.ui.gridrules (cell-is, text, blank, above/below, top/bottom with ties and percent, duplicate/unique, 2/3-colour scale, data bar, icon set; per-field priority, whole-row, refresh by column version) and datagrid set_rules rendering (fill, bar, icon, ink, bold); ui_gridrules fixture incl. 150,000 rows vs own count, ui_datagrid section 14 pixel probes, mutations caught (exit 83, 351); v5 cardgrid uses a data bar … (full text in docs/work-evidence.md)
G009layout + filter persistence, customization panel, quick customization (0%)Proposed by docs/grid.md section 9 (MTG Studio v3 migration grid, 150k records, DevExpress TcxGrid parity; measured Delphi baselines in section 6.1). Design: grid.md section 5, mapping and acceptance rows: section 7. Acceptance: round-trip; unknown/new column tolerance.
G010export + clipboard (+ print hand-off) (0%)Proposed by docs/grid.md section 9 (MTG Studio v3 migration grid, 150k records, DevExpress TcxGrid parity; measured Delphi baselines in section 6.1). Design: grid.md section 5, mapping and acceptance rows: section 7. Acceptance: CSV/XML/HTML/XLSX of filtered+grouped view equals golden.
G011MTG Studio reference app: card-pool/deck/collection views over a 150k fixture (0%)Proposed by docs/grid.md section 9 (MTG Studio v3 migration grid, 150k records, DevExpress TcxGrid parity; measured Delphi baselines in section 6.1). Design: grid.md section 5, mapping and acceptance rows: section 7. Acceptance: all §7 rows exercised; benchmark table filled with measured numbers.
G012pixel-perfect parity with the v3 grid: reference recordings, state catalogue, metric tokens, visual and behavioural diff ledger (85%)Requirement added by the owner 2026-10-13 (docs/grid.md section 1.1): the grid UI and behaviour must be a pixel-perfect equivalent of MTG Studio v3 (many visual inconsistencies in v5/cardgrid). Record mtgstudio.exe (or owner-supplied screenshots) per state at 100/125/150% DPI; extract metrics into one token table; compare Neper offline renders region by region; replay recorded event traces for keyboard, mouse, timing … (full text in docs/work-evidence.md)
L165UI looks: one widget set in a Windows (MTG Studio v3) look, then macOS/iOS and Android (40%)NOT DONE: any control at matched or ready, dark and high-contrast sheets beyond the button, Cupertino and Material.
L166Browser M1: e.ui.browser shows a static page (no JS) (50%)Plan docs/browser-progress.html, decisions D5114 to D5122. Acceptance: (1) tracker phase P0 (0.1 to 0.8): oracle frozen, html5lib, WPT reftest, pixel-probe and render-tool harnesses, Ahem asset, baselines; (2) P1 parse and style core: 1.1 to 1.14, html5lib at least Dart's 1549 of 1791; (3) P2 2.1 to 2.3 block and inline layout over e.text; (4) P3 3.1 to 3.6 and 3.11 display list, scene tiling, backgrounds, borders, t … (full text in docs/work-evidence.md)
L167Browser M2: modern CSS layout (35%)Plan docs/browser-progress.html. Needs L166. Acceptance: (1) P2 2.4 to 2.15: floats, positioned and sticky, tables, flex, grid, multicolumn, intrinsic sizing, overflow, transforms, replaced elements, form controls, hit testing and geometry; (2) P3 3.4, 3.5, 3.8, 3.9 gradients, shadows, clip-path, mask, filters; (3) 9.2 WPT CSS reftests reproduce at least Dart's 116 of 122 and the six known failures are triaged; (4) t … (full text in docs/work-evidence.md)
L168Browser M3: the real web without JavaScript (25%)Plan docs/browser-progress.html. Needs L167. Acceptance: (1) Wikipedia with its 12k-node table, MDN with web fonts, craigslist and abv.bg match the Dart goldens within the per-site tolerance; (2) P3 3.13, 3.15, 3.16 SVG, web fonts; (3) P4 4.3 HTTP/2 transport, 4.4 and 4.5 TLS 1.3 interop and TLS 1.2, 4.8 HTTP cache, 4.11 to 4.14 cookies, CORS, SSRF, CSP, 4.17 filter lists; (4) core N.1 and N.2 scene limits and glyph … (full text in docs/work-evidence.md)
L169Browser M4: JavaScript engine and DOM bindings (30%)Plan docs/browser-progress.html, decision D5115. Needs L166; engine work (5.1 to 5.16) can start in parallel with L167. Acceptance: (1) P5 5.1 to 5.16: parser, compiler, VM, heap and GC, object model, builtins, ECMAScript RegExp, Promise and microtasks, modules, test262 runner with feature-gated pass targets, benchmarks against QuickJS; (2) P6 6.1 to 6.8 and 6.14 bindings: DOM, CSSOM, events, timers, fetch, storage, … (full text in docs/work-evidence.md)
L170Browser M5: Dart parity reached, NeperOS Browser replaced (15%)Plan docs/browser-progress.html. Needs L168 and L169. Acceptance: (1) every tracker row with track mig is done; (2) html5lib at 100 percent (1.3, 9.1); (3) 7.15 neperos/src/browser.e replaced by e.ui.browser and C159 closed; (4) 4.8 and 4.9 cache gaps, 4.10 encrypted cache, 7.8 to 7.12 shell items; (5) 9.7 performance and memory budgets met against the 0.7 baselines; (6) 9.8 fixtures registered in run.ps1 and run.sh, … (full text in docs/work-evidence.md)
L171Browser M6: beyond Vaper (gap items) (0%)Plan docs/browser-progress.html. Needs L170; individual gap rows may start earlier when nothing blocks them. Acceptance: every tracker row with track gap or core is done or explicitly deferred with a decision: Shadow DOM and custom elements (6.16), Workers and Service Workers (6.18, 6.19), contenteditable and Selection (6.11, 6.12), process isolation and OS sandbox (8.1 to 8.3, N.6), DevTools (7.13), WebAssembly (5.1 … (full text in docs/work-evidence.md)
C213e.ui in a browser: a real phone's virtual keyboard and IME (0%)Android Chrome checked by hand (D5890, D5891: suggestion replacement, touch hold, drag selection, toolbar); iPhone simulator (iOS 17.5 Mobile Safari, .github/workflows/ios-sim.yml, D5900) passes typing, Backspace and the hold toolbar; a real iPhone and a composing keyboard are still unchecked. Needs a device. Prepared: `node scripts/serve-wasm.mjs --isolated --host 0.0.0.0` and open /tests/wasm/browser/phone_probe.ht … (full text in docs/work-evidence.md)
L176OpenGL 5: CGL context on macOS (GL 4.1 core, presentation only) (0%)Design docs/opengl-plan.md, D5879, D5880. Needs L173. Acceptance: an NSOpenGLContext on the content view that window_native returns; follows the Retina backing scale; checked on the macOS CI runners. Metal (C193) keeps the Mac's compute.
T048OpenGL verify 4 (verify-only): full suites for the shared compiler change (0%)Verify-only turn, no edits. Needs T047. Run the full suites on both hosts for the glsl target change and report the tails.
C219OpenGL 16: the Android target, executable form (90%)Remaining: e.gpu compute on a device with GLES 3.1+. The emulator stops at 3.0 on this host: SwiftShader, -gpu host on the Iris Xe (draws there too) and -feature GLESDynamicVersion all report ro.opengles.version 196608, and -feature GuestAngle does not boot, so this needs a real phone. Design docs/opengl-plan.md, D5884. Needs T047. Acceptance: --target android-x64 and android-a64 emit a PIE ELF for /system/bin/linker64 with DT_NEEDED libc.so, libdl.so and liblog.so; os.android.e is os.linux.e without what Bionic and SELinux refuse; the executable runs under adb shell on the x86_64 emulator, and T047's fixtures pass there on GLES.
T050Regression test for the heap-backed device-lost path (D5949) (0%)D5949 keeps a device lost after a failed Metal or OpenGL command, but no fixture makes dispatch_wait fail, so nothing fails if the sticky flag or the state_of check is removed. Acceptance: a fixture that makes one launch's wait fail (a fault-injecting HeapDriver or a deliberate device loss on a Mac), then checks that info, has, queue creation and a later launch all report Lost whichever is called first, and that clos … (full text in docs/work-evidence.md)
C224x86-32 emitter: x86-windows and x86-linux targets (0%)Opened 2026-11-03 from docs/roadmap.md:179 by the single-list audit; not previously a queue row. Acceptance: `neper build --target x86-linux` and `x86-windows` emit runnable 32-bit executables (cdecl/stdcall, one vector slot per spec section 5). The M1/M2 corpus and bidirectional C ABI fixtures pass on both. Size XL. Checked open: grep src/*.e for x86-linux/x86-windows/ia32/i386: no hits; only codegen_x64.e and codeg … (full text in docs/work-evidence.md)
C225aarch64-windows target: ARM64 PE emitter, linker and runtime (0%)Opened 2026-11-03 from docs/roadmap.md:178 by the single-list audit; not previously a queue row. Acceptance: `--target aarch64-windows` links a PE32+ ARM64 executable with the own linker and runs hello plus the conformance corpus on a Windows-on-ARM host or emulator. Spec section 13 lists the target, so it stops being an option error. Size L. Checked open: aarch64 exists for linux/macos/none/neperos (codegen_a64.e, l … (full text in docs/work-evidence.md)
C226PTX emitter and CUDA compute backend for e.gpu (.Cuda devices open and launch) (0%)Opened 2026-11-03 from docs/roadmap.md:180 by the single-list audit; not previously a queue row. Acceptance: A kernel compiles to PTX and `e.gpu.open` on a `.Cuda` device launches it through the driver API. GP-10 kernels are bit-identical with the CPU backend, or within their stated ULP bound for the approximate builtins. Size XL. Checked open: grep -i ptx across src/lib/tests/docs/work-done.jsonl: no hits. lib/e/gpu … (full text in docs/work-evidence.md)
C227PDB writer in the own PE linker (MSF, DBI, module, symbol and line streams) (0%)Opened 2026-11-03 from docs/roadmap.md:183 by the single-list audit; not previously a queue row. Acceptance: A `--linker=own` Windows build writes a `.pdb` that WinDbg and Visual Studio symbolicate with function names and lines, with no type stream. Output is byte-deterministic. Size L. Checked open: grep -i pdb in src/ and lib/: no writer; src/link_pe.e writes .text/.idata only; the work-done PDB hit is the CodeView … (full text in docs/work-evidence.md)
C228neper-format debug side table in .em (types, locals, scopes, variable locations) (0%)Opened 2026-11-03 from docs/roadmap.md:185 by the single-list audit; not previously a queue row. Acceptance: The `.em` Debug section carries a side table over the serialised type table, beside the DWARF/CodeView subset and never replacing it. A conformance fixture reads back the locals and locations of a function and they agree with the standard-format locations. Size L. Checked open: grep src/em.e and binary.e for a … (full text in docs/work-evidence.md)
T051Native debug engine: process control, breakpoints, single-step, stack walking, location rendering (0%)Opened 2026-11-03 from docs/roadmap.md:188 by the single-list audit; not previously a queue row. Acceptance: A library (Windows and Linux hosts) launches a Neper program under control, sets and hits a breakpoint, single-steps, walks the stack and renders locals from the side table. A fixture asserts the stop locations match `lldb` on shared programs. Size XL. Checked open: grep for ptrace/DebugActiveProcess/breakpoin … (full text in docs/work-evidence.md)
T052`neper dap`: framed-JSON debug adapter plus VS Code and Zed extensions (0%)Opened 2026-11-03 from docs/roadmap.md:190 by the single-list audit; not previously a queue row. Acceptance: `neper dap` speaks DAP over stdio with Content-Length framing and rejects `--json` and `--absolute-paths`. VS Code and Zed extensions launch it and a scripted session hits a breakpoint and reads a local. Size L. Checked open: grep '"dap"' src/main.e: no dispatch; no dap record in work-done beyond decision text … (full text in docs/work-evidence.md)
C229Optimiser depth: inlining heuristics, load/store forwarding and instruction scheduling (0%)Opened 2026-11-03 from docs/roadmap.md:194 by the single-list audit; not previously a queue row. Acceptance: A release build forwards stores to later loads in a block and schedules independent instructions, and cross-.em inlining uses a cost heuristic below the 40-NIR cap. The GP-09 and compiler-build benchmarks improve against benchmarks/baseline budgets with identical output. Size L. Checked open: grep -i 'forward' … (full text in docs/work-evidence.md)
C230Vector register class: pass Vec/Mask in xmm/ymm per spec section 5 (0%)Opened 2026-11-03 from docs/roadmap.md:196 by the single-list audit; not previously a queue row. Acceptance: `Vec[T,N]` and `Mask[T,N]` live in vector registers across calls and spills instead of copied storage (D786/D1524). GP-09 improves measurably and the ABI fixtures for sysv and win64 pass. Size L. Checked open: src/codegen_x64.e:849 and :883 state 'not yet a vector register class'; regalloc.e has no vector clas … (full text in docs/work-evidence.md)
T053neper pacman CLI group and e.* namespace-reservation enforcement (0%)Opened 2026-11-03 from docs/roadmap.md:363 by the single-list audit; not previously a queue row. Acceptance: `neper pacman init|add|remove|resolve|sync|upgrade|build|run|task|vendor|publish|cache|info` exist with versioned JSON output, shared diagnostics and schema validation. A registry package exporting under a toolchain-reserved `e.*`/`e.algo.*`/`e.ui.*` prefix is rejected and `x.<owner>.*` is accepted. Size L. Ch … (full text in docs/work-evidence.md)
T054One shared usage text for --help, -h, help and E-CLI-9999; info.commands lists every dispatched command (0%)Opened 2026-11-03 from docs/roadmap.md:435 by the single-list audit; not previously a queue row. Acceptance: `neper --help`, `-h` and `help` print the same text the two E-CLI-9999 sites use, naming all dispatched commands, and `info.commands` matches. A conformance check fails if the three disagree with the dispatcher. Size S. Checked open: grep '"--help"' in src/main.e: none; src/main.e:1115 usage names only tokens| … (full text in docs/work-evidence.md)
T055`neper eval EXPR`: fold a const initialiser and print it (comptime interpreter, no codegen) (0%)Opened 2026-11-03 from docs/roadmap.md:440 by the single-list audit; not previously a queue row. Acceptance: `neper eval "1usize << 40" . x64 windows` prints 1099511627776 and a module-scope call such as `table_sum()` folds in its module. No code is generated or linked and a non-constant expression is a diagnostic. Size M. Checked open: grep '"eval"' in src/main.e: no dispatch; docs/tooling.md:1063 documents the exam … (full text in docs/work-evidence.md)
T056Rename the prose name for the standard library to `e.lib` across the docs (0%)Opened 2026-11-03 from docs/roadmap.md:444 by the single-list audit; not previously a queue row. Acceptance: spec section 1 and 2, modules.md, module-apis.md, tooling.md, README.md and render_progress.py row text use `e.lib` for the lib/e modules, with a D-row recording the term. A grep for 'stdlib', 'core library' and 'standard library' in those files finds none outside quotes. Size S. Checked open: grep 'e\.lib' in … (full text in docs/work-evidence.md)
C231Windows resources part 1: link a precompiled .res into a .rsrc section; os.resource(kind,name) (0%)Opened 2026-11-03 from docs/roadmap.md:450 by the single-list audit; not previously a queue row. Acceptance: `project.yaml` names a `.res` per Windows target and the PE carries a byte-deterministic `.rsrc` directory (type, name, language order; icon and group-icon split; manifest at id 1). `os.resource` reads a custom RCDATA entry at run time. A Linux build records the resource as not applicable. Size L. Checked open … (full text in docs/work-evidence.md)
T057Windows resources part 2: `neper rc FILE.rc -o FILE.res` compiler (0%)Opened 2026-11-03 from docs/roadmap.md:456 by the single-list audit; not previously a queue row. Acceptance: The compiler accepts ICON, CURSOR, BITMAP, VERSIONINFO, STRINGTABLE, RCDATA, RT_MANIFEST, LANGUAGE, user-typed `NAME TYPE "file"` and `#define NAME integer`, and rejects #include and expressions. Its .res output links to the same bytes as a reference .res and the build manifest records path, size and SHA-256. … (full text in docs/work-evidence.md)
T058`build --subsystem gui`: PE subsystem 2 behind a flag, recorded in the build manifest (0%)Opened 2026-11-03 from docs/roadmap.md:469 by the single-list audit; not previously a queue row. Acceptance: `neper build --subsystem gui` writes IMAGE_SUBSYSTEM_WINDOWS_GUI so no console window opens, and the build manifest records the subsystem. The default stays console. Size S. Checked open: grep -i subsystem in src/*.e: no hits; the PE header writer has no flag, and ui windowed apps on Windows still open with a … (full text in docs/work-evidence.md)
T059`neper run --watch`: rebuild and rerun on a source change using e.fs.watch (0%)Opened 2026-11-03 from docs/roadmap.md:472 by the single-list audit; not previously a queue row. Acceptance: `neper run --watch` rebuilds and restarts the program when any module in its graph changes, stopping the old process first. A fixture edits a file and observes the new output. Size S. Checked open: grep -n 'watch' src/main.e: none; lib/e/fs/watch.e exists as the prerequisite.
T060TextMate grammar neper.tmLanguage.json generated from grammar.ebnf (0%)Opened 2026-11-03 from docs/roadmap.md:475 by the single-list audit; not previously a queue row. Acceptance: A script beside render_progress.py generates the grammar from keywords, literal suffixes and the // trivia rule in grammar.ebnf. A test tokenises the conformance token corpus and the scope spans match `tokens --json`. Size S. Checked open: grep -ri 'tmLanguage|textmate' across the repo (src, scripts, tests, do … (full text in docs/work-evidence.md)
L183Chart PDF: embedded TrueType text, FlateDecode streams, multi-page reports; SVG font subsetting (0%)Opened 2026-11-03 from docs/charts.md:1716 by the single-list audit; not previously a queue row. Acceptance: e.gfx.chart.pdf writes TrueType-embedded text and FlateDecode content streams and can emit a multi-page document; pypdf parses it and text extraction returns the labels. SVG embed_font writes a glyph subset, and the gradient_font SVG shrinks versus the full 610 KB font with identical raster output. Size M. Che … (full text in docs/work-evidence.md)
L184Chart widget: legends, multi-layer views, keyboard zoom/orbit, single-axis zoom, cross-chart filter state (0%)Opened 2026-11-03 from docs/charts.md:1740 by the single-list audit; not previously a queue row. Acceptance: chart.widget View holds a list of layers and an interactive legend, zooms one axis, and zooms/orbits from the keyboard. A selection in one View filters another through shared selection state; a headless-harness fixture checks each interaction. Size M. Checked open: lib/e/gfx/chart/widget.e:28 ponytail one laye … (full text in docs/work-evidence.md)
L185Chart layout: automatic legend placement/wrapping, layout-aware margins, label and strip collision avoidance (0%)Opened 2026-11-03 from docs/charts.md:929 by the single-list audit; not previously a queue row. Acceptance: A layout pass sizes margins from measured tick, title and legend text, wraps and places legends without overlap, and omits or flips colliding tick labels and facet strips. plot_grid gets spanning cells and shared legends; free-scale and categorical facets map geoms beyond Scatter. Fixtures on Windows and Linux … (full text in docs/work-evidence.md)
L186Chart label leader lines and optimising placement; curved labels for sunburst/pie (0%)Opened 2026-11-03 from docs/charts.md:1771 by the single-list audit; not previously a queue row. Acceptance: label_placement can draw leader lines from displaced labels to marks and optionally runs a conflict-graph or annealing pass that places more labels than the greedy Imhof order. A fixture compares placed counts on the 25-city case and checks determinism. Size M. Checked open: lib/e/gfx/chart.e has only greedy 8 … (full text in docs/work-evidence.md)
L187Chart downsampling and scene batching for very large series (0%)Opened 2026-11-03 from docs/charts.md:1667 by the single-list audit; not previously a queue row. Acceptance: A min/max or LTTB downsampler reduces a 1M-point line or scatter to a bounded number of vertices keeping extremes, and the scene display list batches same-brush marks. A benchmarks/charts case records layout time for 1M points under a stated budget. Size M. Checked open: grep downsample/lttb in lib/: none; cha … (full text in docs/work-evidence.md)
L188Chart color accessibility: Machado anomalous-trichromacy tables and automatic marker shapes (0%)Opened 2026-11-03 from docs/charts.md:1784 by the single-list audit; not previously a queue row. Acceptance: simulate_color_vision supports anomalous trichromacy (Machado 2009) at severity steps with reference values from the paper, and a helper assigns distinct marker shapes per series so series stay distinguishable when palette_separation is low. Size S. Checked open: chart.e has simulate_color_vision (dichromat on … (full text in docs/work-evidence.md)
L189Geographic charts: quantile and Jenks classes, TopoJSON reader, polygon clipping, antimeridian splitting (0%)Opened 2026-11-03 from docs/charts.md:1751 by the single-list audit; not previously a queue row. Acceptance: class_of gains quantile and Jenks natural-breaks classes; a TopoJSON reader beside e.gfx.chart.geojson yields the same region arrays; the map window clips polygons to its bounds and splits rings crossing the antimeridian. Fixtures compare breaks to a reference implementation and render a seam-crossing region. … (full text in docs/work-evidence.md)
L190Gantt dependency links, CPM working calendars, leads/lags, resource levelling and duration uncertainty (0%)Opened 2026-11-03 from docs/charts.md:1270 by the single-list audit; not previously a queue row. Acceptance: gantt draws dependency arrows between tasks; pert_cpm_schedule honours working calendars and lead/lag; a resource-levelling pass and a Monte Carlo project-duration distribution are exposed. Fixtures check the critical path and dates against a reference scheduler. Size L. Checked open: chart.e gantt (line 5698) … (full text in docs/work-evidence.md)
L191Diagram auto-layout: flowchart, state machine, ER, org chart and dependency-graph routing (0%)Opened 2026-11-03 from docs/charts.md:1319 by the single-list audit; not previously a queue row. Acceptance: Flowchart, state-machine and ER diagrams accept unplaced nodes and place them automatically with orthogonal mixed-axis port routing and collision-safe edge labels; the layered layout reduces crossings, bundles edges and inserts dummy nodes for long links; org chart accepts multiple roots and dotted lines. Fixt … (full text in docs/work-evidence.md)
L192UML and decision diagram depth: sequence fragments, activation inference, BPMN gateways, influence diagrams (0%)Opened 2026-11-03 from docs/charts.md:1332 by the single-list audit; not previously a queue row. Acceptance: Sequence diagram supports alt/opt/loop fragments, destruction markers and inferred activation bars; process maps draw BPMN gateways and events; decision trees extend to influence diagrams with utility functions. Each has a scene/SVG fixture. Size M. Checked open: charts.md:1190,1302,1332 list these as planned; … (full text in docs/work-evidence.md)
L193Chart statistics follow-ons: adaptive histogram bins, weighted counts, STL/multiplicative decomposition, robust fit (0%)Opened 2026-11-03 from docs/charts.md:828 by the single-list audit; not previously a queue row. Acceptance: Histogram supports Freedman-Diaconis/Scott bin rules and weighted counts; the decomposition chart accepts e.algo.timeseries stl and a multiplicative model with missing data; a robust (Huber/Tukey) fitted line is available. Results match numpy/statsmodels references. Size M. Checked open: lib/e/algo/timeseries.e … (full text in docs/work-evidence.md)
L194Chart layout follow-ons: squarified treemap, streamgraph wiggle, Sankey/alluvial crossovers, word-cloud packing (0%)Opened 2026-11-03 from docs/charts.md:998 by the single-list audit; not previously a queue row. Acceptance: Treemap uses caller-scratch squarified layout; streamgraph offers wiggle offsets and automatic layer ordering; Sankey/alluvial handle missing categories and curved crossovers; word cloud normalises case and packs large clouds. Aspect-ratio, area and overlap checks pass in fixtures. Size M. Checked open: chart.e … (full text in docs/work-evidence.md)
L195Report compositions: page breaks, print layout and tabular export for cross-tab and matrix reports (0%)Opened 2026-11-03 from docs/charts.md:388 by the single-list audit; not previously a queue row. Acceptance: Cross-tab and grouped matrix reports paginate with repeated headers, lay out for a page size, and export the underlying table as CSV equal to the displayed cells. A fixture compares page count and CSV against goldens. Size M. Checked open: charts.md:388 states these remain follow-on work; no pagination or expor … (full text in docs/work-evidence.md)
L196Motion framework: curves catalogue and tweens (P6-01, P6-02) (0%)Opened 2026-11-03 from docs/animation-plan.md:1 by the single-list audit; not previously a queue row. Acceptance: e.ui.animation gains CubicBezierCurve, IntervalCurve, StepCurve, curve transforms and a named catalogue, plus value, colour, geometry and transform tweens and TweenSequence. Fixtures check curve samples against Flutter reference values. Size M. Checked open: docs/widget-plan.json P6-01/02 delivered lists … (full text in docs/work-evidence.md)
L197Motion framework: controller v2 and physics simulations (P6-03, P6-04) (0%)Opened 2026-11-03 from docs/animation-spec.md:235 by the single-list audit; not previously a queue row. Acceptance: Controller reports Status (Dismissed/Forward/Reverse/Completed), is driven forward/reverse/repeat with velocity, and supports time dilation; closed-form Spring (three regimes), Friction and Gravity simulations replace hand-written scroll overshoot. Spring done-times match an mpmath reference within 1 ms … (full text in docs/work-evidence.md)
L198Motion framework: implicit animations and explicit transitions (P6-05, P6-06) (0%)Opened 2026-11-03 from docs/animation-plan.md:30 by the single-list audit; not previously a queue row. Acceptance: AnimatedValue, AnimatedOpacity, AnimatedLayout, AnimatedDecoration, AnimatedSwitcher and AnimatedCrossFade retarget smoothly when a property changes, and Fade/Scale/Rotation/Slide/Size transitions run compositor-only. Harness frame sampling shows start, mid and end values. Size L. Checked open: widget-pl … (full text in docs/work-evidence.md)
L199Motion framework: choreography, animated list changes, shared-element and route transitions (P6-07, P6-08) (0%)Opened 2026-11-03 from docs/animation-controls.md:389 by the single-list audit; not previously a queue row. Acceptance: Staggered and sequence groups, animated list/grid insert-remove-move in e.ui.collection, and Hero, shared-axis, fade-through, container-transform and predictive-back route transitions in e.ui.navigation. Headless fixtures sample intermediate frames and assert final layout equals the non-animated res … (full text in docs/work-evidence.md)
L200Motion framework: fake-clock testing, reduced-motion policy, migration of hand-rolled motion (P6-09) (0%)Opened 2026-11-03 from docs/animation-spec.md:722 by the single-list audit; not previously a queue row. Acceptance: e.ui.testing provides a fake-clock pump and frame sampling; one reduced-motion policy collapses all durations; press ripple, scroll overshoot, tooltip timing and reorder feedback move onto the framework with frame-stat counters. A test fails if any widget animates under reduced motion. Size M. Checked o … (full text in docs/work-evidence.md)
L201Screen-reader bridge: value/name/live-region events, RangeValue and Selection/Table patterns, AT-SPI extents (0%)Opened 2026-11-03 from docs/ux/accessibility-bridge.md:251 by the single-list audit; not previously a queue row. Acceptance: A changed value, name or live-region text raises UIA and AT-SPI events; sliders and progress bars expose RangeValue/Value; containers expose Selection and Table; AT-SPI reports screen-space extents and per-granularity text. Verified with the existing accessibility audit fixtures. Size L. Checke … (full text in docs/work-evidence.md)
L202Build the unbuilt TcxGrid parity grids on e.ui.datagrid (prices, editions, messages, shortcuts, statistics, import) (0%)Opened 2026-11-03 from docs/grid-parity/tcxgrid-plan.md:7 by the single-list audit; not previously a queue row. Acceptance: Each grid marked 'not built' (dbgPrices x2, dbgAbilitiesPreview, dbgEditions, dbgPreview, dbgMessages, gdShortcuts, dbgSelectEdition and the eight statistics grids) exists on e.ui.datagrid with the v3 columns, read-only flags and widths, and is compared against its v3 capture. Size L. Checked op … (full text in docs/work-evidence.md)
T061Promote e.ui/e.gfx from experimental: multi-window keyboard-accessible app workload on three desktops (0%)Opened 2026-11-03 from docs/ui-framework.md:283 by the single-list audit; not previously a queue row. Acceptance: A general-purpose application workload (multi-window, keyboard-accessible) runs on Windows, Linux and macOS and records memory, frame-time and compatibility results in a committed report; GP-15 then lists the UI modules as promoted or names the blockers. Size M. Checked open: docs/general-purpose-verifica … (full text in docs/work-evidence.md)
C232GP-09: lower simd.shuffle/interleave to punpck/pshufb so the Base16 codec stops using scalar lane loops (0%)Opened 2026-11-03 from docs/gp-performance.md:29 by the single-list audit; not previously a queue row. Acceptance: benchmarks/gp/neper/gp09.e encodes with a vector interleave (no per-lane scalar store loop) and benchmarks/gp/run.py reports runtime p50 within 3x of C (now 1576 ms vs 50 ms) with the identical checksum 534775349. A link fixture pins the interleave/unpack lowering for Vec[u8,16]. Size L. Checked open: li … (full text in docs/work-evidence.md)
C233Direct argument-to-register call lowering in codegen_x64 (finish db-perf item 1 acceptance) (0%)Opened 2026-11-03 from docs/db-perf-plan.md:60 by the single-list audit; not previously a queue row. Acceptance: A call moves an argument already in a register straight to its parameter register and the result straight to its destination register, with the outgoing-slot path kept only for stack args. benchmarks/db/run.py shows the SQLite scan at >=70% of C (now 56-59%) on both hosts, no cell slower, stage 2 = stage 3 … (full text in docs/work-evidence.md)
T062Native `neper mcp` stdio server exposing symbol, diagnostics, references and AST-subtree tools (0%)Opened 2026-11-03 from docs/llm-mcp-server.md:57 by the single-list audit; not previously a queue row. Acceptance: A Neper binary speaks MCP JSON-RPC over stdio (reusing lib/x/mcp/protocol.e framing) and serves get_symbol_definition, get_build_diagnostics, get_symbol_references and get_ast_subtree from the existing index/check/parse JSONL, with a per-request arena that stays flat across 1000 calls. A conformance test … (full text in docs/work-evidence.md)
T063Add --no-trivia to `neper tokens` and `neper parse` (parser-core trivia suppression) (0%)Opened 2026-11-03 from docs/llm-mcp-server.md:68 by the single-list audit; not previously a queue row. Acceptance: `tokens --no-trivia` and `parse --no-trivia` emit no space/comment/newline-trivia records and still validate against the v1 stream schema; byte offsets of remaining records are unchanged. A conformance fixture compares output against the full stream with trivia filtered out. Size S. Checked open: grep no … (full text in docs/work-evidence.md)
T064H33: per-component token-pressure report over whole verified agent trajectories (0%)Opened 2026-11-03 from docs/post-m2-llm-hardening.md:1289 by the single-list audit; not previously a queue row. Acceptance: A harness script reproduces, from archived traces, tokens per component (card, context, edit plan, diagnostic, test view, retrieval, schemas, retries, verification) per tokenizer, keeping failed/abandoned trajectories in the denominator, and enforces frozen default byte/token budgets for the car … (full text in docs/work-evidence.md)
T065H43: performance-regression obligations with pre-registered statistics bound into receipts (0%)Opened 2026-11-03 from docs/post-m2-llm-hardening.md:1549 by the single-list audit; not previously a queue row. Acceptance: A change contract can name a benchmark obligation (baseline artifact, workload/data hashes, metric, threshold, repetitions, warmup) and the runner returns pass/regression/inconclusive/invalid from a distribution, never a best run. Fixtures for a known regression, noisy data, changed baseline, ba … (full text in docs/work-evidence.md)
T066H45: export H34 receipts and H35 contracts into a signed release-provenance envelope (0%)Opened 2026-11-03 from docs/post-m2-llm-hardening.md:1586 by the single-list audit; not previously a queue row. Acceptance: A command exports receipt, change contract, environment identity, lock and artifact digests into the selected external provenance schema; an independent verifier accepts it and rejects altered source, dependency, builder, artifact, receipt or signature. Unsigned output is labelled local traceabi … (full text in docs/work-evidence.md)
L203GP-02/GP-03/GP-06 workloads: cross-platform CLI, parallel build executor, streaming parser with designs and oracles (0%)Opened 2026-11-03 from docs/general-purpose-verification.md:147 by the single-list audit; not previously a queue row. Acceptance: Each has a written design (arenas, ownership, concurrency, errors, module graph) and a runnable Neper program with a Go/Rust/C oracle, passing on Windows and Linux in both suites, covering Unicode args, cancellation/timeouts/graceful shutdown, and malformed/partial input with bounded buffe … (full text in docs/work-evidence.md)
L204GP-07/GP-13 workloads: persistent bounded cache and binary format reader/writer (0%)Opened 2026-11-03 from docs/general-purpose-verification.md:152 by the single-list audit; not previously a queue row. Acceptance: A bounded cache with eviction/fragmentation control under concurrent access and a binary format reader/writer (endianness, packed layouts, zero-copy slices, malformed-file rejection, round trips) each ship with design, oracle and fixtures on both hosts, with RSS flat over a soak run. Size … (full text in docs/work-evidence.md)
L205GP-04 workload: long-running HTTP service with bounded steady-state memory and graceful shutdown (0%)Opened 2026-11-03 from docs/general-purpose-verification.md:149 by the single-list audit; not previously a queue row. Acceptance: An e.net.http service with request arenas, backpressure, logging and concurrent shutdown runs a soak with many connections where RSS stays within a fixed bound and every worker joins on shutdown; Windows and Linux; compared against a Go or Rust oracle on the same script. Size L. Checked op … (full text in docs/work-evidence.md)
L206GP-05/GP-08 workloads: e.db client over a C library and a plugin-style C ABI (0%)Opened 2026-11-03 from docs/general-purpose-verification.md:150 by the single-list audit; not previously a queue row. Acceptance: A database client built on an existing driver and a stable exported-ABI plugin (callbacks with context pointers, version checks, foreign ownership, failure isolation) each have a written design and fixtures that pass under both linkers on both hosts. Size L. Checked open: no GP-05/GP-08 pr … (full text in docs/work-evidence.md)
L207GP-11/GP-14 workloads: interactive terminal application and image/audio transform pipeline (0%)Opened 2026-11-03 from docs/general-purpose-verification.md:156 by the single-list audit; not previously a queue row. Acceptance: A terminal app (incremental input, redraw, resize, signals, state restore on exit) and a media pipeline (large buffers, staged arenas, native library interop, parallel stages, sustained memory bound) each pass with a design record, oracle output and a no-leak soak. Size L. Checked open: no … (full text in docs/work-evidence.md)
L208GP-12 workload: multi-package application with reproducible vendoring and clean-room rebuild (0%)Opened 2026-11-03 from docs/general-purpose-verification.md:157 by the single-list audit; not previously a queue row. Acceptance: A multi-package application resolves transitive dependencies from a lock with checksums and licences recorded, and a clean-room rebuild on Windows and Linux yields byte-identical artifacts from the same manifest and signed registry snapshot. Size L. Checked open: no GP-12 program; M6-01..0 … (full text in docs/work-evidence.md)
C234Containers that hold obligated or borrowed values: failure-safe insert and dynamic retention checking (0%)Opened 2026-11-03 from docs/m25-h01-ownership.md:389 by the single-list audit; not previously a queue row. Acceptance: A generic container can own an affine/obligated element across growth and failed insert (value not lost, cleanup run exactly once), and a pointer-bearing value stored into a dynamic container is checked against @noescape/region rules (currently only a documented limitation, E-SAFETY-0020 for module s … (full text in docs/work-evidence.md)
L209Add e.algo.approx: vertex cover, knapsack FPTAS, LPT and greedy makespan, half-approx max-cut (0%)Opened 2026-11-03 from docs/algos-2.md:86 by the single-list audit; not previously a queue row. Acceptance: Each routine returns a solution plus its proven ratio bound and is checked against a brute-force optimum on small instances (cost <= ratio * OPT). Set-cover and bin-pack wrappers reuse e.algo.combopt (set_cover_greedy, bin_pack_ffd, Christofides) instead of reimplementing. Size M. Checked open: grep lib for ver … (full text in docs/work-evidence.md)
L210Add e.algo.online: ski rental (with predictions), Belady/marking paging, move-to-front, online facility location (0%)Opened 2026-11-03 from docs/algos-2.md:127 by the single-list audit; not previously a queue row. Acceptance: Each online policy runs over a request sequence and reports its cost next to the offline optimum; fixtures assert the stated competitive ratio on adversarial sequences (ski rental <= 2x, MTF <= 2x, marking <= k x). Size M. Checked open: grep lib for ski_rental, belady, competitive ratio, facility_location: no … (full text in docs/work-evidence.md)
L211Add iterative linear solvers (CG, GMRES with restart) to e.algo.linalg over a matrix-free operator (0%)Opened 2026-11-03 from docs/algos-2.md:171 by the single-list audit; not previously a queue row. Acceptance: cg and gmres solve SPD and general nonsymmetric systems given an operator callback, converging to a stated tolerance and agreeing with the dense LU solution on fixtures. gfx.mesh's private conjugate_gradient is replaced by the shared one. Size S. Checked open: grep lib for gmres: none; only conjugate_gradient … (full text in docs/work-evidence.md)
L212Add classical MDS and Johnson-Lindenstrauss random projection to e.ml.reduce (0%)Opened 2026-11-03 from docs/algos-2.md:244 by the single-list audit; not previously a queue row. Acceptance: mds embeds a distance matrix with stress matching scikit-learn on fixtures; jl_dimension(n, eps) and Gaussian/sparse random_projection preserve pairwise distances within (1+-eps) on a seeded test set. Size S. Checked open: grep lib for multidimensional scaling, johnson-lindenstrauss, random_proj: only an LSH n … (full text in docs/work-evidence.md)
L213Add e.algo.discrepancy: Beck-Fiala, Spencer-style balancing, derandomized max-cut by conditional expectations (0%)Opened 2026-11-03 from docs/algos-2.md:290 by the single-list audit; not previously a queue row. Acceptance: Colouring routines return a +-1 assignment whose discrepancy meets the Beck-Fiala bound on bounded-degree set systems; the conditional-expectation max-cut returns a cut >= half the edges. Fixtures compare with brute force on small inputs. Size M. Checked open: grep lib for beck.fiala, spencer, discrepancy, con … (full text in docs/work-evidence.md)
L214Add WireGuard packet framing over e.crypto.noise (MAC1/MAC2, TAI64N, cookie reply, transport messages) (0%)Opened 2026-11-03 from scripts/algos/decisions-pending.md:743 by the single-list audit; not previously a queue row. Acceptance: A wireguard module builds and parses initiation, response, cookie and transport messages over noise initialize/write_message/read_message, interoperating byte-for-byte with a reference WireGuard implementation's captured handshake vectors, with replay-window and malformed-packet tests. Size … (full text in docs/work-evidence.md)
L215Harden e.dist.consensus: Raft pre-vote and config revert, Multi-Paxos accepted values, VR out-of-order (0%)Opened 2026-11-03 from scripts/algos/decisions-pending.md:457 by the single-list audit; not previously a queue row. Acceptance: Seeded message-loss/reorder fixtures check safety (one leader per term, committed entries immutable) with pre-vote on, a truncated config entry reverted, Paxos promises carrying accepted values, and VR Prepare buffered when out of order. Size M. Checked open: lib/e/dist/consensus.e ponytail … (full text in docs/work-evidence.md)
L216Add a secure wipe primitive and apply a zeroization policy across e.crypto key-holding APIs (0%)Opened 2026-11-03 from docs/algorithm-format-conformance.md:31 by the single-list audit; not previously a queue row. Acceptance: A non-elidable wipe(buf) exists and every crypto API holding key material (aead, kdf, kx, sign, noise) wipes its scratch/state on done/error, with a test reading the buffer back to prove it is zero. Each module header documents its zeroization and nonce rules. Size M. Checked open: grep lib … (full text in docs/work-evidence.md)
L217Hostile-input, limit and differential sweep for compression/archive/media decoders (A0 matrix) (0%)Opened 2026-11-03 from docs/algorithm-format-coverage.md:64 by the single-list audit; not previously a queue row. Acceptance: For gzip, zlib, zstd, bzip2, lzw, zip, tar, png, jpeg, webp, wav, mp3, an e.test.fuzz fixture feeds truncated/corrupt/bomb inputs and asserts distinct errors, bounded memory, traversal/symlink rejection (tar, zip), and differential agreement with a native reference on valid vectors. Size L. Ch … (full text in docs/work-evidence.md)
L218Nesting, entity-expansion and limit tests for text parsers (json, xml, yaml, html, csv, ini, mail, mime, uri, protobuf) (0%)Opened 2026-11-03 from docs/algorithm-format-coverage.md:53 by the single-list audit; not previously a queue row. Acceptance: Each parser has fixtures proving configurable max depth/members/bytes, duplicate-key policy, billion-laughs/entity expansion rejection, invalid-UTF-8 behaviour, and an incremental-parse equivalence check against the one-shot result. Size L. Checked open: fmt/json.e has max_depth/Options but no … (full text in docs/work-evidence.md)
L219Crypto and statistics conformance evidence: vectors, nonce rules, NaN/inf contracts (A0 matrix) (0%)Opened 2026-11-03 from docs/algorithm-format-conformance.md:26 by the single-list audit; not previously a queue row. Acceptance: Each crypto.* and statistics matrix row links golden vectors, malformed-input and constant-time notes, and e.algo.stat tests pin NaN/infinity/overflow behaviour per function. check_algorithm_format_matrix.py then rejects any row still marked planned without linked evidence. Size L. Checked … (full text in docs/work-evidence.md)
T067Regenerate the repo rewrite-coverage inventory against the delivered widget and module set (0%)Opened 2026-11-03 from docs/rewrite-coverage-verification.md:10 by the single-list audit; not previously a queue row. Acceptance: scripts/audit_repo_coverage.py is rerun and its status column resolves names to delivered widgets/modules, so the 'implemented' count is no longer zero and the 8,435 missing/extension names are reduced to real extension work or explicit aliases. Size M. Checked open: doc status table shows … (full text in docs/work-evidence.md)
T068pacman P0: strict project.yaml parser, canonical project.lock writer, SemVer ranges and PubGrub resolver (0%)Missing: the producer (M6 pacman P0)'.
T069pacman P1: immutable content-addressed cache, path dependencies, frozen/offline sync and virtual module map (0%)Opened 2026-11-03 from docs/pacman.md:412 by the single-list audit; not previously a queue row. Acceptance: A clean machine populates its cache from project.lock, then builds byte-identically under --frozen --offline with path deps resolved through a virtual module map and build-manifest integration. Concurrent syncs never expose partial store entries and a mutable Git ref cannot change a locked sync. Size XL. Checke … (full text in docs/work-evidence.md)
T070pacman P2: signed registry client, Git adapter, mirrors, publish/yank, cache verify and GC (0%)Opened 2026-11-03 from docs/pacman.md:415 by the single-list audit; not previously a queue row. Acceptance: Registry metadata and release archives verify against signing keys and tree digests, Git deps resolve to full commits with submodules rejected, and publish rejects path/unpinned deps. A fake registry fixture covers tamper, yank, mirror failover and network failure leaving lockfile and store unchanged. Size XL. … (full text in docs/work-evidence.md)
T071pacman P3: controlled generation tasks with hash, scratch execution, capability policy and source maps (0%)Opened 2026-11-03 from docs/pacman.md:418 by the single-list audit; not previously a queue row. Acceptance: A declared task runs in a scratch directory under a denied-by-default capability policy and produces byte-identical declared outputs with generated-source maps and JSON records. Denied capabilities fail before the task starts and no dependency runs code at resolution or install time. Size L. Checked open: grep … (full text in docs/work-evidence.md)
T072Embed dependency-package assets and external runtime assets in pacman builds (0%)Opened 2026-11-03 from docs/pacman.md:156 by the single-list audit; not previously a queue row. Acceptance: A package dependency's declared assets enter the root link identity and e.ui.asset lookup with the same name, metadata and SHA-256 rules as root assets. External runtime assets are declared and verified without being embedded. Size M. Checked open: src/assets.e reads only the root project manifest ('version 1 e … (full text in docs/work-evidence.md)
L220Constant-time P-256 ECDSA, BIP-340, FFDHE, ML-DSA and RSA-PSS signing to replace the fail-closed stubs (0%)Opened 2026-11-03 from docs/security-audit-2026-09-24.md:H3 by the single-list audit; not previously a queue row. Acceptance: p256_public_from_secret, schnorr_public_from_secret/schnorr_sign and the other secret-key operations in e.crypto.sign return real results with fixed-schedule control flow and masked selection, verified by emitted-control-flow inspection and a timing-independence fixture. Known-answer vectors p … (full text in docs/work-evidence.md)
C235Contain module source selection to the project root: resolve symlinks and re-stat at open (0%)Opened 2026-11-03 from docs/security-findings.md:407 by the single-list audit; not previously a queue row. Acceptance: A symlink in the source tree whose resolved target escapes the project root is rejected with a diagnostic, and the entry is re-checked at open time. A fixture with an escaping symlink and a swap-after-readdir case fails before the change. Size S. Checked open: src/project.e lines 411 and 463 still ac … (full text in docs/work-evidence.md)
L221e.fmt.macho: read-only Mach-O headers, load commands, segments and symbol tables (0%)Opened 2026-11-03 from docs/ethical-hacking.md:42 by the single-list audit; not previously a queue row. Acceptance: Parses thin and fat Mach-O files into headers, load commands, segments/sections, symbol tables and dyld info with hand-built fixtures cross-checked against otool/nm text goldens. Truncated and malformed inputs return errors, never panics. Size M. Checked open: ls lib/e/fmt shows elf.e and pe.e but no ma … (full text in docs/work-evidence.md)
L222TLS 1.3 server and client with P-256/RSA credentials, client-certificate auth and PSK session resumption (0%)Opened 2026-11-03 from docs/tls-p256-openrouter.md:40 by the single-list audit; not previously a queue row. Acceptance: e.net.tls serves with P-256 and RSA server keys (not only Ed25519), requests and verifies client certificates, and resumes sessions through PSK tickets; 0-RTT stays refused unless replay-safe. Loopback fixtures and an external interop probe cover each mode. Size L. Checked open: docs list client aut … (full text in docs/work-evidence.md)
T073Android validation matrix: 4 KiB/16 KiB pages, API-level symbol resolution, APK upgrade and wrong-key rejection (0%)Opened 2026-11-03 from docs/android-cross-compilation.md:64 by the single-list audit; not previously a queue row. Acceptance: A script runs the counter APK on emulators with 4 KiB and 16 KiB page sizes across supported API levels, checks Bionic symbol resolution, and verifies upgrade under the same key and rejection under another. Results are recorded as pass/fail rows. Size M. Checked open: grep for 16384/page-size/ … (full text in docs/work-evidence.md)
L223Apply safe-area insets in the Android counter app and edge-to-edge windows (0%)Opened 2026-11-03 from docs/HANDOVER-OPENGL.md:40 by the single-list audit; not previously a queue row. Acceptance: The counter app's content no longer sits under the status bar on a device with insets, using e.ui.window safe_insets. An emulator screenshot check compares the top content offset against the reported inset. Size S. Checked open: examples/android/counter/src/main.e has no inset/safe reference while lib/e … (full text in docs/work-evidence.md)
T074Get both full self-host suites green from a clean worktree, including the unreached NeperOS fixture rows (0%)Opened 2026-11-03 from HANDOVER.md:40 by the single-list audit; not previously a queue row. Acceptance: tests/selfhost/run.ps1 on Windows and run.sh on Linux each finish with zero failures from a clean detached worktree. The previously unreached rows (sheetfixture through diskfixture) pass or their table expectations are fixed. Size L. Checked open: HANDOVER.md says the suite was 'never yet green end-to-end' and Linu … (full text in docs/work-evidence.md)
T075neper-tooling: make a comptime parameter a symbol and reference target in index and uses output (0%)Opened 2026-11-03 from docs/tooling.md:293 by the single-list audit; not previously a queue row. Acceptance: index-file lists a comptime parameter as a parameter symbol and a body use is a read reference targeting it, with schema and golden updates. Existing local and parameter output stays byte-identical. Size S. Checked open: docs/tooling.md line 293 still says 'A comptime parameter is not yet a symbol'; no work-do … (full text in docs/work-evidence.md)
L224Browser: ad and tracker blocking on every request (95%)Still open: a profile switch to turn blocking off. e.net.policy already parses Adblock Plus filter lists (parse_filter_list). Nothing applies them when a page loads. Acceptance: e.web.page asks the parsed rules before each subresource and script fetch (document, script, image, stylesheet, xhr, font types and the third-party flag known to the loader), a blocked request fails as blocked and is counted per page, the main document is never blocked, rules load from the profile and can be switched off, and a fixture with a blocked tracker script, an allowed first-party script and an exception rule pins all three outcomes.
L225Triage and fix the open GitHub issues of nebosa-company/neper (687 on 2026-10-31) (0%)Backlog only, nothing to start now. `gh issue list --repo nebosa-company/neper --state open` listed 687 open issues on 2026-10-31 (numbers up to #1620; labels: bug 205, SEO 25, internal 2, the rest unlabelled), most of them against the e.web modules (CSP, page, iframes). Acceptance: every open issue is either fixed with a regression test that fails if it comes back and closed, or closed with a reason; work them in gr … (full text in docs/work-evidence.md)
C236Android target: Bionic ELF executables, then a NativeActivity APK built by Neper (0%)Backlog only; blueprint is docs/os/android.md. First acceptance: an aarch64-android ELF (x18 never allocated, 16 KiB PT_LOAD alignment, BTI note, no DT_TEXTREL, PT_INTERP /system/bin/linker64) pushed to /data/local/tmp runs under adb and prints through __android_log_write; then e.mem/e.io/e.fs/e.time fixtures pass on the emulator or a device. Later phases per the document: AXML manifest encoder, APK v2 signer verifie … (full text in docs/work-evidence.md)
C237iOS target: signed arm64 Mach-O, UIKit through the Objective-C runtime, IPA packaging (0%)Backlog only; blueprint is docs/os/ios.md. First acceptance: a platform-7 (iOS simulator) Mach-O main with an ad-hoc CodeDirectory runs under xcrun simctl spawn and codesign --verify accepts it; then AppDelegate defined through objc_allocateClassPair, UIApplicationMain, a CAMetalLayer view drawing a frame through the existing msl.e backend. Reuses the macOS Mach-O writer and Metal work. Needs a Mac; App Store identit … (full text in docs/work-evidence.md)
C238FreeBSD target: ELF with the FreeBSD identity, carry-flag syscalls, per-OS constant tables (0%)Backlog only; blueprint is docs/os/free-bsd.md. First acceptance: an x86_64-freebsd static ELF (EI_OSABI 9, .note.tag ABI note) runs under a FreeBSD 14.x VM, writes and exits; then e.mem/e.io/e.fs/e.time fixtures where each differing constant (CLOCK_MONOTONIC 4, O_CREAT 0x200, EAGAIN 35) has a fixture that fails if the Linux value is used, and a syscall failure fixture proving the carry flag becomes an err. Later: th … (full text in docs/work-evidence.md)
C239FreeRTOS target: Thumb-2 back end, relocatable ELF output, C shim for the kernel API (0%)Backlog only; blueprint is docs/os/free-rtos.md. Blocked first on whether the linker can write ET_REL objects (check before sizing). First acceptance: a thumbv7m object whose main prints through semihosting and exits runs under QEMU (lm3s6965evb or mps2-an385) linked with the FreeRTOS ARM_CM3 port; then known-answer fixtures for __aeabi_uldivmod/ldivmod and memcpy, then the neper_freertos.c shim with e.thread/e.sync/ … (full text in docs/work-evidence.md)
C240Zephyr target: Neper as an out-of-tree Zephyr module with a C shim (0%)Backlog only; blueprint is docs/os/zephyr.md, and it depends on C227 for the Thumb-2 back end (native_sim needs only the existing x86-64 emitter). First acceptance: a neper-zephyr module (zephyr/module.yml, CMake import of libapp.a, Kconfig, neper_zephyr.c) builds for native_sim/native/64 under WSL or Linux CI, and a Neper main prints through the shim and exits; then e.thread/e.sync/e.time fixtures including the reve … (full text in docs/work-evidence.md)
C241z/OS and CICS target: z/Architecture back end, GOFF linker output, EBCDIC literals, CICS bridge (0%)Backlog only; blueprint is docs/os/z-os.md. Largest item of the six: a new ISA back end (R1 parameter list, R13 DSA, LE prologue/epilogue), GOFF record output (ESD/TXT/RLD/END) with 8-character member name mangling, IBM-1047 string lowering, e.mem over GETMAIN/FREEMAIN, e.io over CICS queues, and a CICS command wrapper mapping EIB RESP/RESP2 to err. No mainframe or emulator (Hercules, z/PDT) is available here, so the … (full text in docs/work-evidence.md)
C242float/vector register class: allocate xmm registers, floats stop living in general registers as raw bits (x64 first, a64 after) (0%)Opened from docs/compiler-optimizations.md. Acceptance: regalloc has a second register class; a scalar float and a Vec[T,N] stay in xmm across operations and calls under the System V and Win64 conventions; D786 copied-storage convention replaced; fixtures for float loops, Vec arguments and returns and callee/caller-saved xmm pass on both hosts; stage2==stage3 holds; cachegrind instruction count of benchmarks/cpu floa … (full text in docs/work-evidence.md)
C243Vec shuffle, interleave, pack and movemask selection so GP-09 stops using scalar lane loops (0%)Opened from docs/compiler-optimizations.md. Needs C242. Acceptance: punpck/pshufb/pack/movmsk (and a64 zip/tbl equivalents) selected for the Vec interleave and pair-assembly operations; GP-09 Base16 output unchanged and runtime p50 within 3x of C (was 1576 ms against 50 ms); a fixture compares every shuffle against the scalar lane loop.
C244scalar replacement of aggregates and copy elision (struct copy was 16% of all instructions, D930-D933) (0%)Opened from docs/compiler-optimizations.md. Acceptance: a non-escaping struct or tuple local is split into scalar locals before promote_locals; a copy whose source is dead afterwards, and a returned aggregate built in place, emit no copy; fixtures prove aliasing and address-taken aggregates are left alone; cachegrind instruction count on the records and db-scan workloads drops and is recorded.
C245value numbering, instruction simplification and division by constants in NIR (0%)Opened from docs/compiler-optimizations.md. Acceptance: dominator-based value numbering removes repeated pure computations and repeated loads with no intervening store; rule-driven simplification covers identities (x+0, x*2^k, x^x, compare folds); unsigned and signed division and modulo by a constant use a multiply sequence, checked against the division instruction over edge values; compile time on GP-01 grows less t … (full text in docs/work-evidence.md)
C246loop-invariant code motion and induction-variable strength reduction (0%)Opened from docs/compiler-optimizations.md. Acceptance: loop detection and rotation on NIR; pure invariant computations hoist to a preheader; i*scale address arithmetic in counted loops becomes a pointer bump; fixtures prove no hoist across a store that may alias, a call, or a trap; sieve, sort and hash in benchmarks/cpu improve and are recorded.
C247bounds-check elimination from range facts, extending elide_null_checks (0%)Opened from docs/compiler-optimizations.md. Acceptance: an index proven below len by a loop bound, a dominating compare or a slice split emits no check in the checked release build; a check that can fail is kept and a fixture traps on it; counted-loop checks hoist out of the loop; checked-release cost on benchmarks/cpu is measured before and after.
C248likely/unlikely edge hints on trap paths and basic block placement (0%)Opened from docs/compiler-optimizations.md. Acceptance: trap, check-failure and error paths are marked cold; blocks are laid out with the likely successor falling through and cold blocks at the function end; branch folding removes empty blocks and jumps to jumps; stage2==stage3 holds and the instruction count on GP-01 is recorded.
C249register allocator: interval splitting, copy coalescing, loop-depth spill weights and rematerialisation (0%)Opened from docs/compiler-optimizations.md. Start after C242 since both change regalloc data. Acceptance: a value may live in a register for part of its range and in memory for the rest; two-address and call-argument moves coalesce; the spill choice weighs use count by loop depth; constants and frame addresses are rematerialised instead of spilled; the allocator self_test and the emit sweeps pass; spill count and ins … (full text in docs/work-evidence.md)
C250inliner cost model replacing the flat 40-instruction cap (0%)Opened from docs/compiler-optimizations.md. Acceptance: the decision weighs callee size against bonuses for constant arguments, a single call site and a call inside a loop; validated with benchmarks/baseline/inline_cap.py on GP-01 and the CPU workloads for image size and runtime, with the result recorded; the compiler still builds itself to the same bytes.
C251tail calls, switch lowering (jump tables, bit tests) and branch folding (0%)Opened from docs/compiler-optimizations.md. Acceptance: a call in tail position with matching stack arguments becomes a jump under both conventions, and a deep recursion fixture runs in constant stack; dense integer switches compile to a bounded jump table and sparse ones to a binary search; fixtures cover the edge values of each.
C252decide whether regions and value semantics guarantee non-aliasing, and emit noalias facts in NIR (0%)Opened from docs/compiler-optimizations.md. First step is a decision row after reading docs/m25-h02-regions.md and docs/m25-h05-value-semantics.md. Acceptance: if the spec guarantees it, NIR carries a no-alias fact on region and by-value pointers, and C245 value numbering and C246 LICM use it with a fixture that fails if a possibly aliased store is ignored; if it does not, the decision row says so and the item closes … (full text in docs/work-evidence.md)
C253a64 Linux CI job running the aarch64 differential check on an arm runner or under QEMU (0%)Opened from docs/compiler-optimizations.md: CI has macos-14 for native macOS a64 but no Linux a64 job, so a64 codegen changes (C242, C243, C249) are checked only in WSL. scripts/a64-differential.sh runs prebuilt x64/aarch64 pairs named in build/a64/out/names.txt, which scripts/a64-differential.ps1 builds on Windows, so the job needs a Linux step that builds the pairs itself. Acceptance: a workflow runs the differenti … (full text in docs/work-evidence.md)
C254capacity limits name themselves: every fixed pool, arena and token table reports its own exhaustion (0%)Opened from the weakness review: arena, bootstrap tokens and resolver tokens each filled up and the diagnostic blamed the change, and MAX_LOCALS 256 truncated silently. Acceptance: an inventory of every fixed capacity in src/ and the C bootstrap (constant, file, what fills it); each exhaustion raises one code E-CAP-nnnn naming the limit, its value and the current use; no capacity truncates silently; one generated fix … (full text in docs/work-evidence.md)
C255generic deferral probe matrix: instances over instances at every site that can hold a deferred value (0%)Opened from the weakness review: three generic-deferral bugs in a row (data.map, e.bytes, e.data.iter) and the D163 instance-over-instance case, each found by a module hitting it. Acceptance: a generated fixture set crosses {return, assign, let, call argument, field, index, annotation, comptime branch} with {T, Inner[T], Outer[Inner[X], Y], Vec[T]} and checks the value at run time on both hosts; every combination pas … (full text in docs/work-evidence.md)
C256miscompile net: narrow-width and constant edge values through every call, return and store path, run against two back ends (0%)Opened from the weakness review: unwidened narrow extern returns, negative narrow constants (lower_constant), uncleared mem.alloc under neper-self and a local shadowing a module-scope function each shipped silently and were found late. Acceptance: a generated fixture covers i8/i16/i32/u8/u16/u32 at min, max, -1 and 0 through extern return, extern argument, struct field, constant, comparison and shift, with the expect … (full text in docs/work-evidence.md)
C257extern call path: register arguments and caller-saved-only spills instead of stack slots and spill-all (0%)Opened from the weakness review: extern calls cost about 15 ns over C (D1597) because arguments pass through stack slots and every live value is spilled. C249 owns the allocator; this item owns the call sequence. Acceptance: a call to a leaf extern with up to six integer arguments emits register moves only, and only values live across the call and held in caller-saved registers are spilled; the db-scan microbenchmark … (full text in docs/work-evidence.md)
L228WASI e.os surface so the WASM target runs e.fs, e.io, e.time and e.proc-free programs (0%)Opened from the weakness review: the WASM design (D5213) and the browser engine are blocked on a missing WASI e.os; node 22/24 run WASI here. Acceptance: os.wasi.e adds the per-target variant for files, clocks, random, args, environment and exit through wasi_snapshot_preview1; unsupported operations (threads, processes, dynamic linking) return a named error, not a trap; fs_basics, time and the e.str, e.fmt and e.math … (full text in docs/work-evidence.md)
L229operating-system accessibility preferences: reduced motion, high contrast, text scale, screen reader presence (0%)Opened from the 2026-09-27 accessibility audit: the AT bridge (D1602-D1604) exists but OS preferences are unread. Acceptance: e.ui exposes one prefs() record read from Windows (SystemParametersInfo, UISettings), macOS (NSWorkspace accessibility display options) and Linux (portal settings over D-Bus) with a change notification; reduced motion disables the D1412-D1450 motion paths, high contrast selects a token set, te … (full text in docs/work-evidence.md)
T076suite runner that finishes: bounded workers by free memory, per-fixture timeout, resumable, stderr tolerant (0%)Opened from the weakness review: Windows suites hit the stderr trip and WSL crashes, WSL is short of RAM, and the Linux suite needs GitHub (linux-suite.yml). Acceptance: the runner picks -j from free commit before starting and lowers it on pressure; a fixture past its timeout is killed and reported, not left hanging; an interrupted run resumes from the last finished fixture; stderr output never fails a fixture whose … (full text in docs/work-evidence.md)
T077land script for the shared tree: stage listed paths only, merge queue and decision rows by id, allocate D-numbers under a lock (0%)Opened from the weakness review: peers' uncommitted decision rows and queue edits live in the same files, a peer commit swept hunks and a D-number, and landing needs foreign-commit checks before push. Acceptance: one command takes explicit paths and a message, refuses git add -A, takes only this session's hunks from docs/decisions.md and docs/work-queue.json, allocates the next D-number from a lock file so two sessio … (full text in docs/work-evidence.md)
C258language: a local may shadow a module-scope function and a builtin type name (reopen D66's reserved set) (0%)Not done: fixtures that shadow a module fn, a const, `i8`, `Vec` and `str` as a value name accept and format; a call through the shadowed name rejects E-NAME-0004; the card re-renders without those two traps; lang-stats repeat rate is re-measured on transcripts written after the change.
C259language: cross-module pointer facts come from the declaration, never from the callee's body (0%)Not done: D1677's warm and clean builds agree by a fixture; the alias-chain fixtures the walk alone accepted are annotated or moved to @unsafe; both suites pass.
C260language: make the zero value total - every enum and union enum declares a member at 0 (0%)Not done: the section 7 table and rule rewrite, the declaration-time diagnostic naming the enum and the member it needs, accept fixtures for `= zero` and `try` over such an enum, a reject fixture for the declaration without a 0 member, and the card's zero section re-rendered.
C261language: protocols are found by an explicit marker, not by a derived snake_case name (0%)Not done: the attribute in the grammar and the checker, the index edge, diagnostics for a duplicated or mismatched marker, and conformance fixtures for a generic type's protocol and the str fallback.
C262docs: one normative home per fact (section 13 versus tooling.md, section 11 versus the H-track files) (0%)Not done: the split, the three contradictions resolved, and a link check so a moved fact cannot be silently unlinked.
C263bootstrap: the card carries the language, not the C bootstrap's defects (0%)Not done: the card source edit and re-render, and either the three bootstrap fixes with a fixture per shape or C088's closure.
C264language: labelled break and continue (0%)Not done: the grammar revision, the parser, the checker, the formatter and the card re-render; two fixture programs at depth two and three, checked against the flag spelling; the token profile updated.
C265a syntax error exits with its diagnostic: the error path must not consume the machine (0%)Found while porting x.duckdb.duckdb to DuckDB v2 and trying to build the Linux self-hosted compiler: a parse failure in lib/e/str.e (mem.bitcast[f32], syntax the September bootstrap does not know) did not report and exit. Measured in a freshly restarted 5GB WSL instance with nothing else running, RSS went 3148 kB at t=3s to 4352956 kB at t=6s, then 4550256 kB at t=9s, with MemAvailable down to 15MB, the process in D … (full text in docs/work-evidence.md)
C266the bootstrap builds the tree again: refresh it, or make the seed path the contract (0%)Found while getting tests/selfhost to reach its DuckDB fixture. build/windows/neper.exe and build/linux/neper are both 0.0.96-neper0 and neither can parse the current tree: lib/e/str.e:13 stops at a function type as a struct member, src/check.e:924 at a type-member limit. The bootstrap is a fixed point -- it must parse what it builds -- so once the language gains syntax it cannot build src/main.e, and the suite fails … (full text in docs/work-evidence.md)
C267emitted binaries are reproducible: no field may depend on which compiler binary ran (0%)Found while verifying 18 bootstrap-lint fixes by differential build. Two compilers built from the same command line, from source states that differ only by the fix, emit binaries that differ in exactly 8 bytes on many fixtures and match on others. The 8 bytes sit inside an ASCII field `!003d88c0<8 hex>:...` in the image, and the control proves they track the compiler binary rather than the code: the untouched Nov 6 s … (full text in docs/work-evidence.md)
C269the artifact path emits the same debug info as the whole-program path (0%)Found once crew_windows could finally be reached: 'crew_windows at -j 1 is not the image linked from its artifacts (--time)'. Repro: emit-em-all over crew_windows then link-em the twelve artifacts, and separately emit-executable the same fixture at -j 1, both in the default (debug) mode. Sizes 75560 linked against 76072 direct. A PE section compare (dumpbin /headers) shows every section identical except .debug_info: … (full text in docs/work-evidence.md)