Releases: IvanWng97/pixtuoid
Releases · IvanWng97/pixtuoid
v0.10.0
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
v0.9.0
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 +
doctorversion 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
v0.8.0
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
v0.7.0
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
v0.6.1
v0.6.0
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
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
justas the single source of truth for checks (#83)
Ci
Polish
- warmer crash message + underlined bug-report URL (#52)
v0.4.1
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
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
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