Repository navigation
Releases: chrisatom1998/document-graph-explorer
Releases · chrisatom1998/document-graph-explorer
Release list
v1.1.14
What's changed
OpenRouter/Ollama provider selection (replacing Gemini), independent chat vs enrichment models, inter-cluster bridge filaments, PDF demo corpus (100 docs), and a collapsed side-panel connections list.
See CHANGELOG.md for the full [1.1.14] notes.
Assets
dist.zip/dist-airgap.zip— web buildsDocument.Graph.Explorer-1.1.14.exe— Electron Windows portableDocument-Graph-Explorer-v1.1.14-windows-x64-portable.zip— zip of the portable exeDocument-Graph-Explorer-1.1.14-win-pkg.zip— pkgrun.exe+dist/
v1.1.13
What's new
- Welcome screen constellation replaced with a 3D hero miniature of the real graph scene (instanced cores/halos, fat-line filaments, edge-pulse packets; cool-band cluster hues; reduced-motion and WebGL fallbacks).
See CHANGELOG.md for details.
v1.1.12
What's Changed
Fixed
- Corpus switcher on the welcome screen: the empty-state dropdown now renders through a document-level portal sized against the trigger, so the welcome card's rounded clipping can no longer crop the menu (viewport-aware flip above/below; follows resize/scroll).
- Welcome constellation styles restored after an orphaned HeroOrbitalPreview scaffold renamed
.empty-state__constellationaway from the class EmptyState still uses — the SVG had lost its width cap andoverflow: visible(needed for node drop-shadows), and the mobile 180px override no longer applied.
Removed
- Unused
HeroOrbitalPreviewcomponent and its visual-stage CSS (HeroUI Pro-dependent scaffold that EmptyState never adopted after the Pro dependency was dropped).
Tests
- Added hostile-input coverage for HtmlPreview and the graph-import sanitizer (prompt-injection / DoS-bound payloads), aligned with
sanitizeGraphExport's real throw-on-unusable-file contract.
v1.1.11
What's Changed
Changed
- Scene render pipeline: drop
preserveDrawingBuffer(Export PNG now captures one on-demand frame via asceneCapturebridge), turn off unused canvas MSAA in favor of explicit composer multisampling, and add render resolution (dpr) to the AutoQuality ladder so bloom-heavy scenes can shed fill-rate under load. - Graph edges in 3D use fat-line ribbons (
LineSegments2) at top quality tiers instead of 1-device-pxGL_LINEShairlines; hairlines remain at degraded tiers and in the 2D star chart.
Full Changelog: https://github.com/chrisatom1998/document-graph-explorer/blob/main/CHANGELOG.md
v1.1.10
Added
- Document annotations: every document's side panel now has a Notes & Tags section — a free-text note, removable tag chips with corpus-wide one-click suggestions, and a pin. Annotations persist per corpus in IndexedDB, keyed by the document's stable path so an edited file keeps its notes, and survive document removal. Pinned documents surface as a jump list in Corpus insights. Saves are debounced, per-key (a second tab's annotations can't be clobbered), flushed on tab close/app hide, and retried with a warning toast on failure.
- The first-run tour now covers the full feature set in 7 steps: saved views, folder sync, snapshot compare, chat providers, and annotations. It reappears once for users who dismissed the older 4-step tour, can be dismissed with Escape, and drops cloud-provider mentions in airgap/offline mode.
Changed
- Welcome/empty state, progress strip, and first-run chrome restyled with HeroUI (open-source components; no Pro license required for builds); nebula canvas and global styles refreshed to match.
Security
- Upgraded Electron from 32.3.3 (EOL, Chromium 128, 17 known advisories) to 43.x, and hardened the packaged app's Electron fuses:
RunAsNode,--inspectCLI arguments, andNODE_OPTIONSare disabled, while asar integrity validation,OnlyLoadAppFromAsar, and cookie encryption are enabled. At their defaults a signed Electron binary doubles as a general-purpose Node interpreter that inherits the app's signature and granted permissions. - Updated
fast-xml-parser(Office-document parsing) past an entity-expansion DoS, and cleared the criticalnode-tarchain in the build tooling.npm audit: 40 → 26 issues, 0 critical. - Chat prompts now fence retrieved passages with a per-request random nonce, so a document containing the literal context delimiter can no longer close the context block and have the rest of its text read as instructions.
- Chat renders model-authored external links as inert text showing the full URL instead of one-click anchors, closing a prompt-injection exfiltration path that bypassed the CSP by leaving the app entirely.
- Bounded model-authored enrichment output (summary length, topic label length) so an injected instruction in one document cannot propagate oversized content into topic canonicalization, cluster names, and exports.
- Bounded the CSV preview by column count (a one-line all-commas file mounted one DOM cell per field and wedged the renderer), the document-viewer URL linkifier's regex quantifiers (quadratic backtracking hung the main thread on a long line), and the import validator's cluster-name/embedding scans (invalid entries advanced no counter, defeating the caps).
Fixed
- Background per-corpus writes (annotations, and by the same path watched-folder and saved-view updates) can no longer re-derive the active workspace while an imported or shared graph is open. Previously the publish fallback re-activated the last local corpus underneath the ephemeral view — flipping the mode back to "local", misdirecting later edits into a real corpus, and re-arming active-corpus mutations (such as marking the corpus empty on last-document removal) that ephemeral mode deliberately disarms.
v1.1.9
v1.1.8
Added
- Richer generated demo corpus content (theme systems, incidents, actions, risks, and artifacts) so Load demo corpus produces more distinctive, cross-linked documents.
- Batched embedding worker requests that pack many short documents into shared model inference calls instead of one round trip per document.
Changed
- Commit parsed ingest results in fixed-size store/layout batches so large drops update the graph in groups rather than once per file.
- Scale the AI core with corpus size so the center orb stays readable against the expanded force-layout shell.
- Skip IndexedDB original retention for reconstructable generated demo documents, avoiding thousands of redundant writes on demo load.
- Serve and fetch the unversioned demo manifest with
no-cache/no-storeso desktop upgrades no longer keep a year-old cached corpus definition.
v1.1.7
Fixed
- Rebase the chat message-id counter when a transcript is restored. The counter restarts at zero each page load, so the first new turn could reuse a restored message's id, producing duplicate React keys and causing a single update to patch two messages at once.
- Apply the same transcript flush and switch guard to snapshot restore that normal corpus switches use, so restoring a snapshot owned by another workspace can no longer persist an empty transcript over that workspace's saved history.
- Restore a saved transcript that arrived while an answer was still streaming, instead of discarding it permanently and letting the next save replace the stored history with only the new turn.
- Stop retrying a document-AI request that was cancelled during a rate-limit backoff, which continued issuing billable requests after the user had moved to another document.
- Mark an empty-bodied streaming failure as an error so it is excluded from the history sent to the model rather than replayed as a genuine prior answer.
- Stop re-reporting watched-folder files that were merely deferred by the batch size cap; they are retried on the next scan, so each poll was adding another ignored-file entry and warning toast until the backlog drained.
v1.1.6
Fixed
- Stop chat history from wiping the outgoing workspace or overwriting a live answer during corpus switches by syncing transcripts outside React effects.
- Keep folder watching from deadlocking on corpus switch/restore, clobbering a newly chosen folder handle, or stranding files deferred by the batch size cap.
- Unblock parse jobs while the pinned embedding worker is busy loading the model, and avoid lending that worker to general work in multi-worker pools.
- Speed up title/filename mention linking with a single-pass anchor index and prefer titles over filenames when both match.
- Align Content-Security-Policy and deployment header docs so OpenRouter is allowed in standard builds and blocked in air-gap builds.
Changed
- Harden session save, worker pool dispatch, and graph/scene update paths covered by the critical bug-fix batch.
Web and Windows installers/archives exceed GitHub's 100MB blob limit, so they are attached as Release assets (not Git LFS).
v1.1.5
Document Graph Explorer v1.1.5
Added
- Local English OCR fallback for scanned PDFs using bundled Tesseract.js assets
- Browser folder watching with add/change/remove reconciliation
- Backend-free shareable graph URLs
- Named multi-corpus workspaces
Changed
- Corpus and folder-management code kept outside eager app entry; bounded watched-folder metadata reads
Assets
Document.Graph.Explorer-1.1.5.exe— Electron portable Windows appDocument-Graph-Explorer-1.1.5-win-pkg.zip— pkg-based Windows zip (run.exe+dist/)Document-Graph-Explorer-v1.1.5-windows-x64-portable.zip— CI-compatible portable zip ofrelease/windist.zip/dist-airgap.zip— web builds