Skip to content

Showcase#753

Open
scriptease wants to merge 2 commits intoRunMaestro:rcfrom
scriptease:showcase
Open

Showcase#753
scriptease wants to merge 2 commits intoRunMaestro:rcfrom
scriptease:showcase

Conversation

@scriptease
Copy link
Copy Markdown

@scriptease scriptease commented Apr 8, 2026

#745 Inspired me to build a feature to showcase the app (with fake data) to match the screenshots @pedramamini used in the THEMES.md for future themes to have a nice screenshot.

npm run dev:showcase -- --size 1796x1151

The default theme

Before (original):
screenshot

After (npm run dev:showcase -- --size 1796x1151):
Bildschirmfoto 2026-04-08 um 09 44 09

Tested it with
npm run dev:showcase -- --theme winamp

And here is the result from @kianhub pull request:

Bildschirmfoto 2026-04-08 um 09 40 46

Summary by CodeRabbit

  • New Features

    • Added a reproducible "Showcase Mode" with a single CLI entry to launch a demo server, optional theme selection, and custom window sizing; includes deterministic demo seed data and scripted setup for consistent UI state.
  • Documentation

    • Updated contributor guide with a Contributing Themes section and theme workflow.
    • Expanded theme showcase docs with a new Solarized Dark entry, screenshot guidance, and commands for generating theme screenshots.

@coderabbitai
Copy link
Copy Markdown

coderabbitai bot commented Apr 8, 2026

📝 Walkthrough

Walkthrough

Adds a reproducible "showcase" demo mode: new dev:showcase npm script, launcher/setup/generator scripts, many JSON seed fixtures under scripts/showcase/seed/data/, and documentation updates for running theme-specific screenshots and configuring the demo at /tmp/maestro-showcase.

Changes

