Skip to content

aterm v0.103.0

Choose a tag to compare

@alabsystems alabsystems released this 10 Oct 19:30
· 41 commits to main since this release

aterm v0.103.0

2026-10-10 · 39 changes since v0.102.0

Fixes

  • aterm-containment: deny every mach-lookup but the user and group queries
  • aterm-gui: a press the tty will not echo is never predicted
  • aterm-predict: an echo proof ends at every boundary the predictor cannot see past
  • aterm-predict: a killed typed-ahead word does not stay on glass as a ghost
  • aterm-predict: the echo proof covers only the cell the last echo left the cursor in
  • aterm-predict: only a line terminator keeps typed-ahead guesses on glass
  • aterm-core: log a block's eviction once, not on every read
  • aterm-gui: thin the network drive's refusal lines as the local socket's are
  • aterm-grid: log the reflow window's cap per window, not per dropped line
  • aterm-core: thin evicted-block log lines by doubling, not one per block
  • aterm-release: a release is not done without its signed source manifest
  • atpkg: the dmg lane stages a bundle at the archive lanes' modes (AT3)
  • atpkg: the stage path's directories and records, and a dmg copy's owners, follow atpkg's rule, not the umask or the image (AT6, AT7)
  • aterm-pty: a -e command's arguments reach the program byte for byte; a NUL refuses the spawn
  • aterm-pty: a configured shell holding a NUL refuses the spawn instead of running another

Tests

  • a key-journey hang detector counts from the last key; a lost shell test says how it ended
  • a status wait in agent_verdict_live_headless that times out shows the screen
  • the question tests hold the fake's busy screen until the host has told its answer
  • the gsettings read test gives its child a hang-detector bound, not the product's 200 ms
  • a stand-in that "exits on EOF" exits when the stand-down tells it, not 200 ms after spawn
  • the weekly-limit test names its reset from one clock reading
  • the question tests' busy screen is bounded, so it never waits on what waits on it
  • a timed-out status wait in agent_verdict_live_headless shows the instance's process tree
  • atpkg's doctor probes wait a hang-detector bound in test builds, not the 5 s production ceiling
  • "no step while parked" waits for the park to take effect instead of 20 ms
  • a timed-out wait for CHOSE shows the instance's process tree
  • headless_activation waits out an instance that has not accepted yet
  • the held-claim park test starts its reader right before the Commit
  • the pointer-licence test judges the typed hint as of the key, not as of "now"
  • the "no bus record reaches a pty" baseline waits for the shell's first prompt
  • handoff: v0.102.0's producer fixtures, so the 0.103 cut's fixture gate passes
  • the silent launch fakes write one cell at start, so a stale program name gets re-read
  • every live test that calls aterm ctl waits out an instance that has not accepted yet
  • the tty-drain reap test repeats a starved take with a larger budget, as its neighbours do
  • handoff: the fixture generator is a _tests.rs module, under cfg(test) where it is mounted
  • the short-turn loop test starts its loop once the INSTANCE shows go taken, not once the worker has stamped drawing it

Docs

  • containment: claim "no mach service lookup", say it wherever --sandbox is described

Other

  • proxy: a forward reads the host's pid before it delivers the verb, so a quick hang-up still says "gone"
  • release: the cut writes and lands its own handoff fixtures; the generator is in the tree

Source release. SHA256SUMS is a per-file manifest of the released tree, with a detached Ed25519 signature (SHA256SUMS.sig) by a machine key named in the attached master-signed roster (aterm-machines.toml + .sig). Verification chain and key inventory: SIGNING.md in the publication engine; the roster pin is committed in aterm crates/aterm-update-core/src/pins.rs.