| Commit message (Expand) | Author | Files | Lines |
| 3 days | term+libc: batched write rendering - one tile render per write(), 2.3x lines | user | 3 | -2/+133 |
| 3 days | kernel: CGB double-speed mode - 2x everything (1.99x measured) | user | 4 | -6/+31 |
| 3 days | term: latch SCY in VBlank - fix ring-scroll shear on live displays | user | 3 | -5/+25 |
| 3 days | term: SCY ring-scroll - scroll writes ONE map row; OSK toggle is 212 cycles | user | 2 | -77/+112 |
| 3 days | term: 3 more renderer wins - 10.9x scroll, 2.7x putc vs pre-cache | user | 1 | -101/+141 |
| 3 days | term: cache tile attrs in COL_BUF's spare stride bytes (3.5x scroll) | user | 1 | -28/+38 |
| 3 days | term: 7-color terminal (per-glyph fg+bg) + ANSI escapes; colorize irc | user | 4 | -29/+549 |
| 3 days | kernel: a real timer source (64 Hz tick IRQ) + uptime(1) | user | 7 | -6/+70 |
| 4 days | kernel: dmesg-style boot spew before init spawns | user | 5 | -2/+330 |
| 4 days | refactor: c/ -> usr/, compiled program blobs out of the source tree | user | 1 | -31/+31 |
| 4 days | net: reject out-of-order TCP segments (accept only seq == rcv_nxt, re-ACK dups) | user | 1 | -0/+46 |
| 4 days | term: dark mode - black background, white text (OSK highlight inverts to match) | user | 2 | -12/+17 |
| 4 days | irc: a bitchx/irssi-style IRC client | user | 1 | -0/+7 |
| 4 days | net: SYS_POLLCON + larger console ring for link-injected input | user | 3 | -3/+19 |
| 4 days | net: fix truncated TCP field offsets corrupting multi-segment recv | user | 1 | -4/+10 |
| 4 days | net: unbreak ping against hosts that intermittently drop ICMP | user | 1 | -3/+54 |
| 4 days | net: pump the network from the console wait (answer pings at the prompt) | user | 3 | -42/+85 |
| 4 days | net: DHCP client - lease the IP at boot instead of hardcoding it | user | 2 | -29/+75 |
| 4 days | kernel: sys_sleep - a cooperative delay off the DIV timer (+ ping pacing) | user | 2 | -0/+44 |
| 4 days | net: keep network packets out of the console (fixes shell garbage on netboot) | user | 2 | -0/+24 |
| 4 days | net: TCP sockets in the kernel - a Game Boy fetches HTTP over real TCP | user | 1 | -8/+678 |
| 4 days | net: UDP sockets in the kernel + a DNS resolver (real hostname lookups) | user | 2 | -21/+328 |
| 4 days | net: proper socket API in the kernel (SYS_NET) - no more SLIP in userland | user | 3 | -0/+756 |
| 4 days | net: ping - GB-originated ICMP echo (a Game Boy pings the real internet) | user | 1 | -0/+7 |
| 5 days | net: real IP stack, milestone A - ICMP echo (you can ping a Game Boy) | user | 1 | -0/+7 |
| 5 days | net: chat client - async receive + OSK send over the link port | user | 3 | -0/+31 |
| 5 days | net: wget - real HTTP over the link port via the gateway | user | 1 | -0/+7 |
| 5 days | net: SLIP framing over the link port + a host gateway (echo round-trip) | user | 3 | -0/+50 |
| 5 days | pipe: PIPE_MAX 2->4 (5-stage pipelines) + fix cross-yield byte corruption | user | 1 | -9/+22 |
| 5 days | kernel+sh: real anonymous pipes (concurrent, streaming, SIGPIPE) | user | 5 | -1/+256 |
| 5 days | term: compute the OSK view offset from the cursor row (keep input visible) | user | 2 | -17/+33 |
| 5 days | term/osk: view-offset scroll region (lossless backlog on OSK toggle) | user | 2 | -62/+35 |
| 5 days | term/osk: scroll region so the OSK never hides the input line | user | 3 | -12/+69 |
| 5 days | osk: bind START to Enter (CR) | user | 1 | -0/+7 |
| 5 days | sh: handle backspace in readline; prompt is now '#' | user | 1 | -1/+14 |
| 5 days | osk: wrap the cursor around all four edges | user | 1 | -19/+27 |
| 5 days | osk: toggle-able on-screen keyboard on the window layer | user | 5 | -7/+411 |
| 5 days | syscall: mirror console output to the LCD terminal | user | 3 | -2/+18 |
| 5 days | term: cursor + O(1) line scrolling | user | 2 | -209/+455 |
| 5 days | font: full mixed-case + punctuation glyph set (not uppercase-only) | user | 2 | -102/+102 |
| 5 days | term: 40-column text terminal on the CGB LCD (4x8 dynamic tiles) | user | 3 | -0/+482 |
| 5 days | fs: reject open()/read() on a directory (EISDIR) | user | 1 | -0/+10 |
| 5 days | fs rewrite stage 3: nested directories, paths, cwd (cd/mkdir/ls) | user | 5 | -36/+360 |
| 5 days | fs rewrite stage 2: inodes + root directory (block-based, persistent) | user | 4 | -260/+616 |
| 5 days | fs rewrite stage 1: persistent block device (bounce buffer, cart SRAM) | user | 4 | -1/+178 |
| 5 days | jobs: background execution (&), non-blocking reap, spin demo | user | 2 | -0/+65 |
| 5 days | kill + ps: implement SYS_KILL (pid 1 immortal) and a ps tool | user | 4 | -3/+202 |
| 5 days | shell: I/O redirection (>/<) and pipes (|); rewrite shell in C | user | 4 | -154/+193 |
| 6 days | filesystem: a RAM FS (WRAMX) + ls/cat/save/rm; wc/head read files | user | 5 | -2/+486 |
| 6 days | tools: wc, head, and an argc/argv demo (args) + libc.c helpers | user | 1 | -0/+21 |