SchOS/.claude/memory
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Nexoniarz 953f9c5c3c branding: one mark, and PSOGM draws it
Guru and SchCotie are gone. Shift is the only mark, and the crash screen draws
it where the face used to be.

Guru was an icon -- a pictogram with a face, denoting one state -- that lived
on the crash screen and nowhere else. Its argument was identity: `:(` is
recognisably Microsoft's, and a crash screen is the single screenshot most
likely to leave the machine, so it is the worst place to be wearing somebody
else's face. That part holds, and it is kept in the branding README because it
is the argument against any second mark. What does not follow is that the
answer is a *new* mark. Shift already signs the system, it is already what the
machine drew on the splash it started with, and a reader who has seen it twice
before the crash recognises it faster than a face they have never seen.

SchCotie was a mascot, and never existed: the file said so itself under "what
this does not cover". A brief for a character nobody is about to draw is not
worth carrying.

So `draw_guru()` and its SVG-space geometry leave panic.c, the two `guru.svg`
files are deleted, and PSOGM calls gfx_draw_logo() -- the same include/logo.h
mask the loader splash and the boot console composite. At its native 128 px:
there is no resampler in the crash path, and the face was scalable in a place
that only ever drew it at one size.

The name stays. "Purple Screen of Guru Meditation" is the Amiga nod, which
panic.c's own header already called out as a separate thing from the mark.

**And taking the screenshot to check it caught a regression from the TTF
console work.** `gfx_draw_char()` -- the pixel-positioned path, which only
PSOGM uses -- still walked `font_data[c][row]` for `row < CHAR_HEIGHT`.
font_data has exactly 16 rows per glyph; CHAR_HEIGHT is the *TrueType* cell
height now, about 21. So every line of the crash report drew five rows of the
next character's bitmap underneath itself, and it looked like each line had
been printed twice. The grid path had been updated when the cell size stopped
being a constant; this one had not, because nothing routine draws text in pixel
coordinates. Both go through one draw_glyph_px() now, and the bitmap's own
geometry is spelled BITMAP_W/BITMAP_H so it cannot be mistaken for a cell size
again.

Two stale claims corrected while in there, in panic.c's header and in
graphics.md: PSOGM has not dimmed-and-floated over the old screen for a while
-- it clears to full purple, and the file's own code comment says why -- and
there is no longer "a face that is obviously a cartoon".

