Roadmap
What we are building.
Every piece of work in the plans, as a ticket on one timeline. 13 done, 34 in progress, 29 planned and 30 proposed.
Dates after today are a schedule built from each plan's own estimates, queued one worker per area. They are an assumption model, not promises. Last generated 2026-10-28.
Timeline
Hover a bar for its dates. Select a ticket to open its detail below.
Tickets
117 tickets, each linked to the plan it came from. Dropped tickets are kept so the decision stays visible.
Desktop shell
KS-001 Retina desktop (desk3) with Settings and core apps Done
The current HolyC desktop draws at scale 1 or 2 with native glyphs, dirty rectangles and anti-aliased corners and shadows.
Evidence: “It draws in logical units (1440x900) at a scale of 1 or 2”
KS-002 Boot splash from a saved VM image Done
run.sh loads a saved VM image on a splash screen and crossfades to the desktop, measured at about 3.6 s to ready.
Evidence: “from QEMU launch to desktop ready about 3.6 s with the image”
KS-004 Translucent dock backdrop and Monitor graph Done
The dock blurs what is behind it with a cached backdrop and the Monitor graphs one frame sample per 100 ms.
Evidence: “The pill is a 205-alpha tint over a blurred copy of what is actually behind it”
KS-005 Window Style Editor app Done
A Windows app with live preview and an inspector restyles every open window; the x86 VM run, frame times and several presets are still unverified.
Evidence: “every control restyles all open windows at once”
KS-006 Icon Style Editor app Done
The Icons app edits one shared icon style with ten control pages, eight presets and export and import of a style string.
Evidence: “Works on Aiwnios unchanged”
KS-007 Top bar theme settings Done
Settings controls set bar style, tint, auto-hide visibility and automatic ink colour, all applied live to the bar band.
Evidence: “Every control applies live and damages only the bar band”
KS-008 Menu bar status items and popovers In progress
Code for Wi-Fi, Bluetooth, battery and other bar items with popovers is written but the shared-file hunks are not applied and nothing was compiled.
Evidence: “It is written but has NEVER been compiled or run on x86 or Aiwnios.”
KS-009 Clock suite, Calendar popover and Launchpad In progress
World clock, stopwatch, timer, alarms and a Launchpad grid work on x86, but arrow keys, timer alert and Aiwnios were not driven and the current tree did not compile; a month-grid Calendar popover is still planned.
Evidence: “Current tree does not compile on x86”
KS-012 App table, resizable windows, event model and clip stack Planned
Replace the per-app if-chains with an app table (draw, click, key, close) and add resize, focus rules, an event model, a clip stack and modifier and key-up input; the review estimates more than the plan's three days.
Evidence: “Replace the `if (a==...)` chains with an app table”
KS-013 Widget kit v2 (text field, lists, tabs, dialogs) In progress
Buttons, toggles, radios and sliders exist; the text field with selection and clipboard, tables, tabs, dropdowns, dialogs and context menus are still to add.
Evidence: “partial (button, toggle, radio, slider)”
KS-014 Launcher (Cmd-Space) with fuzzy search Planned
A keyboard-first popup that fuzzy-matches app names, recent files and commands; it needs the text field widget.
Needs: KS-013
Evidence: “A popup with a text field that fuzzy-matches app names, recent files and commands”
KS-015 Notification queue and toasts Planned
A shared queue drawn in a corner with auto-dismiss and optional actions; the Clock app has its own toast today.
Evidence: “A queue drawn in a corner above everything, auto-dismiss, optional actions.”
KS-016 Settings: save and load, shortcuts, volume, date In progress
Themes, accent, wallpaper, display, dock and about are built; saving through the bridge, a shortcuts page, volume, date and time and default apps are planned.
Evidence: “built (themes, accent, wallpaper, display, dock, about)”
KS-017 Poster layer (theme profile HTML as widget layer) In progress
A host Chrome renders a transparent profile page and the KPL v1 format ships it to the guest; the host side is tested but the guest side was never run.
Needs: KS-019
Evidence: “Host side measured and unit tested”
KS-018 Poster layer: profile list, agenda, fonts, seconds Planned
The dropdown phase adds the profile list, thumbnails, the real calendar agenda, the remaining profiles and fonts, a one-second sub-layer and an export op for Aiwnios.
Needs: KS-017
Evidence: “Dropdown phase: profile list from `list`, thumbnails”
KS-096 Adopt 8: layer tree with compositor-side animation In progress
Retained window layers and damage rectangles are built; animation curves and a general layer API are not.
Evidence: “each open window keeps its chrome and body in a bitmap and is rebuilt only inside its damage rectangle”
KS-099 Adopt 11: clipboard, drag and drop, type handlers, file watch Proposed
Small guest features with high daily value: clipboard, drag and drop, URL and file-type handlers, change notifications.
Evidence: “Clipboard, drag and drop, URL/type handlers, file-change notifications”
Apps
KS-024 Files: create, rename, copy, delete, search, preview In progress
Browsing and open-in-Notes exist; file operations with confirmation, search, list and icon views and previews are to add.
Needs: KS-013
Evidence: “built (browse, open in Notes)”
KS-025 Notes: tabs, undo, selection, find and replace In progress
A plain editor saving to B: exists; multi-document tabs, undo, selection with clipboard and find and replace need the text field widget.
Needs: KS-013
Evidence: “built (plain, save to B:)”
KS-026 Code editor with HolyC colouring and Run Planned
Notes plus syntax colouring and a Run button that compiles the buffer and shows errors in a panel.
Needs: KS-025
Evidence: “Notes plus HolyC syntax colouring (keywords, strings, comments, numbers as a small state machine per line)”
KS-027 Terminal with history and completion Planned
A scrolling text view and input line that runs commands through the TempleOS shell with captured output.
Needs: KS-025
Evidence: “A scrolling text view plus an input line.”
KS-028 Calculator scientific mode and Activity monitor tasks In progress
Both apps exist in basic form; the calculator needs scientific functions and a history tape and the monitor needs a task list with memory and Kill.
Evidence: “Scientific mode (sin, cos, log, powers, constants), history tape”
KS-029 Image viewer Planned
The host converts images to raw 32-bit files and the guest blits them with scaling.
Needs: KS-019
Evidence: “Host converts PNG or JPEG to a raw 32-bit file with a tiny header”
KS-030 Paint Planned
A bitmap canvas with pencil, shapes, fill, palette from theme tokens, an undo ring and saving through the bridge.
Evidence: “A bitmap canvas in guest memory with pencil, line, rectangle, ellipse, fill”
KS-031 DolDoc docs viewer Planned
Render the TempleOS ::/Doc DolDoc files as styled lines so Help is searchable from the launcher.
Evidence: “Render the TempleOS `::/Doc` DolDoc files”
KS-032 Music player (host plays, guest controls) In progress
The afplay-based prototype passes its gates; the Swift AVAudioEngine helper, library, gapless, Subsonic and radio milestones are still plans.
Needs: KS-019
Evidence: “Music: approval naming the folder, scan of 6 generated tones, play with progress (0:02/0:24)”
KS-033 Games launcher for TempleOS games Planned
Run the shipped TempleOS games in a window by redirecting their drawing to a window-sized buffer, starting with one game.
Evidence: “Ours: a launcher tile that runs them in a window by redirecting their draw to our back buffer”
KS-034 Screenshot hot key and toast Planned
KS-035 Projects app filters and open-in-browser In progress
The 17 kamiji projects list exists; status filters and open in the browser through the bridge are to add.
Evidence: “built (17 kamiji projects)”
KS-036 Kosmos Editor mirror, Viewport stream, live Scene Proposed
Mirror kosmos-app's editor tree and stream engine frames into Viewport, Scene and Palette; the plan says it needs the user's go after the bridge exists.
Needs: KS-019
Evidence: “Needs the user's go; no protected files touched by the demo.”
KS-037 Components gallery and Kamikin chat apps Done
A Kamiji UI kit with 29 component tiles and a scripted Kamikin lesson chat run on Aiwnios; they were not run on x86.
Evidence: “Three new desk files, two new apps, no host service.”
KS-038 Weather app (prototype built, full plan pending) In progress
A fixture and live MET Norway prototype works; hourly and daily curves, alerts, radar and widget milestones W2 to W7 are planned (P0 5 to 7 weeks, P1 4 to 6 more).
Needs: KS-019
Evidence: “Weather live (MET Norway): London 776 ms, Tokyo 948 ms host fetch”
KS-039 Podcasts app (host service done, HolyC app pending) In progress
The host service and its 18 offline tests are done; the HolyC app is phase B after the shared tree merge.
Needs: KS-019
Evidence: “Host side is done (`apps-host/hub/svc_podcast.py`, protocol in `apps-host/hub/PODCAST.md`, 18 offline tests pass).”
KS-040 Email client M0 to M5 (host IMAP, reader, compose) Planned
A native mail reader and composer with the Mac host doing IMAP, SMTP and credentials, behind a prompt for every send; the framework text field and list view come first.
Needs: KS-013
Evidence: “Status: plan only, no code.”
KS-041 Email: real provider, HTML safety, JMAP and AI options Planned
Connect a real account after the user's go, block remote content and scripts in HTML mail, and optionally try JMAP and off-by-default summaries.
Needs: KS-040
Evidence: “Needs the user's go.”
KS-042 Contacts app C0 to C4 (vCard, list, editor, completion) Planned
A native address book over a host store with vCard import and export, search, an editor and name completion for mail.
Needs: KS-013
Evidence: “Status: plan only, no code.”
KS-043 Contacts: CardDAV sync, groups, macOS Contacts helper Planned
CardDAV sync with conflict prompts, duplicate merge with a prompt and a signed helper for macOS Contacts that needs the user's approval.
Needs: KS-042
Evidence: “C5 is the largest risk.”
KS-044 Maps app (offline tiles, search, routing) Planned
An offline map drawn by the guest from host-built vector tiles, with host geocoding and routing; the first usable version is 10 to 14 weeks.
Needs: KS-020
Evidence: “Status: plan only, no code.”
KS-045 Slides app Planned
A presentation editor and present mode in HolyC with .KSD, JSON, Markdown and PPTX import and PDF export; it reuses the sheets plan's text field and undo.
Needs: KS-046
Evidence: “Plan only, no code.”
KS-046 Sheet app built; native spreadsheet engine planned In progress
A Sheet window driving the GridCraft engine through the hub is checked on Aiwnios; a native HolyC formula engine with its own file format is milestones M0 to M7.
Needs: KS-013
Evidence: “Checked: Aiwnios, against a hub with the real engine”
KS-047 Font engine and Font Book built; host Font Manager planned In progress
The v2 text engine, six font families, Settings Fonts and Font Book are built; the host index, user fonts, variable fonts, CJK runs and Google Fonts (F1 to F6) remain a plan.
Evidence: “The host-side Font Manager of this plan (system fonts, user folders, host atlases, Google Fonts) is still a plan.”
KS-048 AI IDE host harness and Kamikin agent chat In progress
A tool registry, approval cards, audit log and undo run on the host with a fake and an Anthropic backend; the HolyC chat changes were not run in the VM.
Needs: KS-019
Evidence: “The HolyC changes were not compiled or run in the VM.”
KS-049 AI IDE editor, diffs, git, HolyC mode and hardening Planned
KS-050 Applications folder and app registry Planned
One manifest and registry for built-in, installed and Kosmos host apps, replacing the fixed app arrays in 12 migration steps.
Needs: KS-012
Evidence: “Status: plan, not code.”
KS-052 Messenger phase 1: app and message service In progress
A native window with conversations, bubbles and a composer over a host store with a sample provider and 19 service tests; it is on its own branch, not merged.
Needs: KS-019
Evidence: “phase 1 is built on its own branch and is not merged into the main desktop yet”
KS-053 Messenger phase 2: SMS and approvals Planned
A real provider by polling, an approval card and notifications for new messages.
Needs: KS-052
Evidence: “A real provider by polling, an approval card, and notifications for new messages.”
KS-054 Messenger phases 3 to 5: Matrix, Signal, Telegram, Bitsocial Planned
Matrix and opt-in bridges (including a Slack bridge), then Telegram and Signal clients, then Bitsocial communities.
Needs: KS-053
Evidence: “Unofficial bridges carry ban risk, so each is opt-in.”
KS-067 Electron app host (appd, CDP, install checks) In progress
appd installs, verifies and drives Electron apps over a CDP pipe with approvals and a tile stream, tested only against a Python fake guest.
Needs: KS-056
Evidence: “The HolyC guest was not compiled or run in a VM”
KS-069 Web app contract and host Chromium route Proposed
A kind web manifest, default-deny window.kosmos API and kosmos-app CLI on top of the Chromium route; the study is not implemented, with a day-one prototype and a week-one MVP.
Needs: KS-056
Evidence: “Study, not an implementation”
KS-070 Host JS tree apps and QuickJS on Aiwnios Proposed
KS-071 Compile web apps to HolyC Dropped
Compiling general web code to HolyC was rejected, keeping only static JSX-to-tree literals.
Evidence: “Too ambitious for general code”
Browser
KS-055 Browser v0: reader mode over serial (KDoc) Done
The first browser fetches pages on the host, simplifies them to KDoc and shows them in a guest window; it stays as the BR_V1=0 fallback.
Evidence: “v0 browser: link example.com through the hub (`GET http://example.com/` 204 bytes, 0.09 s): PASS”
KS-056 Host engine over CDP pipe and DLIST band encoder Done
Headless Chrome is driven over a pipe with a throwaway profile and DOMSnapshot is encoded into 256 px display list bands.
Evidence: “built, M1 passed 24/25 sites”
KS-057 Browser guest painter and band cache (M2) In progress
The HolyC painter draws bands for text, links, boxes and controls but gradients, shadows, scroll containers and sticky are placeholders.
Needs: KS-056
Evidence: “guest painter `desk3/browser/paint.HC` partial”
KS-058 Browser v1 through the hub, with form input In progress
KS-059 Browser images, media tiles, sticky and non-Latin text Planned
Host-downscaled images with an RGB565 blit, fixed and sticky positioning, video and canvas tiles, and run images for non-Latin text are the next gaps.
Needs: KS-058
Evidence: “Images, SVG, canvas, video: placeholder boxes (op image not implemented”
KS-060 Browser tabs, omnibox, menu and new-tab page (M3) Planned
A tab strip, search-aware omnibox, security indicator, main menu, keyboard map and new-tab page for the first usable build.
Needs: KS-058
Evidence: “Tab strip with rounded tabs, close button, new tab button”
KS-061 Browser find, zoom, downloads and permission prompts Planned
Find in page and zoom, download prompts with dangerous types refused, and permission prompts that default to deny.
Needs: KS-060
Evidence: “Download on link or Content-Disposition, with a prompt”
KS-062 Browser history, bookmarks, session restore, reader view Planned
A host SQLite store for visits, bookmarks and tab restore, plus a Readability-based reader view.
Needs: KS-060
Evidence: “Record visits (URL, title, time)”
KS-063 Browser DevTools panels and MV3 extensions (M5) Planned
KS-064 Browser hardening (M6) and P2 features Proposed
A 25-site benchmark, memory caps and an Aiwnios socket transport, plus P2 items such as tab groups, ad-blocking APIs, Gemini and RSS; the P2 list is marked later or never.
Needs: KS-063
Evidence: “P2 and out of scope: everything marked as such above.”
KS-065 JavaScript engine inside the guest browser Dropped
Both docs rule out running JavaScript in the guest; a host browser supplies any dynamic pages.
Evidence: “JavaScript (none, ever in the guest)”
KS-066 Native HTML/CSS engine in HolyC (B1) Dropped
The web-app study says not to build a native HTML and CSS engine, and the shipped route renders on the host and paints display lists.
Evidence: “build a native HTML/CSS engine. The evidence below overturns that half of B.”
Platform
KS-019 Host hub daemon (hostd) and service protocol Done
hostd.py owns the VM serial link and routes echo, time, weather, music and later services with approval tokens; the hub tests and a VM round trip pass.
Evidence: “VM echo/hello round trip: PASS, 18 ms.”
KS-020 Faster host-to-guest channel (50 KB/s gate) In progress
Busy polling reached 36 to 47 KB/s against the 50 KB/s gate; the review adds a raw second-disk mailbox for bulk data as an alternative.
Needs: KS-019
Evidence: “v0 busy polling measured 36 to 47 KB/s”
KS-021 Install TempleOS to a disk image for persistence Proposed
The review proposes attaching a disk and accepting the installer so notes and settings survive reboots without a bridge; the README still says nothing is saved.
Evidence: “Install TempleOS to a disk image; delete the persistence gate.”
KS-022 Screen capture and ivshmem pixel route Dropped
Pixel streaming into the guest and the ivshmem ring were replaced by native apps and host services; ivshmem is missing from this QEMU.
Evidence: “the ivshmem idea below does not work on this Mac”
KS-023 Aiwnios native Apple Silicon build of desk3 In progress
The desktop runs on Aiwnios with scripted drivers and goldens while the analysis lists the port as an L to XL item; the x86 VM remains the reference target.
Evidence: “Verified (Aiwnios, arm64, 2880x1800): the whole desktop renders with the new engine”
KS-051 Retained tree interpreter for host-driven apps Proposed
A 512-node declarative tree interpreter in the guest would let host-side code drive native widgets; it is spec only.
Needs: KS-013
Evidence: “not built; spec only”
KS-072 App installer: ksapp host tool and hub service Done
The .ksapp package, Ed25519 signing, atomic install, rollback and uninstall are implemented on the host with 92 passing tests.
Evidence: “Host tool, hub service, four sample apps, 92 tests; hostile cases refused”
KS-073 App installer: guest Install sheet and live app slots In progress
KS-074 App installer: prompts, catalogue, updates, signing Planned
First-launch and permission prompts and URL install, then a signed catalogue, update checks, revocation refresh and a signing workflow (three months).
Needs: KS-073
Evidence: “Catalogue and Get, update check and notification, revocation refresh”
KS-075 Linux base M0: arm64 VM with Electron and Tauri apps Dropped
A Linux VM running a stock Wayland compositor with one Electron and one Tauri app. Dropped with the Linux base plan.
Evidence: “supersedes `os-foundation-plan.md` for this direction”
KS-076 Linux base M1: kosmos-shell v0 on Smithay Dropped
A Smithay compositor with xdg-shell, layer-shell placeholders and own titlebars. Dropped with the Linux base plan.
Needs: KS-075
Evidence: “supersedes `os-foundation-plan.md` for this direction”
KS-077 Linux base M2: retina, clipboard, IME, XWayland Dropped
Fractional scale, clipboard and drag and drop, IME, dmabuf and XWayland. Dropped with the Linux base plan.
Needs: KS-076
Evidence: “supersedes `os-foundation-plan.md` for this direction”
KS-078 Linux base M3: portals, PipeWire, NetworkManager panel Dropped
A portals backend, PipeWire audio and a network panel so a Flatpak app opens files and plays sound. Dropped with the Linux base plan.
Needs: KS-077
Evidence: “supersedes `os-foundation-plan.md` for this direction”
KS-079 Linux base M4: Flatpak store and Tauri system apps Dropped
A store UI and first-party Tauri apps with Kamiji components. Dropped with the Linux base plan.
Needs: KS-078
Evidence: “supersedes `os-foundation-plan.md` for this direction”
KS-080 Linux base M5: reproducible image, installer, updates Dropped
A reproducible image build, installer and update path. Dropped with the Linux base plan.
Needs: KS-079
Evidence: “supersedes `os-foundation-plan.md` for this direction”
KS-084 SSE2 scalar F64 in the compiler backend Proposed
Emit SSE2 for F64 and keep temporaries in XMM, estimated at a week and 8 to 11x on F64 code, at some risk to the x87 paths.
Needs: KS-081
Evidence: “SSE2 F64 in the compiler backend”
KS-085 continue keyword and C precedence switch Proposed
Add continue to the parser and an option for C operator precedence, with the runtime table switch and a host lint for mixed operators.
Needs: KS-081
Evidence: “`continue` and `OPTf_C_PREC` in the compiler, built and hot-loaded with the A.1 loop”
KS-087 Backend peepholes, fastcall, register slots, inlining Proposed
Drop redundant moves, pass arguments in registers for flagged functions, free more register variables and inline leaf functions.
Needs: KS-081
Evidence: “Peepholes in `OptPass789A`/`BackLib`”
KS-089 Adopt 1: event ring and crash dump In progress
A fixed-size trace ring dumped over serial or disk would power profiling, crash forensics and benchmarks. Work done on branch feat/event-ring (f6a96fe), unmerged and unpushed.
Evidence: “Event ring and crash dump (trace everything cheaply; write a dump on fault)”
KS-091 Adopt 3: host-compiled C blobs with thunks and libc shim Proposed
Build freestanding C on the Mac, load it as a .BIN through ABI thunks and a small libc shim; the prototype is time-boxed at 2 to 3 days.
Evidence: “Host-compiled C blobs with thunks and a libc shim”
KS-092 Adopt 4: virtio driver skeleton Proposed
One legacy virtio PCI driver skeleton, blk first, would give persistence and a fast host channel.
Evidence: “virtio driver skeleton (blk first, then vsock or serial rings)”
KS-093 Adopt 5: persistent storage (littlefs or log) Proposed
A power-loss-safe store on virtio-blk so notes and settings survive a reboot; it overlaps the install-to-disk idea.
Needs: KS-092
Evidence: “Persistent storage (littlefs or an append-only checksummed log on virtio-blk)”
KS-097 Adopt 9: 9P2000 over virtio-9p or vsock Proposed
A small 9P codec would expose host files and devices as one tree with no custom bridge protocol.
Needs: KS-092
Evidence: “9P2000 over virtio-9p or vsock”
KS-100 Adopt 12: Unicode text stack In progress
The v2 engine has UTF-8, ranges and kerning; grapheme, bidi and line-break rules, with shaping left on the host, are not built.
Evidence: “Text engine: KSFONT2.BIN reader, UTF-8, ranges, kerning, replacement glyph”
KS-101 Adopt 13: guest networking (virtio-net, lwIP, TLS) Proposed
A native network stack is optional and needs a policy decision because the guest has no network by design.
Needs: KS-092
Evidence: “Guest networking (virtio-net plus lwIP)”
KS-102 Adopt 14: audio driver (AC97 or HDA) and mixer Proposed
A QEMU audio driver with a mixer ring per stream would stop the music app and browser media relying on host playback.
Evidence: “Audio (AC97 or Intel HDA in QEMU, a mixer ring per stream)”
Security
KS-068 Confinement for Electron apps and Tauri support Proposed
Permissions are limits, not a wall, and Tauri apps have no CDP route; a container, VM or window capture would be needed.
Needs: KS-067
Evidence: “A real boundary needs a container or VM”
KS-090 Adopt 2: fault policy, task supervisor, debug allocator Proposed
Throw a catchable fault into the desktop task, restart faulting apps with a recorded reason, and add canary and bounds-check debug builds.
Evidence: “Fault policy and task supervisor (drop the frame or restart the task, record why)”
KS-094 Adopt 6: capability handles and guest permission manifest Proposed
A handle table with rights per task gives the approval model one enforcement point, advisory against hostile code.
Evidence: “Capability handles and the permission manifest, guest side”
KS-095 Adopt 7: wasm interpreter for untrusted code Proposed
A bounds-checked wasm sandbox such as wasm3 is the only credible isolation story in ring 0.
Needs: KS-091
Evidence: “wasm interpreter for untrusted code”
KS-108 Threat model with Rule of Two per feature In progress
Draft assets, actors and trust boundaries and apply the Rule of Two to each current feature for the owner to review. Work done on branch docs/threat-model (46f6fcd), unmerged and unpushed.
Evidence: “Draft a threat model: assets, actors (user, app, agent, web content, host), trust boundaries”
KS-109 Read the two key agent-security papers in full Planned
Read arXiv 2605.14932 and 2501.09674 in full and correct the research note where the abstracts misled.
Evidence: “Read 2605.14932 and 2501.09674 in full; correct this note where the summaries were wrong”
KS-110 Permission manifest and delegation record formats In progress
Define the manifest and delegation record formats for apps-host with a sample manifest and audit-log line. Work done on branch feat/permission-manifests (4ddd037), unmerged and unpushed.
Needs: KS-108
Evidence: “Define the permission manifest and delegation record formats for `apps-host`”
KS-111 Planner and quarantined-reader split prototype Planned
Prototype a split where an injected page cannot trigger a tool call.
Needs: KS-048
Evidence: “Prototype a planner / quarantined-reader split for the AI IDE”
KS-112 Injection test suite and pinned tool descriptors Proposed
Reuse AgentDojo-style and visual injection cases against our agents and hash and pin tool and app manifests, re-prompting on change.
Needs: KS-048
Evidence: “Test the defenses, do not assume them.”
KS-113 Host fuzzing of C blobs and HolyC parsers In progress
Use LLM-assisted fuzzing on the host for PNG, inflate and 9P code before it loads in ring 0. Work done on branch test/host-fuzzing (6f8b707), unmerged and unpushed.
Needs: KS-091
Evidence: “Pattern for fuzzing our C blobs and HolyC parsers (PNG, inflate, 9P) on the host”
KS-117 Lock screen with password protection In progress
A full-screen lock overlay with a salted, iterated password hash, back-off on failed attempts and an idle timeout. It is a UI gate only: TempleOS has no isolation, so anyone with disk, VM or memory access can bypass it. Work done on branch feat/lock-screen, unmerged and unpushed.
Evidence: “added 2026-10-28 on request; work started on branch feat/lock-screen”
Performance and tooling
KS-003 Renderer and window animation performance passes Done
Assembly copies and blends, cached shadows and retained window layers with damage cut a 2880x1800 window drag from 72.1 ms to about 5 ms.
Evidence: “72.1 ms to 9.5 ms a frame”
KS-010 Four-pixel SSE2 blend for crossfades Dropped
A byte-encoded SSE2 blend gave correct pixels but took 83 ms against 53 ms of plain instructions under QEMU, so it was dropped.
Evidence: “Tried and dropped: SSE2 (above).”
KS-011 Develop on an x86 host with KVM Proposed
The review ranks hardware virtualisation on an x86 host first, estimating 10 to 20x on HolyC code compared with emulation on Apple Silicon.
Evidence: “Run on x86 with hardware virtualisation”
KS-081 Patched HolyC compiler build and hot-load loop Done
Copy, patch, Cmp, Load and relink the compiler on the live CD in about five seconds; it was verified, with a hazard if a broken build is loaded.
Evidence: “The compiler rebuilds and hot-loads on the live CD in under three seconds”
KS-082 Serial test harness, benchmark set and goldens In progress
The b-key benchmark suite and golden scenes exist; a KS_MODE=test serial runner with frame-time budgets is proposed.
Evidence: “this report's harness is the prototype”
KS-083 Rewrite hot loops; SSE2 kernels via NASM for F64 Proposed
Pointer-walk loops measured 3.7x to 14x faster, and F64 kernels in SSE2 assembly after setting CR4.OSFXSR measured 11x faster than x87.
Evidence: “Rewrite remaining hot HolyC loops as pointer walks in small functions”
KS-086 Host lint (kslint) for precedence, ASCII and dollar signs In progress
A kslint.py check is already run on new files; the analysis plans precedence, ASCII, dollar and register rules and a formatter, and it is unclear which are implemented.
Evidence: “`kslint.py` is clean on both files”
KS-088 Sampling profiler from a timer interrupt Proposed
A RIP histogram sampled at 1 kHz and symbolised would replace hand-placed timing spans.
Evidence: “Sampling profiler (timer IRQ, RIP histogram, symbolised with `Fs->hash_table`)”
KS-098 Adopt 10: work-queue API and multicore raster workers Proposed
A GCD-style work queue over a few worker tasks, needed for multicore rasterisation that README lists as not done.
Evidence: “Work-queue API for raster workers”
KS-103 Spike S1: event ring plus dump on Fault2 In progress
Force a null-pointer write in a test app and check the desktop survives with a readable dump. Work done on branch feat/event-ring (f6a96fe), unmerged and unpushed.
Evidence: “Force a null-pointer write in a test app; desktop survives; dump readable on serial”
KS-104 Spike S2: C blob (CRC32 and inflate) loaded as .BIN Proposed
Load a freestanding C function through a thunk and match the host result for 1 MB.
Evidence: “Output equals host result for 1 MB; timing recorded against HolyC”
KS-105 Spike S3: virtio-blk sector read and write Proposed
Write one sector in the guest and read it back after a VM restart.
Evidence: “Data written in the guest read back after VM restart”
KS-106 Spike S4: wasm3 sandbox trap test Proposed
Run a 1 KB module with an out-of-bounds access and check the trap is reported and the desktop is unaffected.
Needs: KS-104
Evidence: “Trap reported, desktop unaffected”
KS-107 Spike S5: 9P2000 directory listing in Files Proposed
Send Tversion, Twalk and Tread to a host server and list a host directory in Files.
Needs: KS-105
Evidence: “List a host directory in Files”
Research
KS-114 Verify model releases and the July 2026 incident In progress
Read the vendor posts for the listed releases and find primary statements on the Hugging Face incident, dropping unverified CVE numbers. Work done on branch docs/verify-research-log (015f1aa), unmerged and unpushed.
Evidence: “Find the Hugging Face and OpenAI statements; confirm or drop the CVE numbers”
KS-115 Confirm the EU AI Act timeline after the Omnibus In progress
Read the Official Journal text because the commentary sources disagree on dates. Work done on branch docs/verify-research-log (015f1aa), unmerged and unpushed.
Evidence: “Read the Official Journal text”
KS-116 Keep the research log current (arXiv listings, recurring job) Proposed
Pull the October arXiv listings and decide on a weekly recurring search with a diff after the first month.
Evidence: “Decide on a recurring job (weekly search plus a diff of this file) after the first month”
Method
How the schedule is built
- Done bars span the first to the last commit that touched the ticket's source file.
- In progress work starts at its first commit and ends after half its estimate, at least three working days from today.
- Planned tickets are queued one worker per area in plan order, after their dependencies, using the plan's estimate where it has one and 5 working days where it does not (the detail says which).
- Proposed tickets are ideas from research that nobody has approved; they queue after the planned work in their area.
- Dropped tickets have no bar.
The source is data/roadmap-tickets.json; scripts/gen-roadmap.py writes this page's data and docs/roadmap.md. Edit the tickets, rerun the script, rebuild the site.
Pick a ticket.
Every ticket links to the note it came from, and most are small enough to take in a week.