Cohort / File(s) Summary
Docs: Contributing & Themes
CONTRIBUTING.md, THEMES.md, scripts/showcase/plan.md
Adds "Contributing Themes" guidance, new "Solarized Dark" theme entry and screenshot workflow, and a documented plan/spec for the showcase/demo workflow including commands and expected UI state.
Package script
package.json
Adds dev:showcase npm script pointing to node scripts/showcase/launch.js.
Showcase launcher & orchestration
scripts/showcase/launch.js, scripts/showcase/setup.js, scripts/showcase/plan.md
New launcher that runs setup then spawns the dev server with MAESTRO_DEMO_DIR=/tmp/maestro-showcase; setup copies seed JSONs, replaces placeholders ($CWD, $USERDATA), and optionally patches theme (--theme) and window size (--size).
Seed generator
scripts/showcase/generate-seed.js
New deterministic seed generator producing session/group/settings/window-state/origins JSON files and group chat logs to populate the demo seed directory.
Seed data files
scripts/showcase/seed/data/*.json, scripts/showcase/seed/data/group-chats/.../metadata.json, scripts/showcase/seed/data/group-chats/.../chat.log
Adds many static seed JSON fixtures (sessions, groups, settings, window state, agent/session origins, claude session origins) and group-chat metadata/logs used by the demo environment.

Sequence Diagram

sequenceDiagram
    actor User
    participant CLI as "npm CLI"
    participant Launch as "scripts/showcase/launch.js"
    participant Setup as "scripts/showcase/setup.js"
    participant Seed as "scripts/showcase/seed/data/*"
    participant Tmp as "/tmp/maestro-showcase"
    participant Dev as "npm run dev (dev server)"

    User->>CLI: npm run dev:showcase [--theme] [--size]
    CLI->>Launch: run launch.js + args
    Launch->>Setup: exec setup.js with args
    Setup->>Tmp: remove & recreate demo dir
    Setup->>Seed: read seed JSON and group-chats
    Seed-->>Setup: provide files
    Setup->>Tmp: copy JSONs & group-chats
    alt --theme provided
        Setup->>Tmp: patch maestro-settings.json (activeThemeId)
    end
    alt --size provided
        Setup->>Tmp: validate & patch maestro-window-state.json
    end
    Setup-->>Launch: exit success
    Launch->>Dev: spawn dev server with MAESTRO_DEMO_DIR=/tmp/maestro-showcase
    Dev->>Tmp: dev server reads demo directory
    Dev-->>User: demo environment served
Loading

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

Poem

🐰 I stitched seeds and screenshots in a row,
A showcase burrows where the demo will go.
Scripts hum, themes glow bright,
Reproducible magic, ready to show at night.
Hop in and watch the pixels grow! 🎨✨

🚥 Pre-merge checks | ✅ 1 | ❌ 2

❌ Failed checks (1 warning, 1 inconclusive)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 35.71% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
Title check ❓ Inconclusive The title "Showcase" is vague and generic, failing to convey meaningful information about the changeset despite the PR adding significant infrastructure for a demo environment with seeded data, deterministic ID generation, theme/size CLI support, and documentation updates. Consider a more specific title such as "Add showcase mode with seeded demo data and CLI configuration" to better communicate the main changes to reviewers scanning commit history.
✅ Passed checks (1 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@scriptease scriptease changed the base branch from main to rc April 8, 2026 08:02
@scriptease
Copy link
Copy Markdown
Author

Also adding the solaris dark theme
Bildschirmfoto 2026-04-08 um 09 57 07

Copy link
Copy Markdown

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 8

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@CONTRIBUTING.md`:
- Around line 685-687: The docs reference two different theme source locations;
pick one canonical theme module (where ThemeId and the theme palette objects
actually live) and update both the short guide and the "Adding a New Theme"
section to point to that single module; specifically, ensure the reference that
names the ThemeId type and the theme definitions (the themes module) and the
theme test reference (the test that asserts available ThemeIds) are
consistent—either switch all docs to the shared themes module and theme-types
symbol or switch them all to the renderer constants symbol, and update any
mention of ThemeId, theme definitions, and the theme test to the chosen
canonical location.

In `@scripts/showcase/generate-seed.js`:
- Around line 1161-1162: The seed metadata currently bakes absolute source-tree
locations into logPath and imagesDir (set using groupChatDir), which will point
back to scripts/showcase/seed/data after copying; change generation in
generate-seed.js so logPath and imagesDir are stored as relative paths (e.g.,
relative to DATA_DIR or the chat root) or emit placeholders that
scripts/showcase/setup.js rewrites during install; update the code that sets
logPath and imagesDir (the variables named logPath, imagesDir, groupChatDir) to
compute and save relative paths instead of path.join(groupChatDir, ...), or add
a rewrite step in setup.js that replaces those fields the same way $CWD is
handled.
- Around line 953-964: The fixture currently uses the misspelled agent name
'Stript MCP' and path 'stript-mcp' (see the object with name: 'Stript MCP', cwd:
'/tmp/showcase-projects/stript-mcp', and keys like OTHER_CONVERSATIONS['Stript
MCP']); update all occurrences to the correct spelling 'Stripe MCP' and rename
the folder/key to 'stripe-mcp' so the display name, lookup key
(OTHER_CONVERSATIONS[...] reference) and cwd/path are consistent; ensure you
update the object name, the cwd value, and any OTHER_CONVERSATIONS index usage
to the exact new string 'Stripe MCP'/'stripe-mcp'.

In `@scripts/showcase/plan.md`:
- Around line 236-257: The "Updating Seed Data" section is outdated and refers
to scripts/showcase/seed/base/ which is not used; remove or replace this section
to describe the real seed maintenance workflow: explain that seed JSONs live in
scripts/showcase/seed/data/ and that you should edit those files directly or run
the generate-seed.js script (referenced by name) to regenerate curated seed
artifacts, and remove any instructions about copying /tmp/maestro-demo into
scripts/showcase/seed/base/ or launching Maestro for Electron internals.
- Around line 5-6: The plan text claims seed data is copied from
scripts/showcase/seed/base/ (Electron internals) but setup.js (the script
referenced in the project) only copies from scripts/showcase/seed/data/ and
explicitly states "No base/Electron seed directory needed"; update the plan in
scripts/showcase/plan.md so it accurately reflects the implementation (either
remove the reference to seed/base/, state that setup.js only uses seed/data/, or
note that the original design changed and base/ was discarded), and also update
the other referenced sections (lines noted around 148-153 and 203-206) to be
consistent with setup.js's behavior and paths.

In
`@scripts/showcase/seed/data/group-chats/00000000-0000-4000-a000-00000000005b/metadata.json`:
- Around line 42-43: The metadata.json contains hardcoded absolute developer
paths for the keys "logPath" and "imagesDir"; update these values to use a
portable placeholder (e.g., "$CWD" or a relative path under a configurable base
like "/tmp/maestro-showcase") and then modify the setup script (setup.js) to
resolve that placeholder at runtime (as maestro-sessions.json does) so the
actual filesystem path is injected when seeding; ensure the keys "logPath" and
"imagesDir" are updated in the JSON and that setup.js replaces the placeholder
with the target directory before writing/using the files.

In `@scripts/showcase/setup.js`:
- Around line 104-126: Wrap the JSON.parse calls that read settingsFile and
windowStateFile in try-catch blocks to handle malformed JSON: catch the error
thrown by JSON.parse when reading settings (variable settings after
fs.readFileSync(settingsFile,...)) and windowState (variable windowState after
fs.readFileSync(windowStateFile,...)), log a clear diagnostic including which
file failed and the parse error, and exit with a non-zero status
(process.exit(1)). Ensure the surrounding logic that updates
settings.activeThemeId and windowState.width/height only runs when the parse
succeeds.

In `@THEMES.md`:
- Line 111: Update the theme table row that currently shows the label "Github"
to use the correct capitalization "GitHub" (the code sample `npm run
dev:showcase -- --theme github-light --size 1796x1151` remains unchanged);
search for the string "Github" in THEMES.md (e.g., the table row containing `|
Github           | `...`) and replace it with "GitHub" to match the platform's
official spelling.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 9393fb67-0f79-47eb-8bd5-96c0c5600980

📥 Commits

Reviewing files that changed from the base of the PR and between 5cc8e91 and 97f4ed5.

⛔ Files ignored due to path filters (1)
  • scripts/showcase/screenshot.png is excluded by !**/*.png
