Repository navigation
Releases: stffnb/edentext
Release list
v0.9.0
EdenText 0.9.0 introduces an optional AI assistant. It works with the user's own provider (OpenAI,
Anthropic, Mistral, Gemini, OpenRouter) or a local model in Ollama or LM Studio, reads the entire
document and records its edits as tracked changes. Nothing is sent until a provider is set up,
requests go directly to the provider without passing through an EdenText server, and the assistant
can be switched off in Settings. Greek is added as a program and document language. Settings are
consolidated in a dedicated dialog, and a single undo history now covers text, headers and
footers, page setup and styles.
Added
- An AI assistant in a side pane, in the context menu and behind
Alt+I, can be switched off:- a chat mode that answers questions and an edit mode that changes the document as tracked
changes, kept or undone per reply - it reads text, styles, lists, tables, comments, pages and headers, and can write whole
documents, format paragraphs, tables and frames, and set up pages, sections and headers - slash commands (
/draft,/rewrite,/translate…) and user-defined prompts, files
attached as material, replies that cite paragraphs, and@AIin a comment for an answer
in the thread - the chat survives a reload, and the pane docks left or right of the pages
- a chat mode that answers questions and an edit mode that changes the document as tracked
- Greek as a program and document language, with spell checking
- A Settings dialog with sections for general, editing, view, privacy and AI, and an accent
colour for the chrome - Documents can stay out of the browser: closed documents can be dropped at the next start,
or autosave can be switched off; a document keeps its file across reloads and checks it
before overwriting it - Heading numbering that can be switched on and edited, with presets I / A / 1 / a) and
Chapter 1 - A frame's space to the text on all four sides, rules and their padding in the paragraph
style manager, and lines dragged by their two ends - The desktop app points to a newer release, and its dialogs and macOS menu come in every
app language
Fixed
- Long documents open, scroll and print faster: typing no longer lays out every page again,
the page grid builds faster, and PDF export and printing work in page strips with a progress
display - Lists keep their numbering level's marker formatting, continued counting, spacing and
indents from their paragraph style, and their nested lists through ODF - Tables start below or beside a floating frame where their words fit, a row that may not
break starts a new page, and inserted rows and columns keep their neighbour's formatting - Indexes and contents generate their rows when the file cached none, and keep their columns
and page numbers at the right edge - Mirrored margins and margin edits reach every section, and headers, footers and footnotes
stand where LibreOffice puts them - Text copied from a word processor pastes as text, not as a picture of it
- Every import error is translated
v0.8.0
EdenText now installs as a desktop app on macOS, Windows and Linux, and speaks Ukrainian. Shapes
and frames get most of the work: Word presets, formula shapes, groups and connectors open instead of
dropping, keep their shading and arrow heads, and stack forward and back. On a phone the ribbon,
dialogs and zoom fit the screen.
Added
- A desktop app — unsigned installers for macOS (dmg), Windows (exe) and Linux (AppImage, deb)
on every release, saving straight to files on disk - Ukrainian as a program and document language, and Russian list numbering with letters that
repeat past the end of the alphabet - Shapes open instead of dropping — ODF groups, shapes built from formulas and arcs, Word
connector presets — and keep their shading, text area, preset and the arrow heads of an open outline - Bring frames forward or send them back
- Ribbon command search (Alt+Q)
- A recent documents list for the browser's autosaved documents, and a new tab starts on an
empty document - On a phone, pinch zooms only the document, the ribbon tab strip scrolls sideways and the
ruler starts hidden
Fixed
- Rotated shapes and images keep their place in LibreOffice, every DOCX frame gets its own stacking
height, and a frame out of the flow turns about its own centre - A shape behind the text takes clicks and drags again, is grabbed anywhere off its text, and
switching between behind and in front of the text keeps its place - Dragging an image shows its frame at once, with the move cursor, and the image toolbar leaves the
rotate grip free - A reopened file keeps its column sections and starts at its first page
- A heading in a box or cell reads back without its style as direct formatting, and a paragraph in
a text box keeps its keep options in DOCX - Every import warning appears in the UI language
- Spelling squiggles no longer shorten hyphenated lines and paint only near the viewport
- Menus, dropdowns and dialogs fit the window, scroll when taller and stay legible under a dark theme
- A closed tab no longer lists its document as open, and setting a language for all text leaves the
view where it was
v0.7.0
EdenText now speaks Japanese, and Chinese and Japanese documents get the typography they need:
separate Latin and East Asian fonts, the page's line grid, indents counted in characters and
emphasis marks. Headers and footers become full documents of their own, and pictures and frames land
where their file puts them.
Added
- Japanese as a program and document language, with Japanese font names, 「」 quotes and
ア/イ list numbering - Separate Latin and East Asian fonts and languages — a paragraph can set English in
Liberation Serif and Chinese in SimSun side by side; both formats keep the pair, and picking
a font sets the side it belongs to - The page's line grid, read, written and laid out, with SimSun and FangSong at their own
line heights, and a fixed line spacing in the paragraph dialog - Indents counted in characters, the Chinese named font sizes, emphasis marks (着重号) and
typed quotes that follow the language at the caret - Headers and footers hold anything the body does — tables, lists, positioned pictures and
text boxes — in both formats - Indexes keep their saved rows until updated, and an update can renew the page numbers alone
- A picture keeps its crop; a list keeps its label's hang and the suffix after it
- Built-in style names and the format buttons speak the UI language, and dialogs move by their title
Fixed
- Line heights follow the font's own metrics and the tallest run on the line, not the paragraph mark
- Pictures and frames in front of, behind or beside the text keep their position, alignment and
stacking order, in the column, at the page corner and in DOCX - A page break survives edits around it, a block pushed to the next page opens at its section's
top margin, and a chapter reopening its master starts on the right sheet - An imported document the schema rejects is repaired instead of opening broken
- A lost autosave no longer leaves its page setup behind, and a quick reload keeps its pictures
- East Asian text stays out of the spell and grammar check; catalog mistranslations corrected
Changed
- The site deploys only after every CI leg passes, and an asset failing to load after start-up is
reported
v0.6.0
Chinese, in both scripts and on both sides of the document: the UI speaks it, a paragraph can be
written in it, and its lists, fonts, paper and line breaking follow. Around it, a movable link
window, a ribbon tab for the running head, and British English.
Added
- Simplified and Traditional Chinese as program languages, with Chinese font names in the
picker, 「」 quotes in zh-Hant, and an index headed in the app's language - Chinese as a document language, dictionary or not: it is written to the asian slot, its text
is set from the asian font, Han characters count singly, and words break at the next Han character - Chinese list numbering (一、壹、甲、①), 16K and 32K paper, and date, currency and table
language following the locale - British English as a second spell-check language
- A ribbon tab for the header and footer, with a dated running head and tab stops set from the ruler
- A movable link window, and a US business letter template whose fold marks appear only where they fit
Fixed
- A tab no longer counts its own advance twice, and Shift-Tab stays inside a header/footer zone
- The columns flow no longer rejoins a boundary it just split
- The layout menus show what a section actually sets, an empty page-number start says what it means,
and a page-number change stays out of a second footer line - A text box keeps its font on CJK text; the language box names the state it is in when checking is off
Changed
- A container image is published for each release
v0.5.0
The weight of this release is the cross-reference: every target type a word processor offers,
inserted from a movable window and kept alive through both formats. Beside it, four more program
languages with their dictionaries, a grammar check, a language per paragraph, and a pass over the
section and page geometry that a mixed-paper document depends on.
Added
- Cross-references and bookmarks — a movable window offers every target type (headings,
numbered paragraphs, bookmarks, captions per category, foot- and endnotes) in every reference
format ODF names. References and their targets survive both formats, a LibreOffice document's
own reference marks resolve, and a reference draws as the field it is - Spanish, French, Portuguese and Russian as program languages — the globe picker offers
Español, Français, Português (Portugal) and Русский, and the whole UI follows: ribbon, dialogs,
context menus, built-in templates, number formats and date fields (a Slavic locale in the
genitive a date is printed in). Each comes with Hunspell spell check and a MyThes thesaurus,
the AutoCorrect quotes and currency its locale names, and saves as its own tag - Grammar and style check (harper.js, local, no server): a switch beside the language picker
turns it on, blue waves mark what it finds, and the context menu offers the fixes. English
only — the engine carries its rules in code, so it greys out elsewhere and says so. Off by
default: it downloads a 16 MB model once, and lints in a worker off the main thread - A language per paragraph and per run, as LibreOffice and Word both carry it: the picker
follows the cursor and sets the paragraph or the selection, "For all text" takes the document
back to one language. Round-trips asfo:language/w:lang, a language we have no dictionary
for included, and each run is spelled against its own dictionary - Field shading (View ▸ Field Shadings) — LibreOffice's grey ground on every field, header
and footer included; it persists, and print and PDF drop it
Fixed
Sections and page geometry
- A table or an index can open a section, and a section ending inside a content control is found,
so a later section no longer renders the page setup of the one before it - Headings and the index are inset by their section's side margins, and a page-anchored frame is
placed from its own page's corner rather than the sheet's - A DOCX table takes the percentage width it declares, and a list item its own indent over the
numbering level's - An index is bounded by its own page's content band, and a long entry wraps instead of being cut
Import and export
- Word's
w:noBreakHyphenandw:softHyphenarrive as characters - A footer text box keeps its field — Word's page number among them — when the zone is flattened
- An embedded object whose doctype merely names a DTD is read; only entity declarations are refused
- A floating ODF frame stays where it sits in the text, and a paragraph reads its language from
Standardrather than the family default
Editing
- Enter after a forced page break no longer opens another page
- Pasted blocks reach a header/footer zone, a note and a text box instead of being wrapped or dropped
- Whole-word search bounds a word by Unicode, and a search jumps to its result
Security
- A hardening pass over the importers: archive expansion, XML nesting and entities, structural
integers, TIFF decoding, table formula references and encrypted containers are bounded or
validated, pasted remote image sources are dropped, and text box and stylesheet values sanitized
v0.4.0
The weight of this release is the cover page: frames placed against the page, shape colours out
of the document's theme, floating tables and drawing groups now arrive as the file draws them. A
saved document also carries the fonts it was opened with.
Added
- A saved file embeds the fonts it was opened with — TTFs under
Fonts/in ODF, obfuscated
.odttfparts in.docx— so it keeps its look on a machine without them; the font picker
lists the embedded families - A drawing group (
wpg:wgp) opens as the frames it holds - A floating table (
w:tblpPr) opens as the box that holds it, and both exporters write it back - Behind and in front of the text are offered as wrap modes on both frame toolbars and in the
ribbon's Arrange group, each pickable and draggable where it sits - A text box anchors its text top, middle or bottom (Shape Format), carried by both formats
- Every version tag publishes the built app as an archive on its GitHub release: unzip, point a
web server at the folder
Changed
- The header/footer layer draws one box per zone instead of two, 150 fewer placed boxes per pass
Fixed
Frames and shapes
- A frame placed against the page lands there rather than at its anchor paragraph
- A shape's fill and stroke resolve the document's theme, the per-channel modifiers included
- A frame behind the text can be picked again, and a right-click over one opens the context menu
- A line shape of no height draws again, and is saved flat instead of across its frame's diagonal
- Setting a wrap mode, resizing, rotating or editing a formula keeps the selection, so the
floating toolbar and the contextual tab stay up
Headers and footers
- A header zone is as tall as the row the file draws it in (
w:trHeight) - A
.docxzone keeps the space above its first line, so a tall header reopens at its height - A header/footer table's text and rule line reach the zone
- The whole margin band opens the zone on a double-click, and an empty zone's placeholder sits on
the line the caret lands on
Elsewhere
- Ctrl+K, the context menu and a double-click on a formula reach their dialogs from any ribbon tab
- A heading in a table cell keeps the spacing its file gives it
- A date or time format outside the picker's catalog stays a live field
- Enter keeps an empty line inside a columns section
- A long ribbon label widens its button instead of painting across its neighbour