You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/TECHNICAL_MANUAL.md
+25-1Lines changed: 25 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -109,4 +109,28 @@ This module handles all communication with the external Large Language Model. It
109
109
-**`Sidebar.tsx`:** Manages the display of the `nodes` tree (documents and folders) and templates. It handles search/filtering, drag-and-drop, and keyboard navigation.
110
110
-**`DocumentEditor.tsx`:** The primary user-facing editor component. It serves as a layout controller, managing the view mode (editor, preview, split-screen) and containing both the `CodeEditor` (Monaco) and `PreviewPane` components. It orchestrates the flow of data between the editor and the preview.
111
111
-**`SettingsView.tsx`:** Manages all application settings, which are now read from and saved to the `settings` table in the database.
112
-
-**`DocumentHistoryView.tsx`:** This view now fetches version history for a document directly from the database, providing a reliable timeline of changes.
112
+
-**`DocumentHistoryView.tsx`:** This view now fetches version history for a document directly from the database, providing a reliable timeline of changes.
113
+
114
+
---
115
+
116
+
## 5. Build & Release Workflow
117
+
118
+
Electron Builder manages the packaging and publishing workflow for DocForge. The most relevant npm scripts are:
119
+
120
+
-`npm run build` — Bundles the renderer and preload scripts, prepares assets in `dist/`, and generates platform icon binaries from the source SVG.
121
+
-`npm run package` — Produces distributable builds without uploading them.
122
+
-`npm run publish` — Builds the application and publishes artifacts using Electron Builder's configured GitHub target.
123
+
124
+
### Publishing a Release
125
+
126
+
1. Run `npm version <new-version> --no-git-tag-version` to bump the version in both `package.json` and `package-lock.json` without creating a Git tag.
127
+
2. Update `VERSION_LOG.md` with a new section that captures the highlights of the release.
128
+
3. Review and update the Markdown documentation (README, manuals, release notes) so the written guidance reflects the final state of the build.
129
+
4. Sync the Markdown files under `docs/` with the copies at the project root.
130
+
5. Execute `npm run publish` to package the application and upload the release artifacts to GitHub.
131
+
132
+
### Application Icon Pipeline
133
+
134
+
- The canonical icon artwork lives at `assets/icon.svg`. During `npm run build` (and thus during `npm run package`/`npm run publish`), the `scripts/prepare-icons.mjs` script validates the SVG and, if valid, generates the required `icon.icns`, `icon.ico`, and `icon.png` files in the `assets/` directory using `icon-gen`.
135
+
- If the SVG is missing or invalid, the script logs a warning and leaves the existing binary icon assets untouched so packaging can proceed with the previous icons.
136
+
- To regenerate icons without running a full build, execute `npm run prepare:icons`.
0 commit comments