Skip to content

Releases: IvanWng97/pixtuoid

v0.10.0

17 Jun 02:37
00e08fe

Choose a tag to compare

Bug Fixes

  • census #266 follow-ups — doctor/executor bugs, _pid test, Grid alias, disposition tooling (#337)
  • strip control chars from disposition-harvester output (#340)
  • correct Windows install/watch paths across all sources (#343)
  • normalize config-location env overrides — ~-expand vs trim per CLI (#344)

Documentation

  • second review-history census — PRs #262#328 (#336)
  • add Windows install-path fix highlight to 0.10.0 notes (#345)

v0.9.0

16 Jun 03:28
9838f71

Choose a tag to compare

Bug Fixes

  • sanitize headless SourceDeath output (R0614-50) (#300)
  • drift-watch flags permanent HTTP as breaking (+ selftest, un-blind opencode) (#301)
  • drift footer double-printed the ⚠ glyph (post-merge #308) (#310)
  • structural drift-line parser + banner-order-robust parse_version (#311)

Documentation

  • README features trim + showcase clip + drop retired "Molty" name (#320)
  • add the daemon/OpenClaw lane to the overview (#328)

Features

  • GitHub Copilot CLI source (cp·) — transcript-only (#292)
  • Copilot CLI drift-watch arm (#293) (#295)
  • ping-pong marquee for the selected popup row's long text (#296)
  • Cursor CLI source (cu·) — hook-only [DRAFT: gated on live capture #297] (#298)
  • structured decode-drift breadcrumbs + default-but-warn discipline (#303)
  • pixtuoid doctor — read-only source self-diagnosis (#304)
  • version-awareness — verified_version anchor + doctor version skew (#306)
  • live decode-drift footer nudge (throttled log-scan) (#308)
  • map PermissionRequest → Waiting (#312)
  • silent-dead install-schema check + unified per-source health board (#314)
  • doctor verdict-glyph + Sources-panel health flag + Connection→Sources rename (#315)
  • OpenClaw source (ok·) — wandering gateway mascot "Molty" (#316)
  • SEO pass — sitemap, JSON-LD, self-hosted fonts (tighter CSP) (#326)
  • drop jsx-a11y → eslint 10 + Lighthouse CI (a11y/SEO/perf gate) (#327)

Miscellaneous

  • cargo update — 15 in-range patch/minor bumps (#322)
  • bump site deps + esbuild override → 0.28.1 (clears alerts) (#323)

Refactoring

  • pre-0.9.0 coupling/consolidation + naming disambiguation (core-focused) (#321)

Testing

  • byte-real Copilot permission.* + subagent.failed fixtures (#294) (#299)
  • cover summarize() Degraded arm + adjudicate #316 online review (#319)
  • de-flake exit_watch live tests (10s liveness bound + reap-before-assert) (#325)

v0.8.0

14 Jun 08:13
ce6cdf4

Choose a tag to compare

Bug Fixes

  • deterministic duplicate-id pid binding (CC registry + codex rollout) + test twin consolidation (#256)
  • unify hook-only tool-name caps + guard palette recolor-key uniqueness (#286)
  • render real glyphs in demo snapshots — legible popup text (#288)

Documentation

  • correct stale Codex hook-surface claims (verified vs upstream) (#278)

Features

  • --meeting staging + warmup — the MEETINGS channel goes live (#260)
  • gate sources on a persisted connection flag; drop install-hooks CLI (#284)
  • serializable SceneState + full-scene snapshot regression net (#287)
  • consolidate showcase to 7 channels + close-up pets/meeting demos (#290)

Refactoring

  • module geometry — jsonl/ split, cc_probe extraction, reducer correlation maps (#253)
  • split the reducer + watcher test monoliths into grouped binaries (#255)

Testing

  • harden source-layer registry seams (install bridge + driver wiring + badge distinctness) (#282)

Site

  • the page is the building — elevator floors, fleet/dashboard channels, real-PR ticker, docs shell (#258)
  • dashboard zoom variant + docs TOC scrollspy (#259)

v0.7.0

11 Jun 21:00
1b8e2ad

Choose a tag to compare

Bug Fixes

  • DOS 8.3 short-path for cmd-unsafe Windows hook paths (#201)
  • strip Windows ?\ verbatim prefix in normalize_path_key (#202)
  • derive agent identity from the session UUID so subagent→parent links survive a worktree cwd-split (#203)
  • register large transcripts on first-sight instead of waiting for their next write (#205)
  • review-followups — 12 confirmed findings from the whole-codebase review (#210)
  • mid-attach visibility — liveness from live signals (sessions-registry probe + hook proof-of-life), never from log content (#224)
  • hardening batch — shim contract, CLI validation, falsifiable CI gate, script robustness (#231)
  • config/install data-safety — never wipe a user config, preserve comments/perms, lock the whole install round (#229)
  • visual-fidelity cluster from the external review (#233)
  • core lifecycle + transport — Waiting-clobber gate, socket-steal probe, id consistency, umask removal, resurrect hygiene (#232)
  • liveness-ladder edge fixes — live-set purge on instant exit, pid-rebind migration, CODEX_HOME probe root, lagged-Task gate, cycle-safe scope walks (#234)
  • lock-file socket arbitration, Windows SocketBusy parity, falsifiable CONN_TIMEOUT test, empty-env guard (#235)
  • bounded router cache, char-width HUD centering, aisle-slot clamp, docs drift (#237)
  • env-contract + install + signal-teardown hardening (#236)
  • close the review residuals — parent_id cycle rejection at the link seam, pod-decor south-edge band clamp (#240)
  • gate child SessionStart on the SessionEnd tombstone — a reordered SubagentStop no longer mints a sweep-cleared phantom (#245)
  • warn-once + shape pin for the undocumented sessions/.json registry (#248)
  • child ledger — ended-as-child tombstone windows + revival re-link (#249)

Documentation

  • feature npm + single-source install methods + Windows-experimental matrix (#188)
  • CLAUDE.md audit — 6 verified accuracy fixes (no restructuring) (#193)

Features

  • agent dashboard (Tab) + raise MAX_FLOORS 5→10 (#199)
  • Windows support for Codex + Reasonix hooks + Antigravity watcher (#198)
  • per-CLI badge, activity-tinted names, wider popup, overflow cue (#207)
  • liveness ladder follow-ups — Codex open-FD probe, ongoing vouches, hook identity, oversized Task seeding (#227)
  • instant exit detection — negative vouch + kqueue/pidfd process-exit watch (closes #223) (#228)
  • decode CC SubagentStart/Stop — instant subagent register + clean exit for Workflow fleets (#243)
  • child-end un-claim side-channel — the missing carrier for in-flight multi-turn subagent revival (#250)

Miscellaneous

  • build/test hygiene — drop a stray test binary, dedupe rustix, refresh lockfile (#192)
  • honest MSRV (1.78→1.89) + drop fs4 for std-native locks (closes #194) (#208)
  • bump the actions group with 2 updates (#225)

Refactoring

  • unify docs+site image pipelines behind one driver + manifest (#190)
  • reorganize pixtuoid-core integration tests by capability/layer (15 → 8 binaries) (#191)
  • consolidate cross-platform logic — one hook-command seam + one home/config resolver (#206)
  • GlobalDeskIndex/FloorLocalDeskIndex — typed desk-index spaces (#219)

Ci

  • gate the npm generator + README drift on every PR (#189)
  • pipeline hygiene from the verified CI audit (#213)
  • run windows tests with nextest ci profile and upload JUnit to Codecov (#226)
  • per-job least-privilege + tag-on-main ancestry check; OIDC prep (closes #215) (#230)

Release

  • bump 0.7.0 + Transport #[non_exhaustive] (#218)
  • re-curate the 0.7.0 in-app notes for the full window (#251)

v0.6.1

08 Jun 14:32
de2937e

Choose a tag to compare

Bug Fixes

  • publish npm dirs via ./ so the launcher isn't read as a git shorthand (#186)

v0.6.0

08 Jun 13:57
0e16916

Choose a tag to compare

Bug Fixes

  • whole-site review — a11y, mobile nav, theme-sync, perf, SEO, CSP, CI (#122)
  • make the ghost-label counter contiguous (#95) (#130)
  • asymmetric hook-wins dedup — Task self-END can no longer be eaten by its dispatch record (#150) (#154)
  • grace-deferred b1 cascade + conditional stale-gate clear (#151, #152) (#156)
  • deflake shim latency tests under full-suite load (#161) (#169)
  • bound the Unix shim's connect phase with the Windows watchdog (#167) (#170)
  • empty RUST_LOG no longer silences all logging (#157 regression) (#172)

Documentation

  • fix two pre-existing factual drifts (docs-drift audit) (#175)
  • fold Codex web/tool-search visibility into 0.6.0 notes (#180)
  • manifest-driven supported-tools — README glimpse + site tool×OS matrix (#182)
  • curate release_notes("0.6.0") — add npm + Reasonix headliners (#185)

Features

  • one-command release bump + route all build/lint/format/test through just (#113)
  • Claude-style Astro landing page + Pages deploy (#112)
  • architecture/contributing pages, weather gallery, single-source README, Jersey 10 (#129)
  • Studio Wall showcase — unified demos + generated multi-floor media (#139)
  • cross-platform pre-work for Windows support (#128) (#153)
  • workspace compiles for x86_64-pc-windows-msvc — named-pipe hook transport (#128) (#155)
  • Windows CI runs the full suite — pipe twins + SDDL (#128) (#158)
  • surface source deaths + config warnings in default TUI mode (#157, #87) (#159)
  • one CC session = one sprite on Windows — normalize_path_key (#128) (#160)
  • Windows install + VT gate + release zips — first shippable Windows build (#128) (#163)
  • add automated entity and pet cropping to snapshot example (#149)
  • web/tool search now keeps the agent Active, not idle (#178)
  • hook-only source integration + real captured fixture (#181)
  • ship pixtuoid via npm i -g pixtuoid (#183)
  • honor CLAUDE_CONFIG_DIR for config and projects paths (#184)

Miscellaneous

  • bump astro 5.18.2 → 6.1.10 in /site (#117)
  • remove the desk-personalization feature (plant + photo frame) (#109)

Performance

  • configure lld linker for linux targets in CI (#147)

Refactoring

  • one SourceDescriptor registry row per CLI + capability-driven lifecycle policy (#136)
  • remove the dead PetKind::config_name (#99) (#132)
  • thread TargetName type-safely through InstallArgs (#96) (#133)
  • pin shim↔daemon socket-path parity + explicit ts narrowing (#93, #98) (#137)
  • resolve theme once to &'static Theme (#97) (#138)
  • isolate the untestable-headless residue (#103) (#141)
  • extract suppress_subagent_leak + track_active_tasks pre-passes (#90) (#142)
  • eliminate async-trait in favor of native async traits (#145)
  • remove the never-used Activity::Thinking variant (#94) (#131)
  • rename STALE_CODEX_IDLE_TIMEOUT → STALE_SHORT_IDLE_TIMEOUT (#164)
  • replace deprecated fs2 dependency with fs4 (#146)
  • 0.6.0 API finalization — mutation hardening + semver hygiene (#171)
  • remove the dead Activity enum from the event/state model (#173)
  • decompose render_to_rgb_buffer into 9 named enqueue phases (#174)

Testing

  • implement automated visual regression screenshot checking in CI (#148)
  • pin real-data edge cases mined from 2379 local sessions (#177)

Tooling

  • just fuzz — repeatable never-panic decoder harness over real sessions (#179)

v0.5.0

04 Jun 08:06
23871ca

Choose a tag to compare

Bug Fixes

  • eliminate walk teleport/replay regressions + headless render harness (#62)
  • freeze snap-back origin instead of re-reading per frame (#66)
  • cascade exit to subagents when a parent is stale-swept (#75)
  • footprint the meeting screen + bookshelf, tighten the sofa footprint (#84)
  • unify the first-sight gate — stop the rescan resurrecting ended/stale sessions (#85) (#104)

Documentation

  • tighten description + add etymology, audience hook, collapse migration (#51)
  • convention — track every deferred finding as a GitHub issue (#88)
  • config/contributing split + Copilot instructions + just-demo image pipeline; gate walkable overlay out of release (#108)

Features

  • centralize easing curves + animated transitions (#54)
  • ambient effects + weather-aware physics (#55)
  • friendlier install/uninstall flow + backup cleanup (#56)
  • UI polish — help overlay, tooltip framing, footer color, theme swatches, popup glow (#57)
  • real-physics walk pacing with distance-driven staggered arrivals (#61)
  • per-spot dwell + emergent meeting-room group-talk venue (#65)
  • multi-CLI hook install + Codex transcript source, with hooks/JSONL lifecycle correctness (#63)
  • physics-grounded weather × light audit — day+night, storm/lightning (#69)
  • 3-seat sofa (meeting + lounge) + seated-overlap z-sort fix (#70)
  • glass meeting-room partitions + connected wall joints (#72)
  • per-furniture approach sides — stand on the side nearest the desk (#73)
  • unify the furniture model — footprint SoT, approach sides, desk, occlusion (#74)
  • decode Codex subagent hooks + semantic subagent-dispatch detection (#79)
  • upstream wire-format drift watch + internal registered-vs-decoded test (#80)
  • office overhaul — unified furniture + approach/settle/reach routing, walkable/occlusion audit, per-theme appliances (#78)
  • user-defined pet names via [pet-names] config (#86)
  • fade the sleeping zzz as it rises (less distracting) (#106)
  • remove the distracting thinking-pose overhead dots (#107)

Miscellaneous

  • remove stale Formula/pixtuoid.rb from main repo (#53)
  • review follow-ups — CLAUDE.md decouple, bug fixes, test gaps (#67)
  • add PR + issue templates for external contributors (#71)

Refactoring

  • explicit scope layer + prompt subagent-completion (#76)
  • extract Layer-A FSM (state/fsm.rs) + harden the decode layer (#81)
  • param-unification, file reorg, type newtypes + correctness (#89)
  • whole-codebase DRY sweep — shared helpers, extractions, doc-drift fixes (#100)

Testing

  • lock in per-frame derive_with_routing idempotency (#68)
  • raise coverage 92→95% (raw) + apply whole-codebase CR findings (#101)
  • poll-backend watch in tests — ~6min → <1s watcher suite (#105)

Build

  • adopt just as the single source of truth for checks (#83)

Ci

  • skip Claude review workflows on fork PRs (#60)
  • harden release pipeline + bump to 0.5.0 (#102)

Polish

  • warmer crash message + underlined bug-report URL (#52)

v0.4.1

28 May 06:44
1af203b

Choose a tag to compare

Bug Fixes

  • cargo install must include pixtuoid-hook (#41)
  • compute floor capacity from actual terminal size (#42)
  • show pets/coffee during floor transition + footer N/total (#44)
  • six release-blockers for 0.4.1 (#46)

Features

  • add version update popup on first launch after upgrade (#43)
  • empty-floor lighting fade + 7x7 clock + README config split (#45)

Miscellaneous

  • remove legacy ascii-agents migration code (#40)

v0.4.0

27 May 21:58
94676c4

Choose a tag to compare

Bug Fixes

  • address code review — sub-scene construction, OOB guard, tests
  • store floor_idx on AgentSlot to prevent floor migration on resize
  • address review — advisory lock, invalid theme fallback, tests
  • guard half-block flush against terminal resize race
  • address PR #23 review — path traversal, symlink, init-pack guard
  • codebase audit — 16 findings from explorer+reviewer+architect
  • restore unconditional active_tasks insert + add orphan cleanup
  • use touch-based stampfile for pre-push skip logic
  • accumulate active_ms before Task clobbers state_started_at
  • accumulate active_ms on Active→Waiting transition
  • prevent crash on terminal resize (#28)
  • pathfind test now exercises goal-snap failure, not start-snap (#30)
  • full codebase review — 18 findings across security, architecture, rendering, state (#36)
  • add --no-strip to cargo-deb for cross-compiled ARM64 (#39)

Documentation

  • update CLAUDE.md for floor_idx and terminal shrink behavior
  • update CLAUDE.md and agent docs for new module structure
  • fix 5 stale file paths in CLAUDE.md Where to look section
  • add config persistence to CLAUDE.md and agent docs
  • note theme persistence in README
  • add Configuration section to README
  • reorder README — Quick Start first, merge Themes + Configuration
  • update CLAUDE.md for pack merge-from-default behavior
  • add code review + verify-premises rules to CLAUDE.md and agent

Features

  • per-floor desk capacity replaces single max_desks
  • persist theme to ~/.config/ascii-agents/config.toml
  • add max-desks as optional per-floor cap in config
  • animation registry + pack validation in core
  • add pack-dir to config with tilde expansion
  • validate-pack + init-pack CLI commands + skeleton pack
  • robot sprite pack + docs for custom pack framework
  • TV-head robot sprites v9 + pack merge-from-default
  • add pre-commit hook + align preflight with CI
  • add Claude Code GitHub Actions workflows
  • generic pet system with configurable cat + dog (#35)
  • rename project from ascii-agents to pixtuoid (v0.4.0) (#37)

Miscellaneous

  • add GitHub Sponsors funding, bump Formula to v0.3.0
  • remove 8 dead animations + 10 dead sprite files
  • add SECURITY.md, dependabot, CI permissions + faster preflight (#31)
  • Bump codecov/codecov-action in the actions group (#32)
  • upgrade ratatui 0.30, crossterm 0.29, notify 8, serde_json 1.0.150 (#34)
  • post-rename docs, formula, and CLAUDE.md updates (#38)

Refactoring

  • introduce PixelCtx struct, replace 15-param render_to_rgb_buffer
  • split layout, widgets, and background into sub-modules
  • remove max-desks from config, keep as hidden CLI flag
  • split pre-commit (fmt only) and pre-push (full preflight)

Testing

  • add max-desks cap flow tests for all 4 cases
  • add 11 missing test cases from coverage audit + fix boundary overflow (#29)

v0.3.0

26 May 07:06

Choose a tag to compare

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