The website's crash section shows the mark in flat white rather than its own
violets, which is what the kernel actually draws: PSOGM composites a coverage
mask in one colour, and those violets sit close enough to #4B1D9A to
half-disappear against it.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-21 21:35:58 +02:00
..
MEMORY.md memory: the SMP crash is SMP-only, and what the font work cost 2026-09-21 21:05:52 +02:00
nexoniarz-sharing-preference.md Carry project memory in the repo, with tools/memory-sync.sh 2026-08-09 14:27:22 +02:00
schcom-v0.md memory: Schcom v0, and the order change that put it before the installer 2026-08-09 23:12:56 +02:00
schfs-btree-phase1.md Carry project memory in the repo, with tools/memory-sync.sh 2026-08-09 14:27:22 +02:00
schfs-next-and-platform-roadmap.md memory: the SchFS and platform roadmap, and the 614 MB ceiling 2026-08-10 18:53:32 +02:00
schfs-phase2-mount.md Carry project memory in the repo, with tools/memory-sync.sh 2026-08-09 14:27:22 +02:00
schfs-phase3-writes.md Carry project memory in the repo, with tools/memory-sync.sh 2026-08-09 14:27:22 +02:00
schfs-v2-and-ramdisk.md Carry project memory in the repo, with tools/memory-sync.sh 2026-08-09 14:27:22 +02:00
schos-boot-split.md memory: schinit and the BIOS/UEFI split 2026-08-09 16:36:54 +02:00
schos-bootcheck-trust.md Rebuild when RAMROOT is toggled, and add an opt-in KVM target 2026-08-09 22:46:00 +02:00
schos-cross-platform-build.md Rewrite run.ps1; it was five kinds of stale 2026-08-09 14:49:47 +02:00
schos-fedora-move-bugs.md Fix two bugs the Fedora move exposed 2026-08-09 19:29:21 +02:00
schos-linux-machine.md docs: four directories, and a rule for when a thing leaves the roadmap 2026-09-12 17:13:35 +02:00
schos-memory-sync.md Carry project memory in the repo, with tools/memory-sync.sh 2026-08-09 14:27:22 +02:00
schos-performance-and-init.md memory: performance, init signal safety, and trusting the harness 2026-08-09 15:55:11 +02:00
schos-rename-and-git.md Carry project memory in the repo, with tools/memory-sync.sh 2026-08-09 14:27:22 +02:00
schos-schinit.md memory: schinit and the BIOS/UEFI split 2026-08-09 16:36:54 +02:00
schos-smp-userspace-corruption.md memory: the SMP crash is SMP-only, and what the font work cost 2026-09-21 21:05:52 +02:00
schos-uefi-loader.md Rebuild when RAMROOT is toggled, and add an opt-in KVM target 2026-08-09 22:46:00 +02:00
schunix-boot-splash-logo.md docs: four directories, and a rule for when a thing leaves the roadmap 2026-09-12 17:13:35 +02:00
schunix-build-environment.md docs: four directories, and a rule for when a thing leaves the roadmap 2026-09-12 17:13:35 +02:00
schunix-build-speed.md Carry project memory in the repo, with tools/memory-sync.sh 2026-08-09 14:27:22 +02:00
schunix-console-tty.md Carry project memory in the repo, with tools/memory-sync.sh 2026-08-09 14:27:22 +02:00
schunix-crash-screen.md branding: one mark, and PSOGM draws it 2026-09-21 21:35:58 +02:00
schunix-devfs-procfs.md Carry project memory in the repo, with tools/memory-sync.sh 2026-08-09 14:27:22 +02:00
schunix-device-model.md docs: four directories, and a rule for when a thing leaves the roadmap 2026-09-12 17:13:35 +02:00
schunix-dirsiz-14.md Carry project memory in the repo, with tools/memory-sync.sh 2026-08-09 14:27:22 +02:00
schunix-doom-acceptance-test.md docs: four directories, and a rule for when a thing leaves the roadmap 2026-09-12 17:13:35 +02:00
schunix-driver-infrastructure.md Carry project memory in the repo, with tools/memory-sync.sh 2026-08-09 14:27:22 +02:00
schunix-e1000-and-driver-layout.md docs: four directories, and a rule for when a thing leaves the roadmap 2026-09-12 17:13:35 +02:00
schunix-framebuffer-device.md Carry project memory in the repo, with tools/memory-sync.sh 2026-08-09 14:27:22 +02:00
schunix-ioremap-and-bars.md memory: UEFI reaches userspace, and the ISO grows a hierarchy 2026-08-09 22:04:12 +02:00
schunix-iso-boot.md memory: the installer is scoped, and the live CD is off the list 2026-08-09 22:20:20 +02:00
schunix-layout-migration.md docs: four directories, and a rule for when a thing leaves the roadmap 2026-09-12 17:13:35 +02:00
schunix-licensing.md docs: four directories, and a rule for when a thing leaves the roadmap 2026-09-12 17:13:35 +02:00
schunix-linux-abi-decision.md Carry project memory in the repo, with tools/memory-sync.sh 2026-08-09 14:27:22 +02:00
schunix-linux-open-flags.md Carry project memory in the repo, with tools/memory-sync.sh 2026-08-09 14:27:22 +02:00
schunix-network-stack-choice.md docs: four directories, and a rule for when a thing leaves the roadmap 2026-09-12 17:13:35 +02:00
schunix-pci-drivers.md Carry project memory in the repo, with tools/memory-sync.sh 2026-08-09 14:27:22 +02:00
schunix-qr-encoder.md docs: four directories, and a rule for when a thing leaves the roadmap 2026-09-12 17:13:35 +02:00
schunix-ramdisk-root-sizing.md Carry project memory in the repo, with tools/memory-sync.sh 2026-08-09 14:27:22 +02:00
schunix-rewrite-priorities.md Carry project memory in the repo, with tools/memory-sync.sh 2026-08-09 14:27:22 +02:00
schunix-roadmap-and-projects.md docs: four directories, and a rule for when a thing leaves the roadmap 2026-09-12 17:13:35 +02:00
schunix-schapi-direction.md docs: four directories, and a rule for when a thing leaves the roadmap 2026-09-12 17:13:35 +02:00
schunix-shm-and-mmap.md Carry project memory in the repo, with tools/memory-sync.sh 2026-08-09 14:27:22 +02:00
schunix-smp-and-memory-bugs.md docs: four directories, and a rule for when a thing leaves the roadmap 2026-09-12 17:13:35 +02:00
schunix-sockets-and-evdev.md Carry project memory in the repo, with tools/memory-sync.sh 2026-08-09 14:27:22 +02:00
schunix-syscall-single-table.md Carry project memory in the repo, with tools/memory-sync.sh 2026-08-09 14:27:22 +02:00
schunix-text-rendering.md Carry project memory in the repo, with tools/memory-sync.sh 2026-08-09 14:27:22 +02:00
schunix-ttf-rasteriser.md memory: the SMP crash is SMP-only, and what the font work cost 2026-09-21 21:05:52 +02:00
schunix-tty-fg-pgrp-coupling.md Carry project memory in the repo, with tools/memory-sync.sh 2026-08-09 14:27:22 +02:00
schunix-usb-ids.md docs: four directories, and a rule for when a thing leaves the roadmap 2026-09-12 17:13:35 +02:00
schunix-usb-xhci.md docs: four directories, and a rule for when a thing leaves the roadmap 2026-09-12 17:13:35 +02:00
schunix-verify-by-driving-shell.md Carry project memory in the repo, with tools/memory-sync.sh 2026-08-09 14:27:22 +02:00
schunix-virtio-gpu.md Carry project memory in the repo, with tools/memory-sync.sh 2026-08-09 14:27:22 +02:00
schunix-wall-clock.md Carry project memory in the repo, with tools/memory-sync.sh 2026-08-09 14:27:22 +02:00