📒 Files selected for processing (14)
  • CONTRIBUTING.md
  • THEMES.md
  • package.json
  • scripts/showcase/generate-seed.js
  • scripts/showcase/launch.js
  • scripts/showcase/plan.md
  • scripts/showcase/seed/data/group-chats/00000000-0000-4000-a000-00000000005b/metadata.json
  • scripts/showcase/seed/data/maestro-agent-session-origins.json
  • scripts/showcase/seed/data/maestro-claude-session-origins.json
  • scripts/showcase/seed/data/maestro-groups.json
  • scripts/showcase/seed/data/maestro-sessions.json
  • scripts/showcase/seed/data/maestro-settings.json
  • scripts/showcase/seed/data/maestro-window-state.json
  • scripts/showcase/setup.js

@pedramamini
Copy link
Copy Markdown
Collaborator

Hey @scriptease — thank you for this contribution! The showcase mode is a great idea and the implementation is thorough. The seed data, deterministic ID generation, and CLI arg support (--theme, --size) are all well thought out.

One issue I spotted that needs fixing before we can merge:

Hardcoded paths in scripts/showcase/seed/data/group-chats/.../metadata.json

The logPath and imagesDir fields contain your local machine path:

"logPath": "/Users/florian/github/Maestro/scripts/showcase/seed/data/group-chats/00000000-0000-4000-a000-00000000005b/chat.log",
"imagesDir": "/Users/florian/github/Maestro/scripts/showcase/seed/data/group-chats/00000000-0000-4000-a000-00000000005b/images"

