Releases: bomkino/deck-workbench
Release list
Deck Workbench v0.4.0
v0.4.0 — project colours across Workbench and InDesign
Choose a neutral base and independent Primary, Secondary, Third, Fourth and Mono families in Type & colours → Colours. The bundled library contains 31 Radix-based families and five bases, with dark/light text, solid-fill, foreground, soft-fill and line roles. Colour previews show contrast against the selected base. Custom hex editing remains available. Apply copies exact colour values into the chosen slides; later library updates do not recolour saved projects.
Production handoffs carry each slide's resolved palette and Head/Sub/Body colour roles. The InDesign helper applies those values to the generated project while preserving paragraph-style identities and mixed dark/light pages. Old exports without palette data retain starter colours.
Deck Colour Controls.jsx provides the corresponding project picker in InDesign, with paired previews, named colour styles and one Undo. Both starter sizes receive the additional colour roles without changing their existing artwork, text, fonts or initial colours. Figma Deck Colours is a shared-account Tool with a labelled swatch grid and an optional separate PD House setup. The kit includes its guide and the three CC0 house fonts; existing importer and Scramble tools are unchanged.
The master ramps are pinned to Radix Colors 3.0.0, with MIT attribution. Supplied opaque text/foreground pairs meet 4.5:1 and meaningful line pairs meet 3:1 on the documented surfaces. Custom colours, imagery, transparency and gradients require their own contrast check. Existing project fonts and document schemas are unchanged. The supplied PD House fonts are only needed for Figma’s optional house styles.
An existing Adobe completion/cancellation race is also fixed: successful requests no longer write a cancellation marker when their result stream closes. Actual caller cancellation still returns control promptly.
v0.3.0 — portable starter kit and automatic InDesign
Build InDesign automatically is an optional handoff component. It includes production writing and numbered PSDs, then opens InDesign to create InDesign/Deck.indd with the correct Head/Sub/Body roles and two PSD placements per slide. Adobe runs after the handoff reaches its final path. Failure or cancellation preserves the completed handoff and reports the incomplete Adobe component.
Production handoffs include the complete starter kit: both canvas sizes, editable InDesign starters and layout kits, flattened PDF previews, PSD templates, size controls, role-based text scrambling, Build/Refresh helpers and the Photoshop-to-Figma PNG exporter. Settings → Adobe setup & starter kit connects the installed Adobe apps and can save the kit without a deck. No Adobe application is required for PSD creation or the Figma route.
Add Blank Slide creates a movable, undoable slide with all three writing roles deliberately empty. Solid background switches to a text-only layout while retaining chosen images and the independent shortlist; switching off uses Text left and restores the primary image. Hidden assignments remain available in Approved Media.
PSDs now carry a hidden GUIDE - Text area (hide for export) rectangle inside Shared Artwork: cyan, 50% opacity, following the actual text region. Turn it on while expanding artwork. The bundled PNG exporter cleans guides from a temporary copy, including saved Smart Object composites; original PSDs remain unchanged. Linked layered Smart Objects and unsupported nesting are reported instead of modified.
The starter retains its existing font/style references. The app font pin and document schema are unchanged. Automatic builds require InDesign, installed starter fonts and macOS Automation permission; typography and final layout still need project review. Workbench's imported index is a snapshot, not an automatically regenerated InDesign Table of Contents.
v0.2.2 — studio type and editable PSD framing
The interface uses bundled pitch.dog fonts, including the corrected welcome headline. Interface size now scales headings, captions and dialogs consistently; large-text settings, slide labels and colour controls remain readable in compact windows.
In Type & colours…, choose each font yourself or start with New York + SF Pro, pitch.dog Head + Body, or SF Pro throughout. Head, Sub and Body show their current size step beside Smaller/Larger. Font-pair changes keep the chosen sizes, spacing, alignment and colours. Existing deck fonts change only when Apply is used.
PSD export defaults to Match Workbench · editable masks. Full images · no frame crop is optional: it disables the same masks while retaining image position, scale and complete embedded originals. Open the shared artwork in Photoshop and enable or disable a layer mask later; this remains reversible after saving and reopening. Both exports keep the existing shared Background/Character structure. PDFs continue to show the Workbench framing.
Verification includes the packaged native journey, actual app screenshots at 100% and 175%, bundled-font resolution, size controls and five PSD cases across both supported widths. Photoshop verified mask enablement, save/reopen and recovery of the full image without Undo. No document schema or Adobe-script changes; the existing type-system binary pin is retained. Large real-photo libraries and exhaustive accessibility remain outside these synthetic checks.
v0.2.1 — clearer optional exports
PSD export now visibly includes its required workbench.md companion, even after writing export was previously turned off. The handoff works with either Figma or InDesign; neither application is required during export. Unsupported canvases disable the PSD option before export while keeping writing, PDFs and media available. The saved PSD preference remains available when returning to a supported canvas.
Production writing is checked against the actual importer before delivery. This catches combined fields that exceed intake limits even when their individual source fields fit; Copy.md remains an independent, complete writing output.
The native package journey covers writing-only export with PSDs off and combined copy at and beyond the import limit, alongside the existing save, Undo, layout, media and PSD checks. No document schema, font, artwork or Adobe-script changes.
v0.2.0 — starter layouts and production handoff
Starter layouts, editable contents and moodboards, and a production handoff to Photoshop and InDesign.
Compose and arrange
- Add Contents / Index inserts an automatic list of included slide names and page references. Two balanced columns use dotted leaders and wrap long titles; overflow remains reported. Selected exports recalculate the index.
- Add Moodboard… creates an editable grid from up to 12 chosen images, or six empty slots. Duplicate it, change its slot count or use Move to Position… to place it anywhere in the deck. Displaced images remain shortlisted; originals are untouched.
- The numbered 24-column/12-row grid uses exact starter dimensions at 2576 × 1080 and 1920 × 1080. Type & colours… adds installed Head/Sub/Body font choices, paired size/leading steps, alignment and colour roles. Type/palette settings can apply to one slide or the deck; Dark/Light remains per slide. The existing FontBlind v13.0.0 binary pin and native-control typography are retained.
- Canvas gestures ignore click jitter; clicks away from gradient controls select the clicked object. Crop dragging responds promptly when reversed at a boundary. Completed drags remain one Undo step; Escape cancels. The app icon now depicts editable layered slides on a workbench.
Production handoff
Export adds Production/workbench.md, workbench-production.json and optional numbered PSD/Slide 01.psd files. Writing preserves copy states and records how original fields map into Headline/Subheadline/Body. The manifest binds slide identity/order, copy, warnings and PSD paths/hashes. Copy.md, PDFs and original-media outputs remain available.
Each RGB/8-bit sRGB PSD has 00.Background and 01.Character, sharing one embedded artwork source with the chosen image frames, fit, crop masks and guides. Both roles initially contain the complete artwork. The artist creates the cut-out in Photoshop before the separate artwork-only PNG role export. Prototype text, background colours and gradients are not rendered into these PSDs; writing and final composition continue in the destination app. PSD creation requires neither Photoshop, InDesign nor a browser/Node runtime. Native Photoshop checks covered shared-source edits, save/reopen, JPEG orientation and transparent role export. InDesign text import, initial PSD placement and later link refresh remain separate local-script steps.
PSD generation is serial and limited to 1920 × 1080 or 2576 × 1080, 12 placements, 128 MiB combined source bytes and a 768 MiB estimated per-slide working budget. Still-image conversions and source problems are reported. Production writing/manifest/PSDs form one component; failure does not erase separately completed handoff components. See Known boundaries.
Copy replacement leaves generated Contents automatic while updating mapped ordinary and moodboard writing. Existing artwork, notes, field identities and layout survive the replacement and Undo.
Compatibility and verification
New packages use schema 3. Opening an older package does not itself upgrade it. Before saving starter features or explicit copy states, Workbench verifies internal pre-upgrade recovery data, then raises the reader guard. Older apps reject the upgraded copy; Undo does not downgrade it. Keep an untouched duplicate for old-app use.
Focused checks cover the new state, grid/type, production-copy, schema/recovery and PSD structure contracts. Only an actual same-SHA receipt establishes which checks passed for a package. N...
Deck Workbench v0.3.0 — Portable starters and InDesign export
v0.3.0 — portable starter kit and automatic InDesign
Build InDesign automatically is an optional handoff component. It includes production writing and numbered PSDs, then opens InDesign to create InDesign/Deck.indd with the correct Head/Sub/Body roles and two PSD placements per slide. Adobe runs after the handoff reaches its final path. Failure or cancellation preserves the completed handoff and reports the incomplete Adobe component.
Production handoffs include the complete starter kit: both canvas sizes, editable InDesign starters and layout kits, flattened PDF previews, PSD templates, size controls, role-based text scrambling, Build/Refresh helpers and the Photoshop-to-Figma PNG exporter. Settings → Adobe setup & starter kit connects the installed Adobe apps and can save the kit without a deck. No Adobe application is required for PSD creation or the Figma route.
Add Blank Slide creates a movable, undoable slide with all three writing roles deliberately empty. Solid background switches to a text-only layout while retaining chosen images and the independent shortlist; switching off uses Text left and restores the primary image. Hidden assignments remain available in Approved Media.
PSDs now carry a hidden GUIDE - Text area (hide for export) rectangle inside Shared Artwork: cyan, 50% opacity, following the actual text region. Turn it on while expanding artwork. The bundled PNG exporter cleans guides from a temporary copy, including saved Smart Object composites; original PSDs remain unchanged. Linked layered Smart Objects and unsupported nesting are reported instead of modified.
The starter retains its existing font/style references. The app font pin and document schema are unchanged. Automatic builds require InDesign, installed starter fonts and macOS Automation permission; typography and final layout still need project review. Workbench's imported index is a snapshot, not an automatically regenerated InDesign Table of Contents.
v0.2.2 — studio type and editable PSD framing
The interface uses bundled pitch.dog fonts, including the corrected welcome headline. Interface size now scales headings, captions and dialogs consistently; large-text settings, slide labels and colour controls remain readable in compact windows.
In Type & colours…, choose each font yourself or start with New York + SF Pro, pitch.dog Head + Body, or SF Pro throughout. Head, Sub and Body show their current size step beside Smaller/Larger. Font-pair changes keep the chosen sizes, spacing, alignment and colours. Existing deck fonts change only when Apply is used.
PSD export defaults to Match Workbench · editable masks. Full images · no frame crop is optional: it disables the same masks while retaining image position, scale and complete embedded originals. Open the shared artwork in Photoshop and enable or disable a layer mask later; this remains reversible after saving and reopening. Both exports keep the existing shared Background/Character structure. PDFs continue to show the Workbench framing.
Verification includes the packaged native journey, actual app screenshots at 100% and 175%, bundled-font resolution, size controls and five PSD cases across both supported widths. Photoshop verified mask enablement, save/reopen and recovery of the full image without Undo. No document schema or Adobe-script changes; the existing type-system binary pin is retained. Large real-photo libraries and exhaustive accessibility remain outside these synthetic checks.
v0.2.1 — clearer optional exports
PSD export now visibly includes its required workbench.md companion, even after writing export was previously turned off. The handoff works with either Figma or InDesign; neither application is required during export. Unsupported canvases disable the PSD option before export while keeping writing, PDFs and media available. The saved PSD preference remains available when returning to a supported canvas.
Production writing is checked against the actual importer before delivery. This catches combined fields that exceed intake limits even when their individual source fields fit; Copy.md remains an independent, complete writing output.
The native package journey covers writing-only export with PSDs off and combined copy at and beyond the import limit, alongside the existing save, Undo, layout, media and PSD checks. No document schema, font, artwork or Adobe-script changes.
v0.2.0 — starter layouts and production handoff
Starter layouts, editable contents and moodboards, and a production handoff to Photoshop and InDesign.
Compose and arrange
- Add Contents / Index inserts an automatic list of included slide names and page references. Two balanced columns use dotted leaders and wrap long titles; overflow remains reported. Selected exports recalculate the index.
- Add Moodboard… creates an editable grid from up to 12 chosen images, or six empty slots. Duplicate it, change its slot count or use Move to Position… to place it anywhere in the deck. Displaced images remain shortlisted; originals are untouched.
- The numbered 24-column/12-row grid uses exact starter dimensions at 2576 × 1080 and 1920 × 1080. Type & colours… adds installed Head/Sub/Body font choices, paired size/leading steps, alignment and colour roles. Type/palette settings can apply to one slide or the deck; Dark/Light remains per slide. The existing FontBlind v13.0.0 binary pin and native-control typography are retained.
- Canvas gestures ignore click jitter; clicks away from gradient controls select the clicked object. Crop dragging responds promptly when reversed at a boundary. Completed drags remain one Undo step; Escape cancels. The app icon now depicts editable layered slides on a workbench.
Production handoff
Export adds Production/workbench.md, workbench-production.json and optional numbered PSD/Slide 01.psd files. Writing preserves copy states and records how original fields map into Headline/Subheadline/Body. The manifest binds slide identity/order, copy, warnings and PSD paths/hashes. Copy.md, PDFs and original-media outputs remain available.
Each RGB/8-bit sRGB PSD has 00.Background and 01.Character, sharing one embedded artwork source with the chosen image frames, fit, crop masks and guides. Both roles initially contain the complete artwork. The artist creates the cut-out in Photoshop before the separate artwork-only PNG role export. Prototype text, background colours and gradients are not rendered into these PSDs; writing and final composition continue in the destination app. PSD creation requires neither Photoshop, InDesign nor a browser/Node runtime. Native Photoshop checks covered shared-source edits, save/reopen, JPEG orientation and transparent role export. InDesign text import, initial PSD placement and later link refresh remain separate local-script steps.
PSD generation is serial and limited to 1920 × 1080 or 2576 × 1080, 12 placements, 128 MiB combined source bytes and a 768 MiB estimated per-slide working budget. Still-image conversions and source problems are reported. Production writing/manifest/PSDs form one component; failure does not erase separately completed handoff components. See Known boundaries.
Copy replacement leaves generated Contents automatic while updating mapped ordinary and moodboard writing. Existing artwork, notes, field identities and layout survive the replacement and Undo.
Compatibility and verification
New packages use schema 3. Opening an older package does not itself upgrade it. Before saving starter features or explicit copy states, Workbench verifies internal pre-upgrade recovery data, then raises the reader guard. Older apps reject the upgraded copy; Undo does not downgrade it. Keep an untouched duplicate for old-app use.
Focused checks cover the new state, grid/type, production-copy, schema/recovery and PSD structure contracts. Only an actual same-SHA receipt establishes which checks passed for a package. Native Photoshop inspection complements encoder validation. Large-library performance, exhaustive accessibility and the separate InDesign helper are outside the packaged app check. Published packages, installation and a finished design remain separate outcomes.
v0.1.3 — native workflow polish (historical)
A focused finish to the existing native app: safer transitions, a usable deck-review mode, crop zoom, and less repeated media-list work. The slide management and layout features from v0.1.2 remain in place.
Working flow and visuals
Review deck uses the full working area and hides editing panels. Arrow keys, Space/Shift-Space and Home/End navigate without modifying the deck; Escape returns to editing. The current slide number and title remain visible. Crop zoom (100–400%) and Centre crop retain image framing as separate undoable adjustments. Optional copy fields can be removed in the draft without changing saved copy until confirmation. Layout/curation controls reflow when horizontal space is tight; export options scroll above fixed action buttons and show the actual included slide count.
Search exits preview/comparison. Candidate preview returns to a visible focus; comparison does not leak candidates into a different slide. Image-only selection no longer resets to an invisible text target. Slide notes retain their bound destination when the selected slide changes.
Saving and document lifecycle
Create/open/close/retry are serialized across suspension points. Late chooser callbacks and Save requests retain document identity. Replacement-copy imports keep the preview and error until acknowledged, with expected-copy conflict checks. Export reserves its operation before flushing, prevents duplicate destination requests and ignores obsolete progress callbacks.
A failure after durable journal append fences the session for recovery/replay instead of permitting new commands from stale in-memory s...
Deck Workbench v0.2.2 — Studio type and editable PSD framing
v0.2.2 — studio type and editable PSD framing
The interface uses bundled pitch.dog fonts, including the corrected welcome headline. Interface size now scales headings, captions and dialogs consistently; large-text settings, slide labels and colour controls remain readable in compact windows.
In Type & colours…, choose each font yourself or start with New York + SF Pro, pitch.dog Head + Body, or SF Pro throughout. Head, Sub and Body show their current size step beside Smaller/Larger. Font-pair changes keep the chosen sizes, spacing, alignment and colours. Existing deck fonts change only when Apply is used.
PSD export defaults to Match Workbench · editable masks. Full images · no frame crop is optional: it disables the same masks while retaining image position, scale and complete embedded originals. Open the shared artwork in Photoshop and enable or disable a layer mask later; this remains reversible after saving and reopening. Both exports keep the existing shared Background/Character structure. PDFs continue to show the Workbench framing.
Verification includes the packaged native journey, actual app screenshots at 100% and 175%, bundled-font resolution, size controls and five PSD cases across both supported widths. Photoshop verified mask enablement, save/reopen and recovery of the full image without Undo. No document schema or Adobe-script changes; the existing type-system binary pin is retained. Large real-photo libraries and exhaustive accessibility remain outside these synthetic checks.
v0.2.1 — clearer optional exports
PSD export now visibly includes its required workbench.md companion, even after writing export was previously turned off. The handoff works with either Figma or InDesign; neither application is required during export. Unsupported canvases disable the PSD option before export while keeping writing, PDFs and media available. The saved PSD preference remains available when returning to a supported canvas.
Production writing is checked against the actual importer before delivery. This catches combined fields that exceed intake limits even when their individual source fields fit; Copy.md remains an independent, complete writing output.
The native package journey covers writing-only export with PSDs off and combined copy at and beyond the import limit, alongside the existing save, Undo, layout, media and PSD checks. No document schema, font, artwork or Adobe-script changes.
v0.2.0 — starter layouts and production handoff
Starter layouts, editable contents and moodboards, and a production handoff to Photoshop and InDesign.
Compose and arrange
- Add Contents / Index inserts an automatic list of included slide names and page references. Two balanced columns use dotted leaders and wrap long titles; overflow remains reported. Selected exports recalculate the index.
- Add Moodboard… creates an editable grid from up to 12 chosen images, or six empty slots. Duplicate it, change its slot count or use Move to Position… to place it anywhere in the deck. Displaced images remain shortlisted; originals are untouched.
- The numbered 24-column/12-row grid uses exact starter dimensions at 2576 × 1080 and 1920 × 1080. Type & colours… adds installed Head/Sub/Body font choices, paired size/leading steps, alignment and colour roles. Type/palette settings can apply to one slide or the deck; Dark/Light remains per slide. The existing FontBlind v13.0.0 binary pin and native-control typography are retained.
- Canvas gestures ignore click jitter; clicks away from gradient controls select the clicked object. Crop dragging responds promptly when reversed at a boundary. Completed drags remain one Undo step; Escape cancels. The app icon now depicts editable layered slides on a workbench.
Production handoff
Export adds Production/workbench.md, workbench-production.json and optional numbered PSD/Slide 01.psd files. Writing preserves copy states and records how original fields map into Headline/Subheadline/Body. The manifest binds slide identity/order, copy, warnings and PSD paths/hashes. Copy.md, PDFs and original-media outputs remain available.
Each RGB/8-bit sRGB PSD has 00.Background and 01.Character, sharing one embedded artwork source with the chosen image frames, fit, crop masks and guides. Both roles initially contain the complete artwork. The artist creates the cut-out in Photoshop before the separate artwork-only PNG role export. Prototype text, background colours and gradients are not rendered into these PSDs; writing and final composition continue in the destination app. PSD creation requires neither Photoshop, InDesign nor a browser/Node runtime. Native Photoshop checks covered shared-source edits, save/reopen, JPEG orientation and transparent role export. InDesign text import, initial PSD placement and later link refresh remain separate local-script steps.
PSD generation is serial and limited to 1920 × 1080 or 2576 × 1080, 12 placements, 128 MiB combined source bytes and a 768 MiB estimated per-slide working budget. Still-image conversions and source problems are reported. Production writing/manifest/PSDs form one component; failure does not erase separately completed handoff components. See Known boundaries.
Copy replacement leaves generated Contents automatic while updating mapped ordinary and moodboard writing. Existing artwork, notes, field identities and layout survive the replacement and Undo.
Compatibility and verification
New packages use schema 3. Opening an older package does not itself upgrade it. Before saving starter features or explicit copy states, Workbench verifies internal pre-upgrade recovery data, then raises the reader guard. Older apps reject the upgraded copy; Undo does not downgrade it. Keep an untouched duplicate for old-app use.
Focused checks cover the new state, grid/type, production-copy, schema/recovery and PSD structure contracts. Only an actual same-SHA receipt establishes which checks passed for a package. Native Photoshop inspection complements encoder validation. Large-library performance, exhaustive accessibility and the separate InDesign helper are outside the packaged app check. Published packages, installation and a finished design remain separate outcomes.
v0.1.3 — native workflow polish (historical)
A focused finish to the existing native app: safer transitions, a usable deck-review mode, crop zoom, and less repeated media-list work. The slide management and layout features from v0.1.2 remain in place.
Working flow and visuals
Review deck uses the full working area and hides editing panels. Arrow keys, Space/Shift-Space and Home/End navigate without modifying the deck; Escape returns to editing. The current slide number and title remain visible. Crop zoom (100–400%) and Centre crop retain image framing as separate undoable adjustments. Optional copy fields can be removed in the draft without changing saved copy until confirmation. Layout/curation controls reflow when horizontal space is tight; export options scroll above fixed action buttons and show the actual included slide count.
Search exits preview/comparison. Candidate preview returns to a visible focus; comparison does not leak candidates into a different slide. Image-only selection no longer resets to an invisible text target. Slide notes retain their bound destination when the selected slide changes.
Saving and document lifecycle
Create/open/close/retry are serialized across suspension points. Late chooser callbacks and Save requests retain document identity. Replacement-copy imports keep the preview and error until acknowledged, with expected-copy conflict checks. Export reserves its operation before flushing, prevents duplicate destination requests and ignores obsolete progress callbacks.
A failure after durable journal append fences the session for recovery/replay instead of permitting new commands from stale in-memory state. New document sessions adopt their file store only after successfully projecting the initial view. Closing and reopening the same native window no longer reuses permanent close approval.
Performance
File imports use bounded reads and parse off the main actor. Media refresh requests are coalesced. An unchanged catalogue returns no new projection; changed catalogues and source maps arrive together without a main-thread JSON decode. Late scan/refresh callbacks cannot repopulate a switched document. Existing bounded image caches, text-layout reuse and direct live-gradient drawing are retained. No universal speed multiplier is claimed.
Verification and installation
The published artifact must have the same-SHA native package receipt for core slide/copy/media editing and handoff, plus review navigation, crop zoom/Undo, slide-bound notes, unchanged-catalog reuse, bounded import and serialized document creation. The repository retains meaningful document-kernel checks rather than source-pattern tests.
Requires Apple Silicon and macOS 26+. Quit Workbench, unzip the .app.zip, replace Deck Workbench.app in Applications and open it. Ad-hoc signed, not notarized. Existing v0.1.0–v0.1.2 native decks retain their reader schema. Keep an untouched copy of pre-native decks before editing.
Large studio libraries, exhaustive VoiceOver coverage, unusual source formats, removable/cloud-managed volumes and every recovery environment remain outside the synthetic journey. See docs/KNOWN_LIMITATIONS.md. Original media is never intentionally modified.
Deck Workbench v0.2.1 — Clearer optional exports
v0.2.1 — clearer optional exports
PSD export now visibly includes its required workbench.md companion, even after writing export was previously turned off. The handoff works with either Figma or InDesign; neither application is required during export. Unsupported canvases disable the PSD option before export while keeping writing, PDFs and media available. The saved PSD preference remains available when returning to a supported canvas.
Production writing is checked against the actual importer before delivery. This catches combined fields that exceed intake limits even when their individual source fields fit; Copy.md remains an independent, complete writing output.
The native package journey covers writing-only export with PSDs off and combined copy at and beyond the import limit, alongside the existing save, Undo, layout, media and PSD checks. No document schema, font, artwork or Adobe-script changes.
v0.2.0 — starter layouts and production handoff
Starter layouts, editable contents and moodboards, and a production handoff to Photoshop and InDesign.
Compose and arrange
- Add Contents / Index inserts an automatic list of included slide names and page references. Two balanced columns use dotted leaders and wrap long titles; overflow remains reported. Selected exports recalculate the index.
- Add Moodboard… creates an editable grid from up to 12 chosen images, or six empty slots. Duplicate it, change its slot count or use Move to Position… to place it anywhere in the deck. Displaced images remain shortlisted; originals are untouched.
- The numbered 24-column/12-row grid uses exact starter dimensions at 2576 × 1080 and 1920 × 1080. Type & colours… adds installed Head/Sub/Body font choices, paired size/leading steps, alignment and colour roles. Type/palette settings can apply to one slide or the deck; Dark/Light remains per slide. The existing FontBlind v13.0.0 binary pin and native-control typography are retained.
- Canvas gestures ignore click jitter; clicks away from gradient controls select the clicked object. Crop dragging responds promptly when reversed at a boundary. Completed drags remain one Undo step; Escape cancels. The app icon now depicts editable layered slides on a workbench.
Production handoff
Export adds Production/workbench.md, workbench-production.json and optional numbered PSD/Slide 01.psd files. Writing preserves copy states and records how original fields map into Headline/Subheadline/Body. The manifest binds slide identity/order, copy, warnings and PSD paths/hashes. Copy.md, PDFs and original-media outputs remain available.
Each RGB/8-bit sRGB PSD has 00.Background and 01.Character, sharing one embedded artwork source with the chosen image frames, fit, crop masks and guides. Both roles initially contain the complete artwork. The artist creates the cut-out in Photoshop before the separate artwork-only PNG role export. Prototype text, background colours and gradients are not rendered into these PSDs; writing and final composition continue in the destination app. PSD creation requires neither Photoshop, InDesign nor a browser/Node runtime. Native Photoshop checks covered shared-source edits, save/reopen, JPEG orientation and transparent role export. InDesign text import, initial PSD placement and later link refresh remain separate local-script steps.
PSD generation is serial and limited to 1920 × 1080 or 2576 × 1080, 12 placements, 128 MiB combined source bytes and a 768 MiB estimated per-slide working budget. Still-image conversions and source problems are reported. Production writing/manifest/PSDs form one component; failure does not erase separately completed handoff components. See Known boundaries.
Copy replacement leaves generated Contents automatic while updating mapped ordinary and moodboard writing. Existing artwork, notes, field identities and layout survive the replacement and Undo.
Compatibility and verification
New packages use schema 3. Opening an older package does not itself upgrade it. Before saving starter features or explicit copy states, Workbench verifies internal pre-upgrade recovery data, then raises the reader guard. Older apps reject the upgraded copy; Undo does not downgrade it. Keep an untouched duplicate for old-app use.
Focused checks cover the new state, grid/type, production-copy, schema/recovery and PSD structure contracts. Only an actual same-SHA receipt establishes which checks passed for a package. Native Photoshop inspection complements encoder validation. Large-library performance, exhaustive accessibility and the separate InDesign helper are outside the packaged app check. Published packages, installation and a finished design remain separate outcomes.
v0.1.3 — native workflow polish (historical)
A focused finish to the existing native app: safer transitions, a usable deck-review mode, crop zoom, and less repeated media-list work. The slide management and layout features from v0.1.2 remain in place.
Working flow and visuals
Review deck uses the full working area and hides editing panels. Arrow keys, Space/Shift-Space and Home/End navigate without modifying the deck; Escape returns to editing. The current slide number and title remain visible. Crop zoom (100–400%) and Centre crop retain image framing as separate undoable adjustments. Optional copy fields can be removed in the draft without changing saved copy until confirmation. Layout/curation controls reflow when horizontal space is tight; export options scroll above fixed action buttons and show the actual included slide count.
Search exits preview/comparison. Candidate preview returns to a visible focus; comparison does not leak candidates into a different slide. Image-only selection no longer resets to an invisible text target. Slide notes retain their bound destination when the selected slide changes.
Saving and document lifecycle
Create/open/close/retry are serialized across suspension points. Late chooser callbacks and Save requests retain document identity. Replacement-copy imports keep the preview and error until acknowledged, with expected-copy conflict checks. Export reserves its operation before flushing, prevents duplicate destination requests and ignores obsolete progress callbacks.
A failure after durable journal append fences the session for recovery/replay instead of permitting new commands from stale in-memory state. New document sessions adopt their file store only after successfully projecting the initial view. Closing and reopening the same native window no longer reuses permanent close approval.
Performance
File imports use bounded reads and parse off the main actor. Media refresh requests are coalesced. An unchanged catalogue returns no new projection; changed catalogues and source maps arrive together without a main-thread JSON decode. Late scan/refresh callbacks cannot repopulate a switched document. Existing bounded image caches, text-layout reuse and direct live-gradient drawing are retained. No universal speed multiplier is claimed.
Verification and installation
The published artifact must have the same-SHA native package receipt for core slide/copy/media editing and handoff, plus review navigation, crop zoom/Undo, slide-bound notes, unchanged-catalog reuse, bounded import and serialized document creation. The repository retains meaningful document-kernel checks rather than source-pattern tests.
Requires Apple Silicon and macOS 26+. Quit Workbench, unzip the .app.zip, replace Deck Workbench.app in Applications and open it. Ad-hoc signed, not notarized. Existing v0.1.0–v0.1.2 native decks retain their reader schema. Keep an untouched copy of pre-native decks before editing.
Large studio libraries, exhaustive VoiceOver coverage, unusual source formats, removable/cloud-managed volumes and every recovery environment remain outside the synthetic journey. See docs/KNOWN_LIMITATIONS.md. Original media is never intentionally modified.
Deck Workbench v0.2.0 — Starter layouts and Photoshop handoff
v0.2.0 — starter layouts and production handoff
Starter layouts, editable contents and moodboards, and a production handoff to Photoshop and InDesign.
Compose and arrange
- Add Contents / Index inserts an automatic list of included slide names and page references. Two balanced columns use dotted leaders and wrap long titles; overflow remains reported. Selected exports recalculate the index.
- Add Moodboard… creates an editable grid from up to 12 chosen images, or six empty slots. Duplicate it, change its slot count or use Move to Position… to place it anywhere in the deck. Displaced images remain shortlisted; originals are untouched.
- The numbered 24-column/12-row grid uses exact starter dimensions at 2576 × 1080 and 1920 × 1080. Type & colours… adds installed Head/Sub/Body font choices, paired size/leading steps, alignment and colour roles. Type/palette settings can apply to one slide or the deck; Dark/Light remains per slide. The existing FontBlind v13.0.0 binary pin and native-control typography are retained.
- Canvas gestures ignore click jitter; clicks away from gradient controls select the clicked object. Crop dragging responds promptly when reversed at a boundary. Completed drags remain one Undo step; Escape cancels. The app icon now depicts editable layered slides on a workbench.
Production handoff
Export adds Production/workbench.md, workbench-production.json and optional numbered PSD/Slide 01.psd files. Writing preserves copy states and records how original fields map into Headline/Subheadline/Body. The manifest binds slide identity/order, copy, warnings and PSD paths/hashes. Copy.md, PDFs and original-media outputs remain available.
Each RGB/8-bit sRGB PSD has 00.Background and 01.Character, sharing one embedded artwork source with the chosen image frames, fit, crop masks and guides. Both roles initially contain the complete artwork. The artist creates the cut-out in Photoshop before the separate artwork-only PNG role export. Prototype text, background colours and gradients are not rendered into these PSDs; writing and final composition continue in the destination app. PSD creation requires neither Photoshop, InDesign nor a browser/Node runtime. Native Photoshop checks covered shared-source edits, save/reopen, JPEG orientation and transparent role export. InDesign text import, initial PSD placement and later link refresh remain separate local-script steps.
PSD generation is serial and limited to 1920 × 1080 or 2576 × 1080, 12 placements, 128 MiB combined source bytes and a 768 MiB estimated per-slide working budget. Still-image conversions and source problems are reported. Production writing/manifest/PSDs form one component; failure does not erase separately completed handoff components. See Known boundaries.
Copy replacement leaves generated Contents automatic while updating mapped ordinary and moodboard writing. Existing artwork, notes, field identities and layout survive the replacement and Undo.
Compatibility and verification
New packages use schema 3. Opening an older package does not itself upgrade it. Before saving starter features or explicit copy states, Workbench verifies internal pre-upgrade recovery data, then raises the reader guard. Older apps reject the upgraded copy; Undo does not downgrade it. Keep an untouched duplicate for old-app use.
Focused checks cover the new state, grid/type, production-copy, schema/recovery and PSD structure contracts. Only an actual same-SHA receipt establishes which checks passed for a package. Native Photoshop inspection complements encoder validation. Large-library performance, exhaustive accessibility and the separate InDesign helper are outside the packaged app check. Published packages, installation and a finished design remain separate outcomes.
v0.1.3 — native workflow polish (historical)
A focused finish to the existing native app: safer transitions, a usable deck-review mode, crop zoom, and less repeated media-list work. The slide management and layout features from v0.1.2 remain in place.
Working flow and visuals
Review deck uses the full working area and hides editing panels. Arrow keys, Space/Shift-Space and Home/End navigate without modifying the deck; Escape returns to editing. The current slide number and title remain visible. Crop zoom (100–400%) and Centre crop retain image framing as separate undoable adjustments. Optional copy fields can be removed in the draft without changing saved copy until confirmation. Layout/curation controls reflow when horizontal space is tight; export options scroll above fixed action buttons and show the actual included slide count.
Search exits preview/comparison. Candidate preview returns to a visible focus; comparison does not leak candidates into a different slide. Image-only selection no longer resets to an invisible text target. Slide notes retain their bound destination when the selected slide changes.
Saving and document lifecycle
Create/open/close/retry are serialized across suspension points. Late chooser callbacks and Save requests retain document identity. Replacement-copy imports keep the preview and error until acknowledged, with expected-copy conflict checks. Export reserves its operation before flushing, prevents duplicate destination requests and ignores obsolete progress callbacks.
A failure after durable journal append fences the session for recovery/replay instead of permitting new commands from stale in-memory state. New document sessions adopt their file store only after successfully projecting the initial view. Closing and reopening the same native window no longer reuses permanent close approval.
Performance
File imports use bounded reads and parse off the main actor. Media refresh requests are coalesced. An unchanged catalogue returns no new projection; changed catalogues and source maps arrive together without a main-thread JSON decode. Late scan/refresh callbacks cannot repopulate a switched document. Existing bounded image caches, text-layout reuse and direct live-gradient drawing are retained. No universal speed multiplier is claimed.
Verification and installation
The published artifact must have the same-SHA native package receipt for core slide/copy/media editing and handoff, plus review navigation, crop zoom/Undo, slide-bound notes, unchanged-catalog reuse, bounded import and serialized document creation. The repository retains meaningful document-kernel checks rather than source-pattern tests.
Requires Apple Silicon and macOS 26+. Quit Workbench, unzip the .app.zip, replace Deck Workbench.app in Applications and open it. Ad-hoc signed, not notarized. Existing v0.1.0–v0.1.2 native decks retain their reader schema. Keep an untouched copy of pre-native decks before editing.
Large studio libraries, exhaustive VoiceOver coverage, unusual source formats, removable/cloud-managed volumes and every recovery environment remain outside the synthetic journey. See docs/KNOWN_LIMITATIONS.md. Original media is never intentionally modified.
Deck Workbench v0.1.3 — Native Mac workflow polish
v0.1.3 — native workflow polish
A focused finish to the existing native app: safer transitions, a usable deck-review mode, crop zoom, and less repeated media-list work. The slide management and layout features from v0.1.2 remain in place.
Working flow and visuals
Review deck uses the full working area and hides editing panels. Arrow keys, Space/Shift-Space and Home/End navigate without modifying the deck; Escape returns to editing. The current slide number and title remain visible. Crop zoom (100–400%) and Centre crop retain image framing as separate undoable adjustments. Optional copy fields can be removed in the draft without changing saved copy until confirmation. Layout/curation controls reflow when horizontal space is tight; export options scroll above fixed action buttons and show the actual included slide count.
Search exits preview/comparison. Candidate preview returns to a visible focus; comparison does not leak candidates into a different slide. Image-only selection no longer resets to an invisible text target. Slide notes retain their bound destination when the selected slide changes.
Saving and document lifecycle
Create/open/close/retry are serialized across suspension points. Late chooser callbacks and Save requests retain document identity. Replacement-copy imports keep the preview and error until acknowledged, with expected-copy conflict checks. Export reserves its operation before flushing, prevents duplicate destination requests and ignores obsolete progress callbacks.
A failure after durable journal append fences the session for recovery/replay instead of permitting new commands from stale in-memory state. New document sessions adopt their file store only after successfully projecting the initial view. Closing and reopening the same native window no longer reuses permanent close approval.
Performance
File imports use bounded reads and parse off the main actor. Media refresh requests are coalesced. An unchanged catalogue returns no new projection; changed catalogues and source maps arrive together without a main-thread JSON decode. Late scan/refresh callbacks cannot repopulate a switched document. Existing bounded image caches, text-layout reuse and direct live-gradient drawing are retained. No universal speed multiplier is claimed.
Verification and installation
The published artifact must have the same-SHA native package receipt for core slide/copy/media editing and handoff, plus review navigation, crop zoom/Undo, slide-bound notes, unchanged-catalog reuse, bounded import and serialized document creation. The repository retains meaningful document-kernel checks rather than source-pattern tests.
Requires Apple Silicon and macOS 26+. Quit Workbench, unzip the .app.zip, replace Deck Workbench.app in Applications and open it. Ad-hoc signed, not notarized. Existing v0.1.0–v0.1.2 native decks retain their reader schema. Keep an untouched copy of pre-native decks before editing.
Large studio libraries, exhaustive VoiceOver coverage, unusual source formats, removable/cloud-managed volumes and every recovery environment remain outside the synthetic journey. See docs/KNOWN_LIMITATIONS.md. Original media is never intentionally modified.
Deck Workbench v0.1.2 — Native Mac slide editing
v0.1.2 — slide editing restored
This release restores direct editing without changing Workbench's prototype-and-handoff purpose.
Slide controls
Layout and Edit Copy remain visible above both Curate and Assemble, even with the context panel hidden. The sidebar has Add Slide and a context menu. The new Slide menu exposes Add, Duplicate, Rename, Move Earlier/Later, Delete, Edit Copy and all layouts.
Add inserts after the selected slide and opens its copy editor. Duplicate retains writing, notes, shortlisted/chosen media and supported composition settings while giving all new document objects distinct identities. Rename changes the sidebar/handoff name, not the headline. Move can cross section boundaries. Delete confirms first, leaves original media untouched and restores the whole slide with Undo. The deck retains at least one slide.
Copy editing
Edit Copy is no longer buried. Heading-only imports offer body/subheadline fields; additional body, caption and credit fields can be added. The editor captures the slide it opened, so selection changes cannot redirect a save. Copy and optional slide-name edits save together as one Undo step. Cancelling changes nothing. Failed saves leave the draft open. Closing or importing while a draft is open requires saving or cancelling first.
Unchanged fields preserve the original rich-text data; no-op saves do not add journal/history entries. A conflicting copy revision is rejected without overwriting newer writing. Existing media, notes and layouts stay associated with the slide.
Small performance and safety changes
Sidebar ordinals use an indexed lookup rather than rescanning the deck for every row. Duplication works from the queued, durable slide after pending notes have flushed. Structural actions serialize with the existing command queue; no second file format, history engine or renderer is introduced.
Verification and compatibility
The package journey covers add, captured-target copy editing, duplicate, rename, move, delete/Undo/Redo and edited text in the ordinary handoff, in addition to the existing curation/export/reopen checks. Read the receipt associated with this exact release; build completion alone is not proof of every interactive path.
The file reader schema is unchanged from v0.1.0/v0.1.1. Keep an untouched copy of pre-native decks before their first native edit. Apple Silicon and macOS 26+ remain required; the app is ad-hoc signed, not notarized. Source media is never edited by these commands. Exhaustive accessibility, large studio-library performance and every recovery/permission environment still need hands-on evaluation.
Prior release notes: v0.1.1.
Layout finishing and targeted performance work
Apply Arrangement now copies custom image frames, replacing the destination geometry deliberately while retaining each destination's crops, copy and notes. Changing a layout restores its intended gradient direction. Reset Placement restores text/image placement and gradient without clearing crops or writing. Undo restores the complete prior arrangement.
Image-only and blank-copy slides no longer expose invisible text hit targets. Resize handles keep a screen-sized hit area at small zooms. Fitted images explain why crop-panning is unavailable. Snapping includes both column/row edges and the final right/bottom margins. Keyboard movement stays within the canvas; gradient arrows translate both endpoints together without changing its direction. Dragged gradient endpoints cannot collapse into an invalid zero-length gradient.
Canvas and inspector reads reuse their resolved scene within a document revision. An 8 MiB-cost / 48-entry text cache reuses immutable Core Text layouts when image/gradient settings or text position change; size/copy/columns invalidate it. Interactive gradients draw directly into the screen context rather than allocating a multi-megapixel overlay for every pointer movement. PDF export retains the alpha-safe cached overlay, keeping source images and selectable text separate. Cache limits are eviction targets, not a total application-memory guarantee.
The extracted-app journey additionally verifies custom-frame copying, reset/Undo, reused text frames, visible layout targets and screen/export gradient agreement. No studio-wide speed multiplier is claimed.
Deck Workbench v0.1.1 — Native Mac workflow repair
v0.1.1 — native workflow and handoff repair
This release fixes ordinary operations that could reject edits, overwrite another image's adjustments or resurrect undone notes. It retains the Mac-native prototype/handoff direction rather than rebuilding the application again.
Correctness
Layout picker resets are valid. Frame/crop/fill changes affect only the intended image. Batch arrangement application is reversible and idempotent. Visible slots follow the explicit layout; displaced images remain shortlisted. Cross-slot assignment moves/swaps correctly. Definitively rejected commands no longer hold subsequent valid actions. Acknowledged note drafts clear by generation; notes Undo survives save and reopen.
Working flow
Chosen-image slots, remove-but-keep-shortlisted, ordered keyboard comparison, natural/folder/date sorting, visible filters and filter-aware focus. Preview uses the working area instead of an oversized fixed sheet. Paste imports through the same parser. Replacement-copy preview explicitly matches slides and preserves their media/layout/notes. Apply Arrangement targets selected slides in one Undo step. Clean Preview, recentering Fit, better gesture cancellation, saved-value inspector synchronization and optional auto-advance. Pending command files can be restored to the matching deck with validation and confirmation.
Handoff
PDF gradients now retain transparency instead of hiding their source images. Only the gradient overlay is rasterized and cached; copy remains selectable. Canonical Mac media paths no longer reject legitimate directory aliases. The package journey inspects actual visible image pixels, not just embedded image objects.
Copy-only export no longer reads originals. Output resource selection and reports follow the actual requested/delivered components. Completed components can survive an independent failure; cancellation removes staging. Literal copy is protected in editable Markdown. Normal filename extensions survive truncation; spreadsheet-active CSV values are neutralized. Media index includes relative paths, roles, hashes, source notes and unavailable-file status. Generated handoffs are excluded by their own marker, not by excluding their parent media directory.
Performance
Indexed slide/asset lookup, cached sorted/filtered collections, shared bounded thumbnails, cancelled-work cleanup, reconnect-aware cache identity, one image construction per request and reuse of text layout during translation. No general speed multiplier is claimed. The release artifact includes a synthetic native journey receipt and timing/caching observations.
Install / limits
Apple Silicon, macOS 26+. Quit the old app, unzip the .app.zip, drag Deck Workbench.app into Applications and launch it. It is ad-hoc signed, not notarized. Keep a duplicate of pre-native decks: the first native edit upgrades their reader schema. v0.1.1 retains v0.1.0's schema. Preserve original files and older releases as fallbacks.
The package journey checks core operations and synthetic handoff outputs. Studio-scale performance, exhaustive accessibility, every source format and every recovery/permission environment are not established by it. See docs/KNOWN_LIMITATIONS.md. The entire historical master plan is not claimed complete.
Deck Workbench v0.1.0 — Native Mac (user-test build)
v0.1.0 — Native Mac user-test release
This release becomes the active Mac version at the studio's explicit request, without the full acceptance suite. The studio will test it hands-on. Successful compilation and packaging do not establish behavioural correctness.
The rebuild replaces the WebKit workspace with native Curate/Assemble surfaces. Source implements whole-deck and notes PDFs, complete copy and per-slide original-media handoff, independent shortlist membership, queued decisions, provisional text fitting, native image handling and saved-copy recovery. Linux/Electron/web distribution paths are retired and current documentation has been rewritten.
Use a duplicate deck first. First native editing upgrades the working package reader schema. Keep the original deck and v0.0.6 as a fallback. This build requires Apple-Silicon macOS 26+ and is ad-hoc signed, not notarized. Import, PDF appearance, media exports, migration/recovery, performance and accessibility remain unverified. The complete master plan is not claimed finished.
Download the .app.zip asset and retain its .sha256 checksum. Automatic GitHub source archives are not the installable app.
Deck Workbench v0.0.6
Deck Workbench v0.0.6
This release makes fullscreen Curate usable from the keyboard alone while preserving the v0.0.5 visual-workflow repairs and v0.0.4 writing import.
- In fullscreen Curate, Left/Right moves between images; 0–5 sets or clears rating; P toggles Project Pick; S toggles the current Slide shortlist; A toggles alternate; M opens Assign to Slide; Esc closes.
- The assignment chooser supports Up/Down, Home/End, Tab/Shift-Tab, Return/Space, and Esc. Cancelling returns to the same fullscreen image.
- Shortcut handling suppresses held-key repeat and disables conflicting input while a native mutation is pending.
- Visible shortcut legends and keyboard shortcut metadata make the workflow discoverable.
- Plan, Curate, Assemble, Canvas controls, native macOS window chrome, exact conversion-prompt clipboard behavior, and local Workbench Markdown import remain as shipped in v0.0.5.
Writing conversion remains external. Import Writing accepts pasted Workbench Markdown or the contents of a locally chosen .md file; Deck Workbench does not upload that file. The app includes no built-in AI/model call, account, telemetry, cloud storage, or network conversion.
This is a pre-alpha release. The macOS app is ad-hoc signed and not notarized. Linux packages passed Ubuntu/x64 CI; Arch installation, Garuda/KDE/Wayland integration, and normal FUSE AppImage launch remain unverified.
All published artifacts were built and package-tested from exact main commit ac886acf1119ee667354277a024852a7067ede0b; adjacent SHA-256 files are included.