Zmail and mail composition in Symbolics Genera
Zmail is Genera's display-oriented mail reader, organizer, and sender. It is not just a mail-composition command in Zmacs, and it is not the store-and-forward Mailer. The inspected Genera 8.5 release contains all three layers:
- one main Zmail frame for reading, filing, searching, classifying, and composing;
- a separate Zwei
Mailminor mode used by Zmacs and by a standalone mail editor; - a separately declared
Mailersystem for queued store-and-forward delivery.
They share address, message, and delivery machinery, which explains the repeated word Mail in the interface. They nevertheless have different command loops, buffers, processes, and preservation boundaries. The command and binding companion inventories the release-bounded top-level commands, direct keys, prefix keys, menu surfaces, draft-editor commands, and Zwei Mail-mode bindings. The normative reconstruction contract is the ZMail and mail-composition reimplementation specification. The filter, universe, Profile, and option companion, named-command effect closure, and mail-file format semantics supply the exact finite inventories, grammars, effect order, and failure prefixes behind this historical overview.
Evidence and rights boundary
The local source and extracted Help below came from the licensed Open Genera release. They remain untracked. This article publishes only cryptographic identities, factual names, short interface labels, and original analysis. It does not reproduce source bodies, extracted Help prose, message data, or licensed documentation payloads.
| Portable artifact | Bytes | SHA-256 | Use in this study |
|---|---|---|---|
sys.sct/zmail/patch/zmail.system-dir.~262~ |
8,075 | 27366e60fbc6760d2fa937008c9f1883549b6089786fbdfa7230557943d56383 |
System 452.1 / Zmail 442.0 source-profile identity dated 1997-09-10 |
sys.sct/zmail/system.lisp.~81~ |
5,673 | 7a76f3f99df71721376e5cddb247b616568ddbc420fa17cc13aa5fd3804be17b |
release system declaration and module boundary |
sys.sct/zmail/definitions.lisp.~1552~ |
98,226 | f5c96f713e3105acb78d1a79de3d0739afd361f297b3a9b6b647fd4638144aa6 |
objects, command registration, menus, layouts, and options |
sys.sct/zmail/top.lisp.~1561~ |
76,649 | 814f6571649adda39594b006cb9375f23c48f6d32da7bb158a0acefbdc09d089 |
frame, panes, foreground loop, and background process |
sys.sct/zmail/window.lisp.~1538~ |
60,659 | 4e81d597dbf3d6453ddad7efe70a9b2787fb8c8f9c586fd5116117feac535afc |
message and summary display behavior |
sys.sct/zmail/commands.lisp.~1600~ |
120,174 | 4b00879c28268561def2e2ee34a34026f73aca9dc8f5a4cb6077a66af342adf1 |
top-level keys, menus, Help, and message commands |
sys.sct/zmail/collections.lisp.~1552~ |
123,015 | 96ec840410068e90b18d3008cecc346905c93af01bd2b1a2d8d73e79eb1ca345 |
sequences, movement, sorting, deletion, and filing |
sys.sct/zmail/headers.lisp.~1534~ |
66,205 | 6cd3f2217511c8a7d453806ef97d7cf7ad01c399b3affcfa32e9b69d8f796c49 |
parse-state ownership and typed header nodes |
sys.sct/zmail/filter.lisp.~1549~ |
99,538 | 368e8846de981b91fa4d5e03a6714bb9b2b6c009f6ebc8fb01b77a1a6a113cd0 |
filters, survey, and temporary selections |
sys.sct/zmail/universe.lisp.~1511~ |
55,488 | 2500d0ca328476e5e7cac343b7cf13cd01b64f1f61524fd47e4b09c87333c2a5 |
multi-buffer search spaces |
sys.sct/zmail/profile.lisp.~1517~ |
48,182 | 55af687c2b52606472544722a9ee5fd3a06534e5496dc5111baadeec84cfddd3 |
Profile frame, button dispatch, and typed option editor |
sys.sct/zmail/calendar.lisp.~1522~ |
63,648 | 56b4c387f6e8e0ee4d18a606de86b0604ef84ae1dcba1f991b00a18016dc763c |
calendar layouts and day/week/month translators |
sys.sct/zmail/references.lisp.~1515~ |
51,440 | db8288cedf8463e1a52aaad7e8766875e7c8b7461c1379d0783be06b412a2c37 |
reference and conversation operations |
sys.sct/zmail/mail.lisp.~1571~ |
152,833 | 6885d44e951270f9b9b4ebde5a2500fd674d4282599ba7c81e1fce017cb38c3a |
Zmail composition, replies, drafts, and sending policy |
sys.sct/zmail/mail-files.lisp.~1566~ |
205,514 | 1ade0babfa463a4c2780165f64f59ce4d25191d93af7770f7bf571d440ef3648 |
mail-file loading, saving, inboxes, and background saves |
sys.sct/zmail/foreign-mail-file-formats.lisp.~1520~ |
57,759 | 6eabd4f8ce57fa85b48542a8c415528c331f78d37101b2e89db23642e91f32ee |
BABYL, RMAIL, TENEX, and UNIX representations |
sys.sct/zmail/directory-mail.lisp.~1505~ |
11,544 | d5b62077554e07496313aea9a864181d2db04cb60246def44ad7740e1e36debe |
directory-backed messages |
sys.sct/zmail/kbin/buffer.lisp.~1511~ |
14,113 | 07c45298489141b5c75492b733c826c5468a2a0efbbad6db926058592319efc6 |
KBIN buffer integration and upgrade command |
sys.sct/zmail/mail-access-paths.lisp.~1517~ |
18,387 | 85d12d2141a66feeb852ef2ccb9a5e0401f51e65b53336a3e697b4f22d7b9103 |
transport access-path abstraction |
sys.sct/zmail/smtp.lisp.~1537~ |
38,265 | 8f01f92630a0683b0ab25902b6dee6a1b4d936c2ebbd3e857f8ca89cf5471a0d |
SMTP client and server paths |
sys.sct/zwei/mail.lisp.~38~ |
31,024 | 533278201f8538e9709cea2415491543bcc52a250c00acf9a387d391cd8ff93b |
Zmacs and standalone Zwei Mail mode |
sys.sct/zwei/comtab.lisp.~589~ |
100,220 | 5101f5a25a7222d6d0f8f48401522fa418576eb27d145f659513eb80660ca2b1 |
inherited ZWEI lookup, prefix, and undefined-key behavior |
sys.sct/zwei/macros.lisp.~276~ |
71,023 | c7db63e24f706e2fa102db25026a8556ebfbc950d18592c0817f7b48274ad59d |
presentation-to-editor-command registration semantics |
sys.sct/sys2/string.lisp.~326~ |
94,076 | d688c5011f5f6f194a8351da03ea2acbf43c50253ad5748653f374ebc925cec7 |
exact CHAR-MOUSE-EQUAL identity comparison used by Filter and Universe naming |
sys.sct/mailer/system.lisp.~76~ |
3,802 | 7e7a7aaaddd478a2da0b7a29ab811705b934e15df044d2106e92d4e780695fd9 |
separate Mailer system declaration |
sys.sct/mailer/toplevel.lisp.~1560~ |
44,419 | c1c1fb9c67fabd03932cee1b21f0e18265ec0e70d3f02818e0e846a93b50777d |
separate delivery-process boundary |
An analytical 37-file Zmail application-core subset totals 1,781,224 bytes. A sorted portable manifest of logical pathname, byte size, and file SHA-256 has SHA-256 263df1e5a3329d60daf5cb5c931eb656c682cf405777a44a087601f582388e45. The declared Zmail system actually serializes that core together with its RTC parser dependency, Converse, and all eight KBIN files. This exact 47-file build closure totals 2,076,239 bytes; its manifest has SHA-256 327c325390e71dbc45ae8da530921134da2e524b0bc70503819d941ac2898eae. The system declaration itself is metadata and is not included in either total. Behavioral conformance switches for KBIN or Converse do not change this historical build-graph fact. The declared-build source manifest records every exact selected generation, size, and member hash, defines the canonical serialization, and adds generation-binding selection hashes 925a26d7f23c3eb8c40f39ddb2821b200f321860809169acc3b454eaefe293f8 for the analytical core and d0b7ccf46f870005dcdfb676cf55cce6ba9ab6122f0d2bd7994de4ea70630306 for the full build.
The patch directory identifies this inspected source profile as System 452.1 / Zmail 442.0. The runtime witness below identifies a Genera 8.5 world. No function-by-function comparison has yet proved that every selected source body is the bytecode resident in that world, so this article keeps the source profile and compiled-world observation distinct even where the visible behavior agrees.
The ignored, non-evaluating source-Help extraction contains 522 candidate forms from 30 zmail/ logical files. Of those, 150 are direct Zmail top-level command definitions in the core source. The KBIN subsystem contributes one more namespaced definition, and Zmail adopts one generic printer-status command. The resulting clean release closure therefore has 152 completion candidates before patches, site initialization, or user customization. One core source form contains an embedded font-change escape in its command symbol; direct inspection establishes that it is Set Key, not a missing command.
The public Symbolics Editing and Mail manual for Genera 8 is available from Bitsavers. The verified copy is 1,965,567 bytes, 358 PDF pages, SHA-256 80e77cb08b287635f47a781f68ce4ea8a14e05aaf7f19e0df81685d262b81d0d. Its Zmail overview begins on printed page 2426, architecture on 2431, integrated Mail mode on 2442, mail-file formats on 2497, and the command dictionary on 2499. It describes Genera 8, so exact 8.5 claims below require local source or runtime corroboration.
Five meanings of “Mail”
| Name in the system | What it is | What it is not |
|---|---|---|
| Zmail | A ZWEI/TV application with message, summary, command, profile, filter, universe, calendar, and composition panes, plus selected Dynamic Windows/Command Processor presentation services | Not CLIM, not simply a Zmacs buffer, and not a delivery daemon |
| Zmail Mail state | Zmail's integrated draft-composition state, entered by Mail, Reply, Forward, Redirect, Redistribute, Continue, and related operations | Not the ordinary Zmacs Mail minor mode, even though it uses Zwei editing commands |
| Zwei Mail mode | A Text-mode-derived minor mode in a Zmacs special buffer, entered by Zmacs Control-X M or a standalone mail frame |
Not a second mail reader; it calls Zmail's send machinery |
Mail activity alias |
The activity name added to the same Select M entry whose primary label is Zmail |
Not another frame or another implementation |
| Mailer | A separately declared store-and-forward system with queues, logs, hosts, mailboxes, and delivery processes | Not Zmail's internal background file worker |
The distinction is observable. Select M selected the single Zmail frame in the runtime session below. Later, Select E followed by Control-X M produced a Zmacs buffer whose mode line read Zmacs (Text Mail). Those are two interfaces to related machinery, not two names for one window.
Architecture and data model
User-interface substrate and CLIM boundary
Zmail is built from ZWEI editing streams and the TV window system. Genera 8.5 also uses selected Dynamic Windows and Command Processor services for typed items such as paths, addresses, sequences, drafts, and calendar objects. The active summary rows are an older TV scroll-window path: they emit SUMMARY-MOUSE blips. A proposed conversion of those rows to Dynamic Windows presentations survives only in commented source and is not active behavior in this profile.
The Zmail system declaration has no CLIM dependency, and the inspected source defines neither a CLIM application frame nor a CLIM port. A reimplementation may use CLIM internally, but the historical substrate described here is ZWEI + TV + selected Dynamic Windows/Command Processor facilities, not CLIM.
One frame, two Zmail processes
The manual says Zmail has one main window and foreground and background processes. The 8.5 source agrees. Frame initialization constructs the panes and creates one process named Zmail background; selection code reuses the existing main frame, moves it to a usable screen when necessary, and reconstructs it only when the old object cannot be selected. Startup is restricted to the main console rather than arbitrary remote terminals.
The foreground command loop owns interactive state and consumes both user input and responses sent through a dedicated background I/O buffer. The background process handles queued file work, preloading, parsing, saving, and exposed-frame mail checks. This design lets long mail-file operations yield without making the interactive command loop itself the storage worker.
Ordinary background requests are pushed onto the front of their queue and read from the front, so they run last-in, first-out despite a nearby source comment calling the queue FIFO. Preload requests alone are appended and therefore remain FIFO. Loading admits at most 20 messages per quantum; saving and parsing admit at most 10 each.
Messages, buffers, sequences, filters, and universes
Zmail's working objects form several layers:
- a message carries header and body intervals, attributes, keywords, parse state, file provenance, references, and transmission state;
- a mail buffer associates messages with a storage representation or a temporary collection;
- a sequence is an ordered selection with a current message, movement state, and point stack;
- a filter selects messages by attributes, headers, keywords, dates, and other predicates;
- a universe supplies a wider search space spanning buffers and collections;
- reference operations treat message identifiers and reply chains as conversations.
The user-facing result is that Delete, Keywords, Move, Sort, Survey, Map Over, and conversation operations are not merely text edits. They update message and collection state, which is then persisted according to the active mail-file format.
The Genera parse-state slot is not a simple Boolean. NIL means to use the owning buffer as format provenance; a message-buffer object names a specific provenance; T means successfully parsed; :KILLED means dead or errored unless a caller explicitly permits it; and an SI:PROCESS object owns a parse in progress while competing callers wait. Failure restores the prior NIL or buffer provenance rather than publishing T. A clone that collapses these states loses both parse ownership and the killed-message failure boundary.
Panes and configurations
The release defines panes for the summary, displayed message, headers, outgoing mail text, mode line, minibuffer, filter and universe controls, profile editor, ordinary and filtering command menus, and calendar views. Public configurations include Summary only, Both, two distinct entries whose visible label is Message only, Filtering commands, Summary/Message toggle, Send, Calendar, Month, Four weeks, Week, and Year. One Message only entry is the ordinary message layout; the other omits the command menu. The duplicate label is historical behavior, not a documentation typo. Internal reply, filter, universe, and profile layouts support particular command states.
The normal initial view is Both: summary above, command menu in the middle, and message below. Summary rows are interactive TV SUMMARY-MOUSE blips, not Dynamic Windows presentations. Left selects a row; middle applies a profile-selected operation such as delete/undelete; right opens a conditional message menu. The exact menu and binding surfaces are in the companion reference.
Feature inventory
Organizing and transforming messages
- delete, undelete, temporarily remove, expunge, concatenate, move, rename, and reverse sequences;
- assign and remove keywords, edit the keyword list, and merge keywords across a conversation;
- define filters and universes, mark survey results, select temporary collections, and apply Map Over operations to a selection;
- sort messages and identify or remove duplicates;
- select, append, move, delete, compare, survey, or merge by reference chain;
- construct or split digests, reformat or restore headers, and run rules over a message or a collection.
Composing and sending
- compose new mail, replies, forwarded mail, redistributed mail, redirected mail, bug reports, and local mail;
- choose one-, two-, or zero-window reply layouts and optionally yank the original message;
- add To, Cc, Bcc, Fcc, blind Fcc, Subject, From, Reply-To, In-Reply-To, References, File-References, Start-Date, and Expiration-Date fields;
- continue, save, restore, write, revoke, inspect, or preserve draft messages;
- use templates, mailing-list expansion, address motion, file references, character styles, and optional text encryption;
- compose and survey reminders in calendar mode;
- invoke the source command family named
ECO. The source examined here does not establish a safe expansion of that acronym, so none is asserted.
Profiles, Help, and customization
The profile editor groups options for reading and checking mail, saving, sending, replies and forwarding, window configuration, keywords, mail-file format, collection behavior, reminders, destructive-command confirmation, summary mouse behavior, and background work. Several menu commands use the profile's middle-button choice, next/previous policy, reply layout, pruning policy, and draft-ending policy rather than a fixed global rule.
The selected sources contain 81 textual user-option forms: 80 active declarations and one declaration inside a block comment. The inactive form is evidence of an older path, not a runtime registration. The semantic companion records every form's type, default, restriction, persistence and derived update behavior, plus the exact filter and universe definition languages and Profile save/compile/reset order.
Zmail has its own Help, key self-documentation, Apropos, Describe Command, and extended-command reader. The command registry is populated when source files load and is mutable by patches, site files, profiles, and Set Key. The 152 command names in the companion are therefore a clean-release denominator, not a promise that every configured site exposes an identical live registry.
Calendar and reminders are message views
Calendar is not a separate appointment database. It projects ordinary Zmail messages whose parsed headers contain a Reminder-period or Start-date, optionally constrained by Expiration-date and Reminder-time. Every present constraint must pass and Period or Start must exist. Expiration is strict at the selected day's midnight. Start is tested only against the end of that day, so a start-only reminder continues to appear on later days unless another header limits it. Period expressions are expanded through the Time subsystem and cached with parsed header state.
The source supplies Year, Month, Four Weeks, and Week frames. Year arranges twelve month panes in three rows of four and can XOR-highlight dates containing reminders; that highlighting is disabled by default. Month chooses a four-, five-, or six-row grid, Four Weeks fixes four rows, and Week shows seven day panes. Monday is the default first weekday. Day panes place holidays first, then stable-sort reminders by explicit time; the current message is bold with an arrow and holidays are italic.
The Calendar command surface includes setting Start and Expiration on the current message, composing once-only or periodic reminders, adding a reminder from a selected day, and surveying a date. Dynamic Windows exposes Day, Month, and Week-containing-day presentations plus conversions from Day to midnight universal time and to a date-only reminder value. Calendar contributes five of Zmail's 37 presentation-to-editor-command translators.
An exact historical asymmetry is preserved in the D08 specification: changing the Sunday/Monday option through the ordinary profile update recomputes Year, Month, and Four Weeks but omits an already displayed Week. The separate full recompute path includes Week. These source-derived populated layouts have not yet been exercised in the preserved 8.5 world, so their visual appearance remains an explicit runtime oracle rather than a guessed screenshot.
Storage formats and mail files
The Genera 8 manual says Zmail understands five mail-file formats: BABYL, RMAIL, KBIN, TENEX, and UNIX. The 8.5 source retains all five and registers two more buffer representations:
| Registered name | Representation established by source |
|---|---|
| Babyl | BABYL mail file with persistent message and file options |
| Rmail | ITS RMAIL representation |
| KBin | binary, preparsed KBIN representation supplied by the KBIN subsystem |
| Tenex | TOPS-20/MM-style representation |
| Unix | conventional UNIX mailbox representation |
| Directory | one message per file in a directory-backed mail buffer |
| Text | output uses blank or configured separators; input is treated as one whole message; the representation is explicitly non-reparsable |
This is a source/manual difference, not proof that all seven appeared in every runtime menu or were equally portable. In particular, the arbitrary-format chooser filters out representations whose mail-file-reparsable predicate is false, so Text is deliberately absent even though it is registered. The isolated runtime did not open that chooser, so the exact live menu still remains a TODO. Directory and Text are storage representations; neither is a network transport.
Format capabilities differ. Source methods decide which file options and message attributes can be saved, whether a file can be reparsed, how new-mail headers are recognized, and whether changes require a rewrite. Text is therefore an export/import surface, not a round-tripping Zmail mailbox: writing separates messages, while reading an arbitrary Text input constructs one message from the whole input. Zmail cannot safely treat all mail files as interchangeable bags of RFC 822 text.
Sending, transport discovery, and the Mailer boundary
The active 8.5 global sending function defaults to NETWORK-SEND-IT. An older site-option table for fixed COMSAT, Chaos, direct-Chaos, and Ethernet modes is present inside a block comment and is not an active profile definition in this revision.
The active path groups recipients by their first-hop host or site and asks the network service framework for a path. It prefers a store-and-forward mail service when available, can use a host-local mail-to-user path, retries candidate services, can offer a service believed unavailable, and can fall back to direct delivery after prompting. The release contains local-file-system, Chaos Mail, and SMTP implementations; the SMTP and Chaos files contain both serving and client-side paths.
This discovery code is in Zmail, but a store-and-forward service is supplied by the separate Mailer system. Its declaration names filesystem, log, counter, UID, queue, options, host, message, hardcopy, top-level, mailbox, and debugging modules. A full Mailer process/queue/delivery study belongs to the separate background-services dossier. It must not be inferred from Zmail's UI process.
Zmail's background process is not the Mailer
Source inspection establishes these implementation details:
- process name
Zmail background, priority -1, scheduler quantum 10; - a minimum of five seconds of keyboard inactivity before ordinary background work is allowed to proceed;
- mouse-speed threshold 2.5, with polling pauses while the pointer is moving faster;
- at least 12 free response-buffer entries and at least 25 percent of the response buffer reserved for the foreground;
- ordinary work is pushed and consumed at the queue front (LIFO), while preload work alone is appended and consumed FIFO;
- background load, save, and parse quanta of 20, 10, and 10 messages respectively before yielding;
- ordinary queued work can be allowed while the frame is deexposed, but periodic background mail checks have an additional explicit exposed-frame test;
- periodic background mail checking and completing inbox reads in the background are enabled by their default profile values.
Those are responsiveness and file-work policies inside the interactive Zmail frame. They are not evidence that the host is running the store-and-forward Mailer or that mail can leave the machine.
Two composition editors
Integrated Zmail composition
Mail, Reply, Forward, Redistribute, Redirect, Continue, and recursive composition create a Zmail draft and switch the frame to a Send or reply configuration. The header and body regions are Zwei intervals, so ordinary editing commands are inherited. Zmail adds mail-header movement, header-field insertion, draft, reply-layout, send/abort, original-message yanking, encryption, file-reference, and mailing-list commands.
End is policy-sensitive in the reply editor: the configured profile can send, offer both send choices, return to adding text, or offer both text choices. Control-Altmode sends directly. The right-button draft menu and the extended command list deliberately share the same command array except that Show Expanded Mailing List is extended-command-only.
Zwei Mail mode in Zmacs
Zmacs Control-X M calls a separate command in zwei/mail.lisp. It selects a special Mail buffer, initializes Text mode, and turns on the Mail minor mode. A new draft contains To and Subject fields plus a body separator. End and Control-Altmode transmit; Abort, Control-Z, and Control-] quit without transmitting; Meta-Help shows a patch-mail example; and its editor menu adds Add File References.
This mode depends on Zmail: if the Zmail window variable is not bound, its source rejects sending rather than implementing an independent transport. It also has source-visible behavior not prominent in the public Zmail narrative:
- a nonzero numeric argument requests the most recently selected Mail buffer;
- zero displays existing Mail and bug-mail-frame drafts for selection;
- abort from a standalone mail frame can preserve the draft as a Zmacs buffer;
- retransmitting a previously sent draft can add
SupersedesandCommentsaccording to the shared Zmail option; - sent Mail and bug-mail-frame buffers are deliberately retained rather than marked reusable.
The release also supplies a standalone top-level mail editor used by the Lisp MAIL entry point. It is another view over the same Zwei Mail-mode and Zmail sending boundary, not a separate mail transport.
Source findings not evident from the manual alone
- The public manual's five mail-file formats are not the full 8.5 registration set: Directory and Text are also registered by loaded Zmail source. Text reads an input as one message, is non-reparsable, and is filtered from the arbitrary-format chooser.
- The source profile is System 452.1 / Zmail 442.0. The runtime world is Genera 8.5, but exact source-to-resident-bytecode identity remains unproved.
- Active summary interaction uses TV
SUMMARY-MOUSEblips. The nearby Dynamic Windows presentation rewrite is commented out, and Zmail is not a CLIM application. - Ordinary background work is LIFO, despite a comment calling the queue FIFO; preloads alone are FIFO. Load/save/parse quanta are 20/10/10 messages.
- The two source configurations for ordinary message-only and message-only without the command menu have the same visible label,
Message only. - Parse state distinguishes inherited format provenance (
NIL), explicit message-buffer provenance, success (T), killed/error state (:KILLED), and anSI:PROCESSobject that owns parsing in progress. - The message and reply editors intentionally keep their extended-command and right-button menu lists synchronized, with one documented source exception:
Show Expanded Mailing Listis extended-command-only. Select Mand theMailactivity label point to the same unique Zmail frame. The alias is not evidence of a second application.- Zmacs Mail mode is implemented outside the Zmail directory, but refuses to send unless Zmail is loaded and delegates final transmission to Zmail.
- The active network sender dynamically discovers store-and-forward and direct paths. The apparently simpler fixed sending-mode menu is commented out.
- Background responsiveness is encoded through explicit keyboard-idle, pointer-speed, queue-reserve, and message-quantum limits. The manual's phrase “background file operations” does not expose those thresholds.
- Periodic new-mail checks require the Zmail frame to be exposed even when other background requests are permitted while deexposed.
- The main frame is console-bound and reused. “Only one Zmail window” is an enforced implementation property, not merely a documentation convention.
Runtime observations in Genera 8.5
A fresh, isolated session named zmail-d08-genera-20260718, generation 1, verified the reader surface and Zwei Mail mode without transmitting mail. The world was not configured as a Symbolics site, had no external route, and exposed no guest-visible host file service.
| Item | Recorded value |
|---|---|
| Session | generation 1; 2026-07-18 05:45:11–05:58:11 EDT |
| Licensed release archive | 206,213,430 bytes; SHA-256 89fb3e76b91d612834f565834dea950b603acf8f9dbacacdd0b1c3c284a2d36e |
| Base and private world | Genera-8-5.vlod, 54,804,480 bytes; SHA-256 a8ee5e86cc7e322f7385af3e0cd579d7650d4dcfc3ce328acbf8b25515dd0672; unchanged at stop |
| Debugger and VLM | debugger SHA-256 2db918cfe8f35f52c7ff4b7695b0ecd3bb85e41a3327ea5a94874edf05edb54a; VLM SHA-256 9f5e18d5770f973879716182b6856ef5a8ee9d3b2bb907476ea0cf35986aa4c7 |
| Harness | execution-time SHA-256 bc9276ac766913bc15018dd334a2a2704ae5a926e1fcbc30ccfcff08af8cb48a |
| Toolchain | manifest.scm SHA-256 3adae999bbe420182f22adc2499fcc82449a46eaf580a362de9c0e718fa6b37d; Guix channel 230aa373f315f247852ee07dff34146e9b480aec |
| X compatibility | source SHA-256 4db1dee8e71d5ddc5cfd8289ecc3607738370ac97f856853786cfe713e94e392; executable SHA-256 acd71dbcb948f05b7fd2730b2b4706c08f16f46d792bd9aa6aa64370e855e4b1 |
| Network/configuration helpers | ifconfig interposer SHA-256 f45f45461622975996ab41138f64bb84a4b17c51fba0dbb649208914898c26b7; configuration SHA-256 5ce6509f5adf2cf2d054d34eb4ba777ce462285b8cd9b01bc071bf819139e086 |
| Time responder | executable SHA-256 cc3a2274149c5593b52e6608d732d4048518c766134df5e0f018746ad5cf98bb; validated evidence SHA-256 0882da766af704e417c973f9a0b85e783915e106f26dc511f28c1016767c7df7 |
| Selected window | Genera on DIS-LOCAL-HOST, XID 4194310, x=72, y=55, 1200 by 900 |
Bubblewrap placed the VLM in separate user, mount, network, PID, IPC, and hostname namespaces. The read-only Guix store, exact helper files, and private X socket were the only host inputs exposed alongside the writable private runtime. MIT-SHM was disabled and live-verified absent. Both pinned X-protocol substitutions and the single local RFC 868 request/reply were observed; the time responder exited zero.
The 23 ordered input intents, each followed by a linked outcome in the ignored action log, were:
Select M → harness Abort alias → Mouse-R at (600,650) → Mouse-L at (600,423) → Mouse-R at (672,705) → Mouse-L at (720,758) → Return → harness Abort alias → type LISP-MACHINE → Return → Mouse-L at (670,702) → Return → Mouse-R at (600,650) → Mouse-L at (100,650) → Mouse-L at (1080,437) → harness Abort alias → Mouse-L at (800,448) → Select E → Control-X M → harness Abort alias → Control-] → Control-U 1 Control-X M → Control-].
Coordinates are relative to the selected Genera client. The early pointer and Abort attempts are retained because they include unsuccessful completion-menu and host-key translation probes; they are not silently rewritten into an ideal interaction.
Site boundary on integrated composition
Clicking Mail did not send anything. It immediately entered an error handler because the expected file host DIS-SYS-HOST was unavailable for file operations. Returning to Zmail restored the top-level frame. This establishes a site-configuration dependency in the preserved world; it does not establish a defect in a configured Genera site, and the museum harness must not supply or guess that missing service.
Live Zwei Mail mode
Select E, then Control-X M, successfully opened *Mail-1* in Zmacs (Text Mail). The visible buffer contained To and Subject fields and the expected body separator; the mode line described End as transmit and Abort as quit. No recipient or body was entered.
The generic harness Abort alias mapped to an unintended editor operation in this context. Control-], one of the source-defined Mail-mode quit bindings, returned to Fundamental mode. The editor then told the user that a numeric argument to Control-X M could continue. A subsequent Control-U 1 Control-X M probe displayed a fresh *Mail-2* rather than proving reselection of *Mail-1*. The source semantics are clear, but the exact prefix/retained-buffer runtime path remains a TODO rather than being “confirmed” from this ambiguous probe.
Published runtime screenshots
Two representative captures passed the image- and use-specific review in the screenshot publication policy. They establish two different application surfaces without publishing a message, recipient, address book, mailbox, or substantial Help prose.