These should use $CWD placeholders (like you do for sessions), and setup.js should replace them when copying group chat data to /tmp/maestro-showcase. Otherwise the group chat won't resolve its log/images on anyone else's machine.

Similarly, generate-seed.js writes these paths using path.join(groupChatDir, ...) which bakes in the absolute path at generation time — that logic should use $CWD as well and let setup.js handle the replacement.

Everything else looks solid — the documentation updates to THEMES.md and CONTRIBUTING.md are clean, and the overall architecture (seed data → setup → launch) is nice. Just need that path fix and we should be good to go!

Copy link
Copy Markdown

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

♻️ Duplicate comments (2)
scripts/showcase/plan.md (1)

5-6: ⚠️ Potential issue | 🟡 Minor

Plan content is out of sync with the implemented showcase flow.

This still documents seed/base copying and an old dev:showcase command, but the current implementation uses scripts/showcase/launch.js and scripts/showcase/seed/data/ only (with Electron internals created in /tmp/maestro-showcase at runtime). Please update these sections to match the shipped scripts.

Also applies to: 202-205, 213-214, 236-255

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@scripts/showcase/plan.md` around lines 5 - 6, The plan currently documents an
outdated flow (referencing seed/base and an npm run dev:showcase command) but
the shipped implementation uses scripts/showcase/launch.js and only
scripts/showcase/seed/data/, with Electron internals created at runtime under
/tmp/maestro-showcase; update the plan text to remove any mention of copying
seed/base and the old dev:showcase command and instead describe the actual flow:
that scripts/showcase/launch.js is the launcher, it overlays configs from
scripts/showcase/seed/data/, and the runtime creates the /tmp/maestro-showcase
internals on each run, and make the same corrections in the other affected
sections (the later paragraphs currently describing seed/base and the old
command).
THEMES.md (1)

111-111: ⚠️ Potential issue | 🟡 Minor

Use GitHub capitalization in the theme table.

Please rename Github to GitHub in this row for consistent platform naming.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@THEMES.md` at line 111, Change the table row that currently uses the string
"Github" to use the correct capitalization "GitHub" — locate the row containing
the command snippet `npm run dev:showcase -- --theme github-light --size
1796x1151` and replace the left-column label "Github" with "GitHub" so platform
naming is consistent.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@scripts/showcase/plan.md`:
- Around line 148-153: The fenced code blocks in the plan document (the
triple-backtick diagram showing scripts/showcase/seed/data →
(scripts/showcase/setup.js) → /tmp/maestro-showcase/) lack explicit language
tags and have inconsistent opening/closing fences; update each fenced block
(including the other occurrence around lines 232-242) to use consistent
triple-backticks and add an explicit language token such as "text" or "bash"
(e.g., ```text or ```bash) so markdownlint MD040 is satisfied and rendering
remains stable.

---

Duplicate comments:
In `@scripts/showcase/plan.md`:
- Around line 5-6: The plan currently documents an outdated flow (referencing
seed/base and an npm run dev:showcase command) but the shipped implementation
uses scripts/showcase/launch.js and only scripts/showcase/seed/data/, with
Electron internals created at runtime under /tmp/maestro-showcase; update the
plan text to remove any mention of copying seed/base and the old dev:showcase
command and instead describe the actual flow: that scripts/showcase/launch.js is
the launcher, it overlays configs from scripts/showcase/seed/data/, and the
runtime creates the /tmp/maestro-showcase internals on each run, and make the
same corrections in the other affected sections (the later paragraphs currently
describing seed/base and the old command).

In `@THEMES.md`:
- Line 111: Change the table row that currently uses the string "Github" to use
the correct capitalization "GitHub" — locate the row containing the command
snippet `npm run dev:showcase -- --theme github-light --size 1796x1151` and
replace the left-column label "Github" with "GitHub" so platform naming is
consistent.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 5d64272d-dbf9-482e-a10f-1986ab61d749

📥 Commits

Reviewing files that changed from the base of the PR and between 97f4ed5 and 3b534bf.

⛔ Files ignored due to path filters (1)
  • scripts/showcase/screenshot.png is excluded by !**/*.png
📒 Files selected for processing (14)
  • CONTRIBUTING.md
  • THEMES.md
  • package.json
  • scripts/showcase/generate-seed.js
  • scripts/showcase/launch.js
  • scripts/showcase/plan.md
  • scripts/showcase/seed/data/group-chats/00000000-0000-4000-a000-00000000005b/metadata.json
  • scripts/showcase/seed/data/maestro-agent-session-origins.json
  • scripts/showcase/seed/data/maestro-claude-session-origins.json
  • scripts/showcase/seed/data/maestro-groups.json
  • scripts/showcase/seed/data/maestro-sessions.json
  • scripts/showcase/seed/data/maestro-settings.json
  • scripts/showcase/seed/data/maestro-window-state.json
  • scripts/showcase/setup.js
✅ Files skipped from review due to trivial changes (9)
  • package.json
  • scripts/showcase/seed/data/maestro-window-state.json
  • CONTRIBUTING.md
  • scripts/showcase/seed/data/maestro-claude-session-origins.json
  • scripts/showcase/seed/data/maestro-agent-session-origins.json
  • scripts/showcase/seed/data/maestro-groups.json
  • scripts/showcase/seed/data/group-chats/00000000-0000-4000-a000-00000000005b/metadata.json
  • scripts/showcase/seed/data/maestro-settings.json
  • scripts/showcase/seed/data/maestro-sessions.json
🚧 Files skipped from review as they are similar to previous changes (3)
  • scripts/showcase/launch.js
  • scripts/showcase/setup.js
  • scripts/showcase/generate-seed.js

Add a curated demo environment for screenshots and presentations.
Includes seed data generator, setup script with --theme and --size
CLI args, and a launcher that forwards parameters to the dev server.
THEMES.md updated with per-theme showcase commands.
Copy link
Copy Markdown

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

♻️ Duplicate comments (2)
scripts/showcase/plan.md (2)

148-153: ⚠️ Potential issue | 🟡 Minor

Add a language token to the pipeline code fence.

Line 148 opens a fenced block without a language, which triggers MD040.

Proposed fix
-```
+```text
 scripts/showcase/seed/data/     ← Curated JSON configs + group chat data
          │
          ▼  (scripts/showcase/setup.js)
 /tmp/maestro-showcase/          ← Fresh copy on every launch (Electron creates its own internals)
</details>

<details>
<summary>🤖 Prompt for AI Agents</summary>

Verify each finding against the current code and only fix it if needed.

In @scripts/showcase/plan.md around lines 148 - 153, The markdown fenced code
block starting with that contains the showcase path snippet should include a language token to satisfy MD040; change the opening fence from to text (i.e., update the code fence that wraps the lines "scripts/showcase/seed/data/ … /tmp/maestro-showcase/") so the block is fenced as text and the closing fence
remains ``` to fix the lint warning.


