Skip to content

feat(tools): add Markdown export alongside DOCX - #80

Merged
alpha5611331 merged 3 commits into
mainfrom
feat/markdown-export
Aug 7, 2026
Merged

feat(tools): add Markdown export alongside DOCX#80
alpha5611331 merged 3 commits into
mainfrom
feat/markdown-export

Conversation

@alpha5611331

Copy link
Copy Markdown
Member

@-

alpha5611331 and others added 3 commits August 6, 2026 21:44
Export already assembled the entire report as a Markdown string and only
then handed it to the DOCX converter, so exporting .md is that same
string written straight to disk rather than a second render path.

The Save button now opens a format menu instead of exporting on click.
Both formats carry identical content from the same summarize call, so
choosing Markdown costs no extra credits. Model output keeps its fenced
code blocks and lists verbatim in .md, which the converter flattens.

buildExportMarkdown and generateExportFilename move to an electron-free
utils module. That is what makes them reachable from test/run.mjs:
tools.service.ts imports `dialog`, which the test stub does not provide,
so anything left in that module cannot be loaded outside Electron.

generateExportFilename branches on `md` and lets everything else fall
through to docx. `format` arrives over IPC from the renderer, where the
type annotation is erased, so an unexpected value must not reach the
file extension.

The DOCX conversion now runs after the save dialog rather than before.
Cancelling no longer pays for a conversion nobody uses, and a Markdown
export never pays for it at all. Output is unchanged.

Docs in marketing-website and backend still name DOCX as the only
format and need matching updates in their own repos.

Closes #79

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Formatting the touched files also rewrapped two auth signatures that
have nothing to do with export. Prettier is not enforced here and a
number of files do not satisfy it, so reformatting pre-existing
violations just to sit next to a change puts unrelated hunks in front
of a reviewer.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
DropdownMenuContent portals into the overflow-hidden <main> from
main-frame, not document.body. The control panel is the bottom-most
thing in it, so a downward menu opens past that edge and is clipped -
not merely flipped by collision detection, which is what the previous
wording implied and what would invite someone to drop the prop.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@alpha5611331
alpha5611331 merged commit 33e6ac2 into main Aug 7, 2026
1 check passed
@alpha5611331
alpha5611331 deleted the feat/markdown-export branch August 7, 2026 13:14
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.

1 participant