v0.0.1-beta-001: Brainstorm mode, package types, and UI improvements#28
v0.0.1-beta-001: Brainstorm mode, package types, and UI improvements#28
Conversation
Automatically assigns sbaker to all new issues and pull requests. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Introduce a visual Group node and multi-selection grouping workflow. Adds GroupNode component and registers 'node-group' in node types, parser and types; implements groupNodes store action to create a group, compute bounding box, re-parent selected nodes, and update workflow file and React Flow nodes. Prevent nesting of groups and allow grouping of top-level nodes only. UI/UX changes include adding a "Group N Nodes" context menu item, wiring it through WorkflowCanvas, and updating ContainerNode to better sync measured dimensions (collapsed/expanded) so selection boxes match DOM. Also introduce an effective context window cap (resolveEffectiveContextWindow capped at 128K) used by ChatTab and AiChatPanel for compaction and UI percent display. Misc: fix README clone URL, add several docs screenshots and remove an outdated PDF.
…ystem, and skill nodes - New Project modal: scaffold Package/Skill/Workflow projects with proper directory structure, workspace switching, and save/discard prompt for open workspaces - Unified New File dialog: extract reusable file-type selector from FileExplorer into NewFileDialog component - Resource type system: shared icons, colors, labels for package/workflow/node-template/skill types used across PackagePanel, PackageDetailsModal, LocalPackageModal, PublishModal - PublishModal: type-aware main file filter (.pdflow for workflows, .prmd for others) - Skill nodes: add SkillNode and SkillNodeProperties for workflow canvas - Installed resources panel and IPC registration for resource/skill management Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…PackagePanel
Forward pkg.type from registry search results through IPC to CLI install call,
ensuring skill/workflow/template packages route to correct .prompd/{type}/ dirs.
Replace old cache-based type routing in main.js with CLI-native directory scanning.
Add type filter chips (All/Package/Workflow/Skill/Template) to both search and
my-packages tabs. Compact PackageCard layout for sidebar use. Map additional
registry fields (type, license, publishedAt, owner, namespace) in registryApi.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Resource IPC and template IPC for installed resource management - PublishResourceModal with namespace pre-selection from prompd.json - PackagePanel type filter chips and install pipeline type passthrough - WysiwygEditor Nunjucks block preprocessing to prevent false dirty marking - DeploymentService version history and dependency resolver updates - README Windows-only note, package.json release config fixes Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…ny casts - Merge duplicate `package?` declarations in ElectronAPI interface (publish was overriding createLocal/install/uninstall due to duplicate key) - Remove `any` cast in PublishResourceModal getElectronAPI (Window.electronAPI is already globally typed) - Type parsed variable in DeploymentDependencyResolver Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Introduce a new "brainstorm" chat mode (prompt JSON + system MD) and related frontend components to enable a collaborative in-memory document editor. Extend Package model with a new `type` enum and index, and thread `type` through registry APIs and services (registry client, PackageService, registry routes) so packages can be filtered/searched by type. Add handling for OpenAI "reasoning" models (o1/o3 style) by using max_completion_tokens and disabling temperature where required in AgentService and ConversationalAiService. Misc: add UI tooltip audit doc, new icons/assets, and various frontend updates across electron app, react package components, parameter inputs, and UI wiring to support the new mode and package type.
Source-available license that protects against hosted/managed service competition while allowing use, modification, and distribution. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: b223942b1d
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| // Forward data chunks incrementally to renderer | ||
| response.on('data', (chunk) => { | ||
| if (!event.sender.isDestroyed()) { | ||
| event.sender.send('api:stream-chunk', streamId, chunk.toString('utf8')) |
There was a problem hiding this comment.
Preserve byte chunks when forwarding streamed responses
In api:streamRequest the chunk is converted to a UTF-8 string in the main process and then re-encoded in the renderer, which corrupts multibyte characters when a code point is split across network chunks. This affects streamed LLM output in Electron (for example CJK text or emoji can become �), because chunk.toString('utf8') is lossy at arbitrary boundaries. Forward raw bytes (or base64) and decode once with a streaming decoder on the renderer side to avoid text corruption.
Useful? React with 👍 / 👎.
Summary
confirm()), mode color system (cyan brainstorm, amber thinking), file rename tab sync fix, new file dialog, publish modal, WYSIWYG fixesTest plan
confirm()popupsnpx tsc --noEmitin frontend (passes clean)🤖 Generated with Claude Code