</details>

---

`235-259`: _⚠️ Potential issue_ | _🟡 Minor_

**Fix the unlabeled 4-backtick fence (or remove it) to avoid broken rendering.**

Line 235 starts another fenced block without a language; this makes the “Updating Seed Data” and “Open Questions” sections render as code.

 

<details>
<summary>Proposed fix</summary>

```diff
-````
-
 ---
 
 ## Updating Seed Data
@@
 - Should there be a theme override for projector readability (larger font, higher contrast)?
 - Should the fake file tree data be statically baked in, or should it be generated from the actual repo at copy time?
-````
```
</details>

<details>
<summary>🤖 Prompt for AI Agents</summary>

Verify each finding against the current code and only fix it if needed.

In @scripts/showcase/plan.md around lines 235 - 259, Remove or correct the stray
4-backtick fence (````) that begins before the horizontal rule so the
"Updating Seed Data" and "Open Questions" sections are not rendered as a code
block; specifically locate the unlabeled fence token (````) that precedes
the --- divider and either delete it or replace it with a proper closing fence
(e.g., remove the extra backtick so the block uses matching triple backticks or
close the open fence) so the headers render as normal Markdown.


</details>

</blockquote></details>

</blockquote></details>

<details>
<summary>🤖 Prompt for all review comments with AI agents</summary>

