Changelog
All notable changes to RuneQuilt will be officially documented here.
[1.7: Tabbed Workbook Architecture]
This major update transforms RuneQuilt from a single-grid editor into a robust, multi-tabbed workbook, allowing authors to manage complex manuscripts, subplots, and timelines within a single unified project file.
Multi-Tab Organization
- Multiple Grids: Authors can now create, switch between, and duplicate multiple tabs within a single
.runequilt workspace, perfectly suited for organizing subplots, separate character arcs, or extensive lore notes.
- Partitioned Undo/Redo Engine: The Global Undo Manager has been completely rewritten to support partitioned, per-tab history stacks. Actions taken in one tab will not corrupt the undo history of another.
- Architecture Upgrades: The
.runequilt file payload has been updated to the new RuneQuilt_V1.7 signature, ensuring backward compatibility while fully supporting the new multi-tab schema without data loss.
[1.6 Update 4: Advanced Filtering & Typography Refinements]
This update introduces powerful new query operators for grid columns, ensuring authors can quickly filter down to exactly what they need, alongside crucial enhancements to make typography universally portable.
Advanced Column Filtering
- Query Operators: Upgraded the grid column filtering logic to support advanced syntax. Authors can now search using
is:empty, is:notempty, exact matches (="text"), and exclusions (-text).
- UI Discoverability: Added placeholder hints and native tooltips to filter inputs to expose these powerful new commands without cluttering the interface.
Typography Portability
- Offline Google Fonts: The Google Fonts engine now natively downloads and packages
.woff2 files directly into your active .runequilt workspace, ensuring perfect typography rendering even without an internet connection.
- System Font Validation: The application now cross-checks custom System Fonts upon loading a document and will explicitly warn users if they open a file on a machine missing required proprietary fonts.
- UI & Toolbar Fixes: Resolved a layout overlap issue inside the Font Picker caused by excessively long font names, and updated the Quill toolbar engine to safely enable all standard rich-text tools by default.
[1.6 Update 3: Live HTML Exports]
This update introduces a highly resilient Live HTML Export engine, allowing authors to generate interactive, self-contained HTML files of their manuscript grids, complete with dynamic column filtering and formatting. It also delivers crucial UI bug fixes to the context menus and toolbar.
Live HTML Export Engine
- Interactive Export Templates: The export engine now embeds your manuscript into a dynamic HTML template. Exported grids feature built-in "Select All" and "Deselect All" mass-action toggles and real-time column text filtering for instant data slicing outside of RuneQuilt.
- Resilient Architecture: Completely restructured the JavaScript-to-C# bridge for the export pipeline. Transitioned from asynchronous IPC messaging (which suffered from memory buffer limits) to a synchronous direct-return model, allowing massive projects to export without crashing.
- Data Type Hardening: Bulletproofed the Lorebook smart tag formatting engine to safely type-coerce numeric, missing, or corrupted data entries, completely resolving the
Cannot read properties of undefined export crashes.
- Robust Injection: Updated the C# compiler manifest and HTML injection logic to utilize explicit
/* INJECTION_START */ markers, permanently fixing blank HTML exports caused by OS-level line-ending mismatches and legacy data arrays.
UI & Workflow Fixes
- Context Menu Fly-outs: Fixed a layout bug where the hidden columns context menu stacked incorrectly. The menu now properly renders as a dynamic fly-out list.
- Edge Detection: Added smart edge-detection to the grid context menus; if the mouse is near the right edge of the screen, the fly-out will intelligently pop out to the left to prevent getting clipped off-screen.
- Toolbar Alignment: Fixed the main WPF toolbar "Columns" submenu so it now correctly drops down directly underneath its parent button instead of rendering across the screen.
[1.6 Update 2: Deep Search & Universal Spreadsheets]
This update focuses on eliminating data-silos by allowing authors to seamlessly port massive datasets via CSV and Excel imports, alongside introducing a sophisticated deep-search engine that queries hidden metadata without corrupting text fields.
Universal Spreadsheet Import
- Native Excel & CSV Support: Added the
ExcelDataReader engine to natively parse standard .csv and .xlsx spreadsheets directly into memory without requiring Microsoft Office.
- Auto-Map Algorithm: The frontend intelligently scales and spawns new grid columns dynamically if an imported spreadsheet is wider than the current workspace.
- Safe-State Funnels: Three distinct user experience funnels were implemented to protect unsaved work, including the ability to actively append spreadsheet rows to the bottom of an existing document without overwriting it.
Lorebook Deep Search Engine
- The Omnibar: Added a persistent search bar to the Lorebook sidebar with a 200ms debounce timer for instantaneous filtering without stuttering the UI.
- Hierarchical Scanning: The search algorithm actively scans Categories, Item Names, Field Keys, and hidden Field Values. Deep matches display a subtle
(Deep match) badge on the sidebar.
- Non-Destructive Highlighting: Because Lorebook fields utilize native
<input> and <textarea> elements, we implemented a sophisticated CSS Form Highlighting algorithm that bounds matching fields with a glowing yellow border. This completely eliminates the risk of accidentally saving HTML <mark> tags into the .runequilt file.
[1.6 Update 1: The Typography & Fonts Update]
This update significantly expands the typography capabilities of RuneQuilt, moving beyond system fonts to seamlessly integrate the entire Google Fonts library directly into the editor for true creative freedom.
Typography & Font Management
- Font Manager Window: Introduced a dedicated Font Manager (accessible via Tools → Manage Fonts). It allows authors to seamlessly search and curate the active fonts available within their editor workspace.
- Google Fonts API Integration: The Font Manager connects natively to the Google Fonts library. Authors can search, select, and seamlessly download virtually any web font directly into RuneQuilt.
- Local Font Embedding: Added a sophisticated background downloader that embeds downloaded Google Fonts directly inside the
.runequilt workspace. This guarantees offline typography support and ensures manuscripts render perfectly on other machines without needing an internet connection.
- Deep Engine Fixes: Resolved deep-seated Chromium CORS restrictions and Quill.js format stripping bugs, guaranteeing that cursive web fonts and fonts with spaces in their names correctly render and persist within the text editor.
[1.6 Updates: The Manuscript & Analytics Expansion]
The 1.6 lifecycle pushed RuneQuilt's export capabilities into professional territory, integrated full two-way MS Word manuscript sync, and expanded the author's toolbox with semantic color coding and deep analytics.
Professional Formatting & Exports
- Two-Way MS Word Sync: Introduced a sophisticated bi-directional MS Word synchronization engine. Tracked changes and comments made by external editors in Word are now intelligently imported, automatically quoted in an "Editor's Comments" column, and managed directly inside RuneQuilt.
- Tracked Changes UI: Overhauled the Writer's Companion with a fully functioning "Revisions" tab. Tracked changes are now securely enforced (requiring explicit accept/reject actions) and feature 1:1 parity with the context menu.
- Formatting Preservation: Massively upgraded
.docx and .pdf export workflows, giving users complete control to preserve their custom RuneQuilt rich-text formatting natively in their finalized manuscripts.
- PDF Export Engine: Added native "Export to PDF" capabilities alongside the established Word workflows.
Grid Theming & Workflow Customization
- Semantic Color Coding: Shipped a powerful styling engine allowing authors to intuitively color-code rows, columns, and individual cells. Includes 3 visual rendering modes (Solid Fill, Color Strip, Tint Wash) with automatic high-contrast text handling.
- Pastel Palette: Expanded the default styling toolset with a beautifully calibrated 6-color pastel palette, tailored to look exceptional across all grid modes.
- Navigation Pane: Shipped a brand-new global Navigation Pane feature to help authors quickly traverse and outline complex manuscripts.
Analytics & Editor Refinements
- Analytics Dashboard: Major aesthetic and architectural updates to the user analytics views, delivering deeper tracking and writing insights.
- Quill Toolbar Upgrades: Expanded the rich-text toolbar with "Clear Formatting" and "Link" buttons, along with helpful hover tooltips for faster formatting.
- System Stability & Technical Debt: Conducted deep refactoring of the core import/export pipelines for long-term stability. Added a proper UI loading window to
.runequilt file parsing.
- Critical Bug Fixes: Resolved critical issues including orphaned
.docx exports, Tension graph visual disappearances, Undo-engine scroll-jumping, and lingering data artifacts in the Writer's Companion after closing a story.
[1.5 Updates: Deep Continuity & Editor Overhaul]
The primary focus of the 1.5 updates transitioned the app from a capable
structural editor to an intelligent writing assistant loaded with state-of-the-art continuity
features.
Build Polish & Final Features
- Context Menu Parity: Integrated seamless "Copy", "Cut", and "Paste" functionality
synchronously into the custom context menu, bypassing normal Chromium clipboard security
restrictions for native fluid integration. Keyboard shortcut safety was heavily fortified.
- UI Hardening: Finalized dark theme edge-cases involving borders, ComboBoxes, and
main window toolbars. Fixed obscure rendering bugs related to swapping adjacent rows.
- Find and Replace: Engineered comprehensive "Find" and "Find and Replace" functionality
directly into the editor, allowing authors to make rapid, manuscript-wide text modifications.
The Continuity & Tension Engine
- The Magic Filter Engine: Implemented the "Magic Filter" feature that smartly
isolates and displays only the subset of rows affected by an active continuity error, hiding all
non-relevant rows. Built sophisticated bidirectional sync logic to ensure the Magic Filter plays
nicely with the Global Undo engine.
- The Logic Evaluator: Introduced the intelligent Continuity Engine capable of
parsing story cells, scanning text for subjects, contexts, and states, and matching them against
user-defined rules.
- Tension Graph Visualizer: Built out the Bezier-curve Tension Graph visualization,
adding features like milestone label skewing and exact snapping constraints.
The Writer's Companion & Codex
- Writing Expertise Integrated: Shipped "The Writer's Codex," a multi-chapter
internal guide offering deep-dives into Character Psychology (via the Johari Window), Prose
Stylistics, Series Planning, and Outlining Methods.
- Contextual Side Panel: Added the Writer's Companion UI, housing dynamic rule-based
continuity incident alerts alongside structural writing tips ("Example Do" / "Example Don't").
System Hardening & Undos
- Global Undo/Redo Engine: Ripped out restrictive confirmation popups and replaced
them with a deeply integrated, highly sophisticated generic Undo/Redo engine capable of tracking
rich-text edits, row/column swapping, deletions, and snapshot restores.
- Advanced Row & Column Interactivity: Implemented highly requested intelligent
column and row swapping, dynamic column autosizing, and slice features ("cut to new row
above/below").
Enhanced Data Guardrails
- Relationship Management: Built an advanced tag relationship manager to link custom
entities together, heavily safeguarding against duplicate fields or corrupted references inside the
Lorebook, Custom Columns manager, and Relationship Manager.
[1.0 Journey: Forging The Foundation]
The sprawling 1.0 lifecycle moved RuneQuilt from its initial grid
concept through a gauntlet of architectural hybrid-app redesigns, ending in a stable,
commercial-ready product.
Finalizing The Core Structure
- Marketing & Delivery Integration: Designed the comprehensive marketing platform,
wrote the onboarding documentation, established End User License Agreements (EULAs), and compiled
the InnoSetup installer workflows.
- Snapshot Lifecycle Tracking: Deployed robust custom-named snapshot mechanisms and
added visual UI trackers representing active session progress to give writers feedback on their
productivity.
- Dark Mode Propagation: Systematically propagated dark mode aesthetics through every
corner of the WPF wrapper, standardizing brushes and menu highlight states.
Architectural Maturation
- The `.runequilt` File Paradigm: Completely rewrote the save system to use an
underlying ZIP archive infrastructure. This pivotal update allowed local assets (like embedded
images) to be securely bundled together in non-volatile isolated workspaces, resolving massive
cross-origin WebResourceRequested issues.
- Rich Text Images & Overlays: Upgraded the Quill.js editor to fully support dynamic
inline image insertion, topped with modern 8-point resizing overlays.
- Cross-Interop Stress Testing: Authored heavy Python scripts to algorithmically
hammer the grid engine with massive MS Word document imports, eventually smoothing out Microsoft
Word parse bugs and word count spikes.
- Check-in & Licensing: Integrated secure external check-ins to monitor strict
end-user license key compliance.
Establishing the Grid
- Custom Column Engine: Built the foundational mechanics allowing authors to mint
dynamic column templates extending beyond standard rich-text, turning the grid into a true database
hybrid.
- Hybrid Bridge Construction: Tied the low-level WPF C# container directly into the
WebView2 Chromium renderer via bidirectional messaging and event handlers.
- Initial Prototyping: The Git repository was initialized. Visual layouts for grids,
column headers, and the basic WPF outer shell were built up across the earliest development cycles.