WriteIDE 0.7.0: the feedback release
WriteIDE 0.7 is a feedback release.
The work started with real books and concrete failures: an imported stat system that collided with itself, a character that could not receive a stat system after creation, a Word title page that became an empty chapter, an item tag field that would not accept a comma, and damage that changed a resource maximum instead of its current value.
Each report became a reproduction, a fix, and a gate. The alpha channel then did the same job for the release pipeline. Windows found one platform-specific durability path that Linux could not. Stable 0.7 includes the correction without dropping any database checks.
A clearer first session
A new project now starts with four equal choices:
- Start with a blank project.
- Bring in an existing manuscript.
- Track a story you keep writing in Word, Scrivener, or Docs.
- Try the demo.
The choice is a job, not a decorative welcome card. WriteIDE keeps a small first-value checklist tied to that path. Manuscript import is reviewed before rows are created, so cancelling or failing does not leave an empty project shell in the library. Returning writers still go straight back to their work.
Stat systems repair instead of trapping you
A stat system exported from one project used to carry its internal identity into the next one. Importing WriteIDE's own file could then fail with “Template ID already exists.” Imports now mint a fresh identity in the destination project.
Characters created before their system existed also have a recovery path. “Apply Stat System” adds exactly the missing attributes, preserves every value already present, and writes no invented story events. Running it twice is a no-op.
Resource handling got the same treatment. A system can have HP, MP, Stamina, Qi, or another authored current/max pool. The stat block uses each definition's resource contract instead of a two-name whitelist. Historical HP, MP, and Stamina setups still render when they are plain calculated stats. Damage and healing change the current value, not the maximum.
Imports and exports keep the structure you wrote
A Word title page no longer turns into a phantom first chapter. A titled but unwritten scene remains an empty scene after round trip instead of disappearing. Consecutive system-message boxes remain separate in HTML and EPUB output, and calculated stats that share a short name stay scoped to their own definitions.
These are small sentences with a large rule behind them: moving a manuscript through WriteIDE must not quietly change its structure.
Backups stop fighting cloud storage
The default backup folder often sits inside Documents. On macOS that may be managed by iCloud, which can evict older file contents while leaving their directory entries in place. The old backup scan could read those files on the app thread and wait while the system downloaded them again.
Backup scanning is asynchronous now and detects evicted files without materializing their contents. Retention also governs disk files rather than only database rows, including unreferenced snapshots left after project deletion. Concurrent snapshot requests serialize, one missing image no longer blocks an otherwise valid restore, and the schema coverage test requires every table to declare its backup policy.
The reported interface failures are fixed
Faction creation now offers values the database actually accepts, with “Other / Custom” mapped to the supported custom type. Item tags keep the raw text while you type, so commas work normally. Empty chapters save. Projects can be created from the project switcher. The selected update channel survives a restart.
Dialogs, confirmation actions, and global menus also received a keyboard and focus pass. Async completion returns focus instead of dropping it, and regression tests cover the affected screen-reader and keyboard paths.
What the alpha channel proved
Windows and Linux can opt into an Alpha update channel in Settings. Alpha versions publish as prereleases to their own feed, so they cannot replace stable update metadata.
That channel caught the final 0.7 release blocker. Linux completed the alpha.6 release job. Windows completed typecheck and the normal test suite, then failed the native database gate because one spreadsheet publication path handled Windows directory fsync differently from the shared durability layer. Windows reports FlushFileBuffers rejection on a directory handle as EPERM; that is a platform capability result for the sync step, not permission to ignore real open, I/O, or close failures.
The publication path now uses the shared, step-specific policy and keeps its before/after directory authority checks. Real I/O and close failures still stop publication. Windows still runs both halves of the native database gate before any stable artifact can publish. Splitting the lane gives each half enough time; it does not remove a suite.
Deliberately not in 0.7.0
The linked Word write-back, canonical spreadsheet import, and returned-PDF review paths remain behind disabled development switches. Their 0.7.1 work is being validated separately. Stable 0.7 does not turn them on.
WriteIDE remains free, local-first, and account-free. AI features remain disabled. If the app loses structure, changes the wrong number, or makes you work around a rule in your own story, tell me what happened. That is how this release was built.
More in Release notes
WriteIDE 0.6 rebuilds the app as an editorial studio, adds a spoiler-safe Reader Codex, character classes, Story Overview, and signed Windows builds.
8 min readWhat's new in WriteIDE 0.5.5A correctness and trust release. A reader asked whether manuscripts get uploaded to the cloud, and the honest answer became a whole version: every word now means what it says, and every number is one the app can prove.
4 min readWhat's new in WriteIDE 0.5.3A flow-state pass. Every slash-command wizard is now keyboard-drivable, and the dialogs got a redesign that is cleaner and works the same in the light and dark themes.
4 min readNotes worth sending
Release notes when a version ships, plus Lab notes and guides. No weekly filler.