Verify each finding against the current code and only fix it if needed.

Duplicate comments:
In @scripts/showcase/plan.md:

  • Around line 148-153: The markdown fenced code block starting with that contains the showcase path snippet should include a language token to satisfy MD040; change the opening fence from to text (i.e., update the code fence that wraps the lines "scripts/showcase/seed/data/ … /tmp/maestro-showcase/") so the block is fenced as text and the closing fence remains ``` to fix the lint
    warning.
  • Around line 235-259: Remove or correct the stray 4-backtick fence (````)
    that begins before the horizontal rule so the "Updating Seed Data" and "Open
    Questions" sections are not rendered as a code block; specifically locate the
    unlabeled fence token (````) that precedes the --- divider and either
    delete it or replace it with a proper closing fence (e.g., remove the extra
    backtick so the block uses matching triple backticks or close the open fence) so
    the headers render as normal Markdown.

</details>

---

<details>
<summary>ℹ️ Review info</summary>

<details>
<summary>⚙️ Run configuration</summary>

**Configuration used**: Path: .coderabbit.yaml

**Review profile**: CHILL

**Plan**: Pro

**Run ID**: `61a64461-fdfd-467f-b1b5-741288aef453`

</details>

<details>
<summary>📥 Commits</summary>

Reviewing files that changed from the base of the PR and between 3b534bf3e1fbafaa0a35de6863cc3361ad840c52 and 3e951b667a98b571c129636ffa2f7eb48765de6d.

</details>

<details>
<summary>⛔ Files ignored due to path filters (1)</summary>

* `scripts/showcase/screenshot.png` is excluded by `!**/*.png`

</details>

<details>
<summary>📒 Files selected for processing (14)</summary>

* `CONTRIBUTING.md`
* `THEMES.md`
* `package.json`
* `scripts/showcase/generate-seed.js`
* `scripts/showcase/launch.js`
* `scripts/showcase/plan.md`
* `scripts/showcase/seed/data/group-chats/00000000-0000-4000-a000-00000000005b/metadata.json`
* `scripts/showcase/seed/data/maestro-agent-session-origins.json`
* `scripts/showcase/seed/data/maestro-claude-session-origins.json`
* `scripts/showcase/seed/data/maestro-groups.json`
* `scripts/showcase/seed/data/maestro-sessions.json`
* `scripts/showcase/seed/data/maestro-settings.json`
* `scripts/showcase/seed/data/maestro-window-state.json`
* `scripts/showcase/setup.js`

</details>

<details>
<summary>✅ Files skipped from review due to trivial changes (11)</summary>

* package.json
* scripts/showcase/seed/data/maestro-window-state.json
* CONTRIBUTING.md
* scripts/showcase/seed/data/maestro-claude-session-origins.json
* scripts/showcase/seed/data/maestro-agent-session-origins.json
* scripts/showcase/seed/data/group-chats/00000000-0000-4000-a000-00000000005b/metadata.json
* THEMES.md
* scripts/showcase/launch.js
* scripts/showcase/seed/data/maestro-settings.json
* scripts/showcase/seed/data/maestro-sessions.json
* scripts/showcase/seed/data/maestro-groups.json

</details>

<details>
<summary>🚧 Files skipped from review as they are similar to previous changes (2)</summary>

* scripts/showcase/setup.js
* scripts/showcase/generate-seed.js

</details>

</details>

<!-- This is an auto-generated comment by CodeRabbit for review status -->

@scriptease
Copy link
Copy Markdown
Author

Hey @scriptease — thank you for this contribution! The showcase mode is a great idea and the implementation is thorough. The seed data, deterministic ID generation, and CLI arg support (--theme, --size) are all well thought out.

One issue I spotted that needs fixing before we can merge ...

Addressed and pushed

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants