Release v1.1.0: open-source assets, CI, dual-publish, Agent tool fix#122
Merged
florintimbuc merged 6 commits intomainfrom Mar 14, 2026
Merged
Release v1.1.0: open-source assets, CI, dual-publish, Agent tool fix#122florintimbuc merged 6 commits intomainfrom
florintimbuc merged 6 commits intomainfrom
Conversation
…ng (#117) * feat: migrate to open-source assets with modular manifest-based loading The primary objective of this change is to replace all previously privately-licensed assets with fully open-source ones, make the asset importing process easier, and make the entire asset system more modular and extensible. ## Asset system overhaul - Replace monolithic `furniture-catalog.json` with per-folder `manifest.json` files (one per furniture item in `assets/furniture/`) - Each manifest declares its own rotation groups, state groups, and animation groups via a recursive tree structure that gets flattened at load time, eliminating the need for a separate centralized catalog - Add support for new manifest concepts: `mirrorSide` (auto-generates mirrored "left" variant from a "side" sprite), `rotationScheme` (2-way vs 4-way rotation), `animationGroup` with frame indexing (multi-frame animated sprites for on-state electronics) - Split `floors.png` strip into individual `assets/floors/floor_N.png` files and `walls.png` into `assets/walls/wall_N.png` files, making it trivial to add/remove/reorder tile patterns without regenerating combined spritesheets - Add wall set picker in the editor toolbar so users can choose between multiple wall tile styles - Lower `PNG_ALPHA_THRESHOLD` from 128 to 2 and preserve semi-transparent alpha in sprite data (`#RRGGBBAA` format) for higher-fidelity assets - Add `VOID` tile type as 255 (was 8) with migration for old layouts - Add 2 new floor tile slots (FLOOR_8, FLOOR_9) for future patterns ## Open-source asset bundle - Include 25+ original furniture pieces as individual PNGs with manifests: desks, chairs (wooden, cushioned), sofas, tables, PCs with 3-frame screen animation, bookshelves, plants, paintings, whiteboard, clock, coffee, bins, and more - Include 9 floor tile patterns and 1 wall tile set - Add new default layout (`default-layout-1.json`) using only the new open-source assets - Remove `.gitignore` rules that excluded asset files from version control — all assets are now open-source and tracked ## Layout migration & versioning - Add `layoutRevision` field to layouts; bundled defaults are versioned (e.g. `default-layout-1.json` has revision 1) - On startup, if the user's saved layout has an older revision than the bundled default, it is automatically reset to the new default - Show a one-time migration notice modal explaining the layout reset and the move to open-source assets - Add `LEGACY_TYPE_MAP` to migrate old furniture type strings (`desk`, `chair`, `bookshelf`, etc.) to new manifest IDs (`DESK_FRONT`, `WOODEN_CHAIR_FRONT`, `BOOKSHELF`, etc.) - Migrate old `VOID=8` tiles to `VOID=255` - "Export Default Layout" command now auto-increments revision numbers ## Code cleanup - Remove ~1000 lines of hardcoded pixel-art sprite data from `spriteData.ts` (DESK_SQUARE_SPRITE, PLANT_SPRITE, etc.) — all sprites now loaded from PNGs at runtime - Remove `FurnitureType` enum and `FURNITURE_CATALOG` constant — the catalog is now fully dynamic from manifests - Remove old 7-stage asset pipeline scripts (`0-import-tileset.ts` through `5-export-assets.ts`, `export-characters.ts`, `generate-walls.js`) and their working data - Consolidate asset-manager.html with expanded functionality - Simplify `createDefaultLayout()` to a minimal fallback (no furniture) since the real default comes from `default-layout.json` - Move font file from `src/fonts/` to `public/fonts/` and update CSS to use absolute path ## Renderer updates - Add horizontal flip support for mirrored furniture instances (`FurnitureInstance.mirrored` flag, canvas `scale(-1, 1)`) - Add furniture animation timer in `OfficeState` that cycles through animation group frames at 0.2s intervals for active electronics - Colorize module now preserves alpha channel through both Colorize and Adjust modes - Wall tile rendering supports multiple wall sets with `setIndex` ## README - Update Office Assets section to reflect that all assets are now fully open-source and included in the repository - Document the modular manifest-based asset structure Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * fix: address PR #117 review findings - Fix migration modal dismiss bug (derived state pattern) - Guard VOID migration to preserve FLOOR_8 tiles on new layouts - Extract bubble sprites to JSON files for readability - Reformat default-layout-1.json for readability * fix: fix overlay z-ordering, hide UI in debug mode, and update assets - Lower ToolOverlay z-index below settings modal so status labels don't cover the modal - Hide ToolOverlay and ZoomControls in debug mode - Position rotate hint below EditActionBar instead of shifting sideways - Remove NEW_ASSET template, add LARGE_PLANT asset Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * fix: tweak migration modal copy ("meant" → "means") Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com> Co-authored-by: Florin Timbuc <florin@sowild.design> Co-authored-by: Pablo De Lucca <pablo@Pablos-Mac-mini.local>
* ci: add CI workflow, dependabot, and ESLint contributor rules * Update CONTRIBUTING * ci: add CI workflow, dependabot, and ESLint contributor rules * Update CONTRIBUTING
Claude Code renamed the sub-agent tool from 'Task' to 'Agent'. Add 'Agent' alongside 'Task' in permission exemption, status formatting, tool completion, and progress handling so sub-agents work with current Claude Code versions. Based on drewf/pixel-agents#76. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* Add Open VSX publishing workflow. Automate extension releases to both VS Code Marketplace and Open VSX, and document the required repository secrets for maintainers. Made-with: Cursor * Apply suggestions from code review Co-authored-by: Florin Timbuc <florintimbuc@gmail.com> * Harden publish workflow: explicit dry-run, early validation, caching, VSIX upload - Add cache-dependency-path for root + webview lockfiles - Add timeout-minutes: 15 to prevent hung jobs - Add workflow_dispatch dry_run input for safe testing - Add concurrency control to prevent duplicate publishes - Add early type-check and lint step (fail fast before publish) - Upload VSIX to GitHub Release as downloadable artifact --------- Co-authored-by: Florin Timbuc <florintimbuc@gmail.com> Co-authored-by: Florin Timbuc <florin@sowild.design>
Broaden compatibility with older VS Code versions and forks (Cursor, Windsurf, VSCodium, etc.). Add changelog entry for v1.1.0 release. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
florintimbuc
approved these changes
Mar 14, 2026
This was referenced Mar 15, 2026
Closed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
This PR merges the
devbranch intomain, bringing 5 commits that ship open-source assets, CI/CD infrastructure, and compatibility fixes.Changes
1. feat: migrate to open-source assets with modular manifest-based loading (#117)
The largest change. Replaces all previously privately-licensed assets with fully open-source ones and overhauls the asset system:
furniture-catalog.jsonwith per-foldermanifest.jsonfiles (one per furniture item)floors.png→ individualfloor_N.pngfiles;walls.png→wall_N.pngfilesdefault-layout-1.json) using only open-source assetslayoutRevisionfield auto-resets old layouts to new default, with one-time migration notice modalFurnitureTypeenum2. ci: add CI workflow, dependabot, and ESLint contributor rules (#116)
.github/workflows/ci.yml) — lint + build on push/PR to main.github/dependabot.yml)eslint-rules/pixel-agents-rules.mjs)CONTRIBUTING.md3. fix: recognize 'Agent' tool name for sub-agent visualization
Claude Code renamed the sub-agent tool from
TasktoAgent. Adds'Agent'alongside'Task'in:Based on drewf/pixel-agents#76.
4. Add dual-publish workflow for VS Code Marketplace + Open VSX (#44)
.github/workflows/publish-extension.yml— automates releases to both VS Code Marketplace and Open VSX5. chore: lower VS Code requirement to ^1.105.0 and add v1.1.0 changelog
CHANGELOG.mdentry for v1.1.0Open PRs closed by these changes
Fully addressed
49b8cde— adds'Agent'to all the same places.Partially addressed
49b8cde. The external session support portion is not included — PR can be narrowed to just that feature.Test plan
npm install && cd webview-ui && npm install && cd .. && npm run buildAgenttool are recognized and visualizedStats
134 files changed, 4,846 insertions, 21,829 deletions (net -16,983 lines — mostly removed hardcoded sprites and old pipeline scripts)