This release adds 3 notable features for engineering teams evaluating rollout.
✓ No known CVEs patched in this version
Topics
+3 more
Summary
AI summaryBug fixes across core rendering and testing, refactoring of renderer architecture, and expanded tests for new features.
Changes in this release
| Type | Severity | Summary | CVE |
|---|---|---|---|
| Feature | Low |
Adds per‑floor navigation with PageUp/PageDown/↑↓/jk keys. Adds per‑floor navigation with PageUp/PageDown/↑↓/jk keys. Source: llm_adapter@2026-05-31 Confidence: high |
— |
| Feature | Low |
Adds slide transition compositing for multi‑floor navigation. Adds slide transition compositing for multi‑floor navigation. Source: llm_adapter@2026-05-31 Confidence: high |
— |
| Feature | Low |
Implements extensible NamingStrategy pattern and integrates Antigravity CLI source. Implements extensible NamingStrategy pattern and integrates Antigravity CLI source. Source: llm_adapter@2026-05-31 Confidence: high |
— |
| Feature | Low |
Adds source prefix to agent labels (cc· / ag·). Adds source prefix to agent labels (cc· / ag·). Source: llm_adapter@2026-05-31 Confidence: high |
— |
| Feature | Low |
Adds CatPetState data structures and plumbing (Phase 1). Adds CatPetState data structures and plumbing (Phase 1). Source: llm_adapter@2026-05-31 Confidence: high |
— |
| Feature | Low |
Adds chitchat module skeleton with unit tests (Phase 1). Adds chitchat module skeleton with unit tests (Phase 1). Source: llm_adapter@2026-05-31 Confidence: high |
— |
| Feature | Low |
Adds walking_coffee sprite for coffee‑run animation. Adds walking_coffee sprite for coffee‑run animation. Source: llm_adapter@2026-05-31 Confidence: high |
— |
| Feature | Low |
Adds antigravity ask_permission/ask_question flow that transitions to Waiting state. Adds antigravity ask_permission/ask_question flow that transitions to Waiting state. Source: granite4.1:30b@2026-05-31-audit Confidence: high |
— |
| Feature | Low |
Implements parent‑child agent cascade on SessionEnd. Implements parent‑child agent cascade on SessionEnd. Source: granite4.1:30b@2026-05-31-audit Confidence: high |
— |
| Feature | Low |
Introduces floor.rs with FloorCtx, FloorTransition helpers for multi‑floor support. Introduces floor.rs with FloorCtx, FloorTransition helpers for multi‑floor support. Source: granite4.1:30b@2026-05-31-audit Confidence: high |
— |
| Feature | Low |
Extends next_free_desk range to max_desks × MAX_FLOORS. Extends next_free_desk range to max_desks × MAX_FLOORS. Source: granite4.1:30b@2026-05-31-audit Confidence: high |
— |
| Feature | Low |
Adds per‑floor variants for cityview, cat decorations, lighting. Adds per‑floor variants for cityview, cat decorations, lighting. Source: granite4.1:30b@2026-05-31-audit Confidence: high |
— |
| Feature | Low |
Adds per‑floor layout variants adjusting room proportions, walls, decor. Adds per‑floor layout variants adjusting room proportions, walls, decor. Source: granite4.1:30b@2026-05-31-audit Confidence: high |
— |
| Feature | Low |
Introduces furniture tooltips, corridor appliances, and meeting screen rework. Introduces furniture tooltips, corridor appliances, and meeting screen rework. Source: granite4.1:30b@2026-05-31-audit Confidence: high |
— |
| Feature | Low |
Adds position freeze and heart particle effect for cat petting (Phase 2). Adds position freeze and heart particle effect for cat petting (Phase 2). Source: granite4.1:30b@2026-05-31-audit Confidence: high |
— |
| Feature | Low |
Implements hit_test_cat with sprite‑aware bounding boxes (Phase 3). Implements hit_test_cat with sprite‑aware bounding boxes (Phase 3). Source: granite4.1:30b@2026-05-31-audit Confidence: high |
— |
| Feature | Low |
Adds state‑dependent cat tooltip (Phase 4). Adds state‑dependent cat tooltip (Phase 4). Source: granite4.1:30b@2026-05-31-audit Confidence: high |
— |
| Feature | Low |
Wires click handler to trigger cat petting (Phase 5). Wires click handler to trigger cat petting (Phase 5). Source: granite4.1:30b@2026-05-31-audit Confidence: high |
— |
| Feature | Low |
Integrates chitchat detection into pixel_painter pipeline (Phase 2). Integrates chitchat detection into pixel_painter pipeline (Phase 2). Source: granite4.1:30b@2026-05-31-audit Confidence: high |
— |
| Feature | Low |
Adds chitchat bubble widget and wires it into draw_scene (Phase 3). Adds chitchat bubble widget and wires it into draw_scene (Phase 3). Source: granite4.1:30b@2026-05-31-audit Confidence: high |
— |
| Feature | Low |
Polishes chitchat with 24‑line limit, widget tests, clippy+fmt clean (Phase 4). Polishes chitchat with 24‑line limit, widget tests, clippy+fmt clean (Phase 4). Source: granite4.1:30b@2026-05-31-audit Confidence: high |
— |
| Feature | Low |
Implements event‑driven desk coffee cup from pantry walk‑back and on exit. Implements event‑driven desk coffee cup from pantry walk‑back and on exit. Source: granite4.1:30b@2026-05-31-audit Confidence: high |
— |
| Feature | Low |
Auto‑computes max_desks from layout capacity and removes +/- key bindings. Auto‑computes max_desks from layout capacity and removes +/- key bindings. Source: granite4.1:30b@2026-05-31-audit Confidence: high |
— |
| Bugfix | Medium |
Fixes crash on startup with source‑aware fallback labels and ended sessions. Fixes crash on startup with source‑aware fallback labels and ended sessions. Source: llm_adapter@2026-05-31 Confidence: high |
— |
| Bugfix | Medium |
Replaces expect/unwrap with proper error handling in production code. Replaces expect/unwrap with proper error handling in production code. Source: llm_adapter@2026-05-31 Confidence: high |
— |
| Bugfix | Medium |
Removes redundant .into_iter() flagged by CI clippy. Removes redundant .into_iter() flagged by CI clippy. Source: llm_adapter@2026-05-31 Confidence: high |
— |
| Refactor | Low |
Refactors TuiRenderer to use per‑floor contexts and adds floor_info to draw_scene. Refactors TuiRenderer to use per‑floor contexts and adds floor_info to draw_scene. Source: granite4.1:30b@2026-05-31-audit Confidence: high |
— |
| Refactor | Low |
Decouples per‑source decoders via function‑pointer injection. Decouples per‑source decoders via function‑pointer injection. Source: granite4.1:30b@2026-05-31-audit Confidence: high |
— |
| Refactor | Low |
Removes overflow sofa/floor‑seat rendering and dead floor_seats code. Removes overflow sofa/floor‑seat rendering and dead floor_seats code. Source: granite4.1:30b@2026-05-31-audit Confidence: high |
— |
Full changelog
Bug Fixes
- source-aware fallback labels, skip ended sessions on startup
- antigravity label falls back to "ag" instead of UUID directory name
- unused path param in derive_ag_label
- vertical slide transition with floor divider
- vertical direction matches real building, ease-out animation
- crash fix, scrolling text overlays, baseboard removal
- hide text during transition, clean up dead code warnings
- address all code review findings for multi-floor PR
- FloorMeta threaded correctly through all render paths
- final review — compute_with_seed in draw_scene, remove dead FloorVariant
- wall footprint stays 1px in walkable mask (top-down projection)
- address code review findings
- return Layout from draw_scene, fix hit-test on non-F1 floors
- replace binary PNG snapshots with pixel-hash golden tests
- remove redundant .into_iter() flagged by CI clippy
- double-%% in tooltip, dead _layout param, stale docs
- sync max_desks from shared atomic in reducer_task
- align Antigravity ActivityEnd tool_use_id with ActivityStart format
- add cycle guard to BFS cascade in SessionEnd handler
- replace expect/unwrap with proper error handling in production code
- guard pending_idle_at semantics in ActivityEnd handler
- replace string doubling with modular indexing in TickerQueue::visible
- address pet-the-cat code review findings
- use pre-breath anchor for chitchat bubbles
- register walking_coffee sprites in embedded pack loader
- improve coffee cup sprite + simplify animation selection
- align walking coffee cup color with desk cup
- preserve desk coffee across Active/Waiting states
- use last_idle_at for correct coffee persistence across states
- rename vacuous tests, remove dead variables
- use fetch_max for monotone capacity, fix stale comments + docs
- compute max_desks as min capacity across all floor variants
- pre-release batch — simplify coffee to persistent HashSet, remove thiserror, fix reducer + max_desks + test deadlines
- revert to fetch_max for max_desks, fix stale CLAUDE.md reference
Documentation
- add Antigravity to supported tools, update architecture docs
- multi-floor office design spec
- multi-floor office — README, CLAUDE.md, keyboard hints
- update CLAUDE.md for code reorganization
- fix tooltip format in CLAUDE.md (---% → --% active)
- add Pet the Cat design spec
- add Pantry Chitchat design spec
- update README features table for pet-cat, coffee run, chitchat
Features
- implement extensible NamingStrategy pattern and integrate Antigravity CLI source
- add source prefix to agent labels (cc· / ag·)
- antigravity ask_permission/ask_question → Waiting state
- parent-child agent cascade on SessionEnd
- add floor.rs with FloorCtx, FloorTransition, and partitioning helpers
- extend next_free_desk range to max_desks * MAX_FLOORS
- refactor TuiRenderer to per-floor contexts + add floor_info to draw_scene
- PageUp/PageDown/↑↓/jk floor navigation
- slide transition compositing for multi-floor navigation
- per-floor variants — cityview, cat, decorations, lighting
- per-floor layout variants — room proportions, walls, decor
- furniture tooltips, corridor appliances, floor layout rework, meeting screen
- add CatPetState data structures and plumbing (Phase 1)
- add position freeze and heart particle effect (Phase 2)
- add hit_test_cat with sprite-aware bounding boxes (Phase 3)
- add state-dependent cat tooltip (Phase 4)
- wire click handler to trigger cat petting (Phase 5)
- add chitchat module skeleton with unit tests (Phase 1)
- wire chitchat detection into pixel_painter pipeline (Phase 2)
- add chitchat bubble widget and wire into draw_scene (Phase 3)
- polish chitchat — 24 lines, widget test, clippy+fmt clean (Phase 4)
- add carrying_coffee to Pose::Walking for coffee-run animation
- add walking_coffee sprite for coffee-run animation
- event-driven desk coffee cup from pantry walk-back
- event-driven desk cup + carry coffee on exit
- auto-compute max_desks from layout capacity, remove +/- key bindings
- add ascii-agents-dev custom agent, remove redundant assets symlink
Miscellaneous
- add homebrew-core formula for future submission
- bump version to 0.3.0
Refactoring
- decouple per-source decoders via fn pointer injection
- address all code review findings
- remove overflow sofa/floor-seat rendering
- remove dead floor_seats code from layout
- introduce DrawCtx struct for draw_scene
- split renderer.rs into renderer + widgets + hit_test
- extract pixel_painter/furniture.rs + move anchors
- decompose layout::compute into private helpers
- cache Layout on TuiRenderer, pass &Layout to hit-tests
- move paint_elevator_indicator to widgets.rs
Styling
- apply rustfmt
- apply rustfmt to format.rs
- apply rustfmt to coffee-run changes
Testing
- add coverage for cascade, unknown_cwd, session_ended, parent detection
- verify walkable mask connectivity across floor seeds
- add hit_test_furniture coverage
- add insta snapshot tests + pixel regression tests
- add golden image regression + widget cell assertion tests
- add layout geometry + walkable mask golden snapshots
- add coverage for parent-child cascade, hook-wins dedup, and sweep_stale
- add coffee lifecycle tests + update CLAUDE.md coffee docs
Beautify
- wall partition depth + corridor diamond carpet pattern
- room fill items + walkable rule in CLAUDE.md
- coat rack, doormat, notice board, trash bin, water cooler
Plan
- multi-floor office implementation — 7 tasks, TDD-shaped
Tune
- increase wander frequency for more social interaction
Weekly OSS security release digest.
The CVE patches and breaking changes that affected production tools this week. One email, every Sunday.
No spam, unsubscribe anytime.
Share this release
About IvanWng97/ascii-agents
All releases →Related context
Related tools
Earlier breaking changes
- v0.4.0 Rename project from ascii-agents to pixtuoid (v0.4.0).
Beta — feedback welcome: [email protected]