The reader capture shows the one-frame Zmail organization after local login. The short hints are retained because they identify what the otherwise empty panes and menu are for; the image is not evidence about populated-message rendering.

The second capture is deliberately blank. Its documentary purpose is to prove that Control-X M creates a Zwei editing surface with a mail template and a distinct mode line, rather than selecting the full Zmail reader. Residual Zmail pixels and the dithered area at the right are incidental state from the surrounding display; they do not specify the standalone editor's frame geometry.
| Raw basename | Evidence purpose | Captured | Dimensions | PNG SHA-256 | Pixel SHA-256 | Action prefix | Sidecar |
|---|---|---|---|---|---|---|---|
0011-zmail-login-complete.png |
establish the live Zmail summary/message layout and 20-cell main menu after local login | 2026-07-18 05:53:10 EDT | 1200 by 900 | a947dc4d80238ef0bea331d383603865a4eb653cd2903c2b23cd65217742aab7 |
b4d8c37c43d839b0983d35c244950c1649668bd70ace82a2c2b5bd9ffab12d66 |
24 records; 31f193b620c8d0cf62cbe9bbcc7744c6582f3d16db47aa4a93a84ec17ff0a150 |
0011-zmail-login-complete.json, 13,735 bytes; SHA-256 80ddfcefebbb8ba53baf02f2ff3c376a1adecacd691f66535697d85bbd23dd4b |
0017-zwei-mail-mode.png |
establish the distinct live Zmacs Text Mail buffer, header template, body separator, and mode line | 2026-07-18 05:55:56 EDT | 1200 by 900 | 6462902049b81435b2fb7cff480be055f660978bb12a4d5ea49dea091bb7c62c |
945ae06da781538b6def4937592b1bee5fbbd9d6f0ad0117b276f757ec846e67 |
38 records; b9f03911419f23c845e23fcc0739984c42e667daf7ec3176d89c399b486a7064 |
0017-zwei-mail-mode.json, 13,729 bytes; SHA-256 de631d8705a9bc48afd037ed7378e04c6abde977e16ac5aeb7f807ed197fa648 |
The exact raw-to-curated mappings, image identities, action prefixes, session record, shutdown result, and publication limits are recorded in the curated Genera screenshot catalog. No other image from this session is approved by implication.
The ignored run record is 25,641 bytes, SHA-256 70612937b74496027fb1981586dbd11dd8651fd786fdedd394d20a158c94747c. The 46-record action log is 22,038 bytes, SHA-256 2a65002bf6dcf12b12fb5e364b8aeca652f90b83b1270677687c7c5c3785db72. The shutdown prompt was observed, yes was sent and accepted, and cleanup progress appeared. The known cold-load mutex stall then required bounded host cleanup. Final status is forced-stopped with forced_stop=true, forced_after_confirmed_shutdown_stall=true, orderly_vlm_host_shutdown=false, and state_may_be_incomplete=true. The harness itself did not invoke Save World and did not create a host-process checkpoint. The separately recorded save_world_performed and guest_checkpoint_created fields remain unknown because the guest input was not independently audited for either event. The private world remained byte-identical to the base; that unchanged hash is not by itself proof about either field. The record marks unsaved_lisp_state_discarded=true; this means only that unsaved guest state was lost when the bounded cleanup ended the VLM, because the harness has no host-process resume mechanism. Supervisor, Xvfb, and VLM processes were all absent after stop.
Open questions
- Does Directory appear in the arbitrary-format UI of this exact world after a fully configured site login? Source proves that Text is filtered out as non-reparsable, so Text is no longer part of this runtime question.
- What live delivery choices appear when a legitimate store-and-forward service and file host are configured? The isolated museum session cannot answer this.
- Does a hardware-faithful numeric prefix reselect the retained Mail buffer after
Control-], or did the XTEST sequence differ from the intended console input? - Calendar/reminder layouts, a populated summary, filter presentations, and conversation operations still need minimal-data runtime observations. Any future captures must avoid real or licensed message content.
- A full process, queue, retry, and mailbox analysis of the separate Mailer remains for its own dossier.
Sources
- Symbolics, Editing and Mail, Genera 8, printed pages 2426–2499 and the Zmail command dictionary; verified 2026-07-18.
- Licensed local Genera 8.5 Zmail, Zwei Mail-mode, Mailer source, and inert source-Help extraction, artifact identities recorded above; inspected 2026-07-19.
- Fresh
zmail-d08-genera-20260718Genera Xvfb session, generation 1, input, image, isolation, and shutdown evidence recorded above; observed 2026-07-18.