Rutba Office

Timeline

Every release, in order

96 releases in 64 days, from the first download on 8 September 2026 to 2.24.0 on 10 November 2026. Each is described in the notes written the day it shipped, not summarised afterwards.

Every release is a beta and says so. An installed copy finds the next one on its own and tells you in the window you are working in; nothing on this page needs you to come back and look.

Some releases have a short film of what they brought, under their notes, and all of them are in one playlist on YouTube.

96

releases since the first

64

days from the first to the latest

15

apps in the one download

3558

engine tests behind the latest

  1. 10 November 2026

    2.24.0Latest10 November 2026

    Rutba Office 2.24.0 adds the Locker: choose a folder and its files are encrypted one by one, where they already are, so a cloud drive or a stolen laptop holds nothing readable.

    What changed

    • Folders
    • Opening
    • You decide what is locked
    • Working on a locked file
    • When it locks
    • Saves made while it is locked

    and 7 more in the notes

    The full notes for 2.24.0

    The Locker

    Open it from Home, make a password and write down the recovery key. A forgotten password with no recovery key means the files cannot be opened, and nobody at Rutba can get them back.

    • Folders. Add a folder and its files are locked in place. Each file is its own encrypted file beside the others, with its name shown or hidden as you choose. A file over 50 MB is kept in pieces, so a cloud drive uploads only the parts that changed.
    • Opening. Your password, your recovery key, or Windows Hello on this computer: PIN, fingerprint or face. The password opens a folder on any computer. Changing it leaves Windows Hello and the recovery key working.
    • You decide what is locked. New files in a locked folder are listed as not locked until you lock them. Lock or unlock one file, a subfolder or all of them. An unlocked file is an ordinary file in the same place.
    • Working on a locked file. Open it from the Locker and a temporary copy opens beside it, hidden. What you save is locked again and the copy is removed.
    • When it locks. After the idle time you set, on Lock now, when the computer sleeps or the screen locks, when Office quits, and when you close the Locker window. Clicking or typing in the Locker counts as use. The idle lock and closing the window wait while a document from it is open in an Office window. Any other lock removes the temporary copy from the disk and leaves that document open in its window, where it can still be read. Save still works. What you save waits there, unlocked and hidden, and is locked in when you next unlock.
    • Saves made while it is locked. Whatever is in that hidden folder at the next unlock becomes the file's new version, and the Locker does not check which program wrote it. The version before it is kept with the earlier versions, if the folder keeps them. To keep both, use Save as with a new name in the locked folder. The new file is listed as not locked until you lock it.
    • Sending one file. Send to someone locks a copy with a password of its own. Attach it to an email in Mail, or save it and send it any way you like. The other person presses Open a sent file in their Locker and needs no locker password of their own. Give the password a different way from the file.
    • Earlier versions. A folder can keep up to three earlier versions of each file.
    • Rename and delete. Select a file in the Locker to rename it or delete it. A renamed file keeps its earlier versions, though a file over 50 MB can lose its oldest one. Deleting removes those too, and cannot be undone. Close a file before you rename or delete it.
    • Rules. A list of patterns in a folder says which files to lock, such as only *.pdf.
    • Search. Find a file by name in the folder you are looking at.

    Every locked file, folder key file and keyring has its format version written in it. The format is described in FORMAT.md, and files locked with this version will open in every later one. A file made by a newer Rutba Office is reported as needing an update and is left untouched.

    The encryption is AES-256-GCM, with keys from scrypt and HKDF-SHA256, all from the standard crypto library that ships inside the app.

    Fixes

    • Mail drafts. Clicking from one draft to another now shows the second draft's own words. Before, the first draft's words stayed in the form, and Save or Send could put them under the second draft's recipients. A draft you changed is now kept in Drafts when you click away from it. A message clicked in Sent or any other folder now opens to read. Before, an open draft form stayed in its place. The form and the read view now have a Close button that leaves that place empty, and Close keeps your changes in Drafts.
    • AI tools. Turning the tools off and on again while an AI app is connected no longer leaves that app shut out of Mail, Calendar, Contacts and databases until it is restarted.

    Known limits

    • This is the Locker's first version, and it has not had an outside security review.
    • Its screens are in English only for now.
    • A locked file does not open by double-clicking it in File Explorer. Open it from the Locker.
    • Windows Hello is available on Windows only, and only if a PIN or similar is set up there. Resetting the Windows PIN can remove the Locker's key, and then you unlock with the password and turn Windows Hello on again.
    • Removing a plain file overwrites it first, but an SSD or a cloud drive's history can still hold old copies. Lock a folder before you sync it.
    • A sent file's name shows on the file and in the email. Only its contents are locked.

    Gate

    Run on Windows (x64) on 2026-11-10, before 2.24.0 was released: 3,777 engine tests, 3,766 passing and 11 skipped where a package they need is not installed; 12 of 12 editing checks; 2,543 of 2,543 application checks; and 16 of 16 windows painted clean.

    One check failed beside the others and passed when run again alone at the end of the same gate:

    • sheets: Error Checking lists D9 as its own error, with a formula and a reason

    The release on GitHub, with its installers →

  2. 9 November 2026

    2.23.09 November 2026

    Rutba Office 2.23.0 splits the Recorder and Live Broadcast into two panels, Set up and Record or Live, with named setups you can pass to someone else. Live Broadcast goes to ten kinds of destination, wide and tall at once, each turned on or off by its own icon. Home shows your apps as two sets, Office and Studio, and Video can make a file to fit a size limit.

    TouchedMailVideo

    What changed

    • Set up
    • Named setups
    • Pass a setup on
    • Record
    • Back soon and Sound only
    • Settings

    and 16 more in the notes

    The full notes for 2.23.0

    Recorder and Live Broadcast

    Both apps now open on two panels. Set up is where the scenes are made and Record or Live is where they are used, so the window you work in while recording is no longer the one you arrange things in.

    • Set up. Sources on the left, the frame in the middle, properties on the right and the scenes underneath. Sources snap to the edges, the centre and each other, and Alt drags freely. Place, size and shape can be typed.
    • Named setups. What you arrange is a setup, saved as it changes. Keep one for a webinar and another for a podcast, and move between them from the top of the window.
    • Pass a setup on. A setup saves as a .rstudio file with its pictures and music. Stream keys are never put in it. When a setup opens, its sources are found again by what they are, and one that has gone says Not found and offers Choose.
    • Record. The picture large, the scenes as live tiles with their numbers, and one bar at the foot with the microphone, computer sound, camera and Record. After Stop, a card says what was saved.
    • Back soon and Sound only are scenes of their own. They replace the Video switch with its None and Placeholder choices.
    • Settings now says what belongs to this setup and what belongs to every setup.
    • Video and Presentations record through this window too. The scenes, meters, Take Picture and global keys are the same everywhere. Each source can be kept as a file of its own. The old recording panel is gone, and Clip replaces the Region drawing. The pointer is always tracked when recording into Video or Presentations, and its layer can be deleted in Video, so the Pointer and clicks switch has gone.

    Live Broadcast

    • My streams is a list of what you have set up, with no addresses or keys on show. A key is only ever shown by its last four characters.
    • Ten kinds of destination: YouTube, Facebook, Twitch, TikTok, Instagram, LinkedIn, X, Kick, Rumble or any RTMP address.
    • An icon for each stream, above the picture. Turn one on or off at any moment, before or during the broadcast, and the others carry on.
    • One button. Go live becomes End broadcast, which asks first. Turn every icon off and you are OFFLINE with the broadcast still open and a copy still recording, so you can take a break and come back.
    • Wide and tall. Each is your choice, and with both on, both go out at once from encoders of their own at their own sizes. Set up has Wide and Tall over the frame, and a tall layout is kept for its scene. Keep a copy can record either shape.
    • Preview first, when you want it: changes wait in Next until you press Take. Going straight on air stays the default.
    • A web page as a source. Add an https address and it is drawn out of sight in a locked-down window of its own. A strip under the picture flips it with Previous and Next, or with a clicker's Page Up and Page Down. A page that stops answering shows Not available, never its error page.

    None of the ten destinations has been tried on a real account yet. Each was tested against an RTMP server on the same computer, so what a service accepts is still to be found out on that service. TikTok decides which accounts can stream this way.

    Video

    • Every destination is a card with the size it will come to for this project.
    • Compact (1080p at about 4 Mb/s) and Small (720p at about 2 Mb/s) make smaller files.
    • Fit under a size takes 50 MB, 100 MB, 287 MB or a number you type. It works the bitrate out from the project's length and the sound's share and aims about 8% under. It then reads the size of the file it wrote, and if that is still over it encodes again lower and tells you. If the size leaves too little for a clear picture at 1080p, it says so and offers 720p.
    • A picture so detailed that the encoder will go no lower is handed over with a sentence saying it is still too big. The sizes on the cards are worked out from the bitrate, so hard material can come out larger, and only Fit checks the file. A limit's MB here is 1,000,000 bytes, so Explorer shows a slightly smaller number.

    Home

    • Two sets, side by side. Office holds Mail, Calendar, Contacts, Talk, Documents, Worksheets, Presentations, PDF and Data Files. Studio holds Pictures, Image, Video, Recorder and Live Broadcast. Each has its own Start something row, and on a narrow window they stack with Office first.
    • The same two names, in the same order, appear in Choose apps, the installer, the Window menu and the macOS app list.

    Profiles

    • Switching keeps you in the same app. Choosing another profile from an app window's profile menu opens that app in that profile, and brings forward a window of it if one is open. All apps in that profile is there as an extra item.
    • A profile with a password asks for it first, then opens the app. If the app is turned off in that profile, its Home opens and says so, with Choose apps beside the notice.

    Mail

    • Sign in with Google for Gmail. While Google reviews the app, it only lets in the accounts added as testers, and a sign-in lasts 7 days.

    Fixed

    • Removing a profile. A profile removed just after it was closed could leave the list while its folder stayed on the disk. Removal now waits until the folder has gone, and says so if it will not go.
    • App packs in a check run. A pack could be refused at start with a message about the rutba scheme, when it picked up a second copy of the core from a folder above the packs. Packs now only take packages from their own folder or the core, and a refused pack fails the checks.

    Not yet

    • On Tall in Set up, dragging changes the tall layout, while the Place and size controls still act on the wide one.
    • Wide and Tall in Set up are for Live Broadcast, not the Recorder.
    • A web page's own sound plays to the computer's output and reaches a stream only through Computer sound.
    • Scene names stay in the language in use when the setup was made.
    • A recording into Video takes the sources shown when Record is pressed. Switching scene during the take does not change its layers.

    Gate

    Run on Windows (x64) on 2026-11-09, before 2.23.0 was released: 3,710 engine tests, 3,699 passing and 11 skipped where a package they need is not installed; 12 of 12 editing checks; 2,536 of 2,536 application checks; and 15 of 15 windows painted clean.

    3 checks failed beside the others and passed when run again alone at the end of the same gate:

    • word: in a table Tab moves to the next cell, Tab in the last cell adds a row, Shift+Tab goes back a cell
    • presentations: a screen recording goes to the slide by a scratch file, its poster drawn from the file, and the file is gone once the slide has it
    • video mp4: a 60-second 1080p timeline exports in under 60 seconds (from the press to the file in place)

    The fuzzer damaged 9,600 files at seed 9112: 5,564 opened and 4,036 were refused in a sentence, none faulted. The PDF reader's fuzzer damaged 1,800 at seed 9113: 1,592 opened and 208 were refused in a sentence, none faulted.

    The release on GitHub, with its installers →

  3. 3 November 2026

    2.22.03 November 2026

    Rutba Office 2.22.0 brings Live Broadcast, the fourteenth app: going live with several cameras, the screen and the sound, switching between the cameras' shots by hand, by who is speaking, or on a timer. The Recorder it grew out of is rebuilt as one studio in which a screen, a window and a camera are all handled the same way. Every app's menu now has the same order, the AI tools can record a window, and faults found while filming 2.21 are put right.

    What changed

    • The studio, live
    • A shot for each camera
    • Preview, Cut and Fade
    • Follow the speaker
    • Rotate
    • One studio, every source the same

    and 13 more in the notes

    The full notes for 2.22.0

    Live Broadcast

    Going live was the Recorder's Go Live. It is now an app of its own, with its own tile and its own icon, because a recorder that also streams did not say what it was for.

    • The studio, live. The same share, list and scenes as the Recorder, streamed to YouTube, Facebook, Twitch or any RTMP server at once, with the stream keys kept encrypted on this computer and a copy recorded meanwhile if you like. Live Destinations is in the app menu and in its settings.
    • A shot for each camera. With two cameras or more, say one on the front and one on the side, or one on each speaker, each camera has a shot of its own (Camera 1, Camera 2 and so on, keys 1 to 9) and the wide shot, Everyone, puts them side by side.
    • Preview, Cut and Fade. With Preview on, the shot you pick waits beside the one on air, where you can still move, clip and shape what is in it. Cut puts it on air at once and Fade dissolves it in over the shot before; Space takes it with the transition you chose.
    • Follow the speaker. Pair each shot with a microphone from the shot's own menu (with as many microphones as cameras, they are paired in order for you). A voice heard for a second and a half brings its shot up; a shot stays at least three seconds; when two speak at once, or nobody has for a while, the wide shot goes up. A shot you pick by hand takes over from it.
    • Rotate. A new shot every 3 to 30 seconds, through the shots you mark "In the rotation", or through the cameras' shots and the wide one.
    • Opened the first time, Live Broadcast starts from the Recorder's sources and settings. Anyone who had the Recorder has Live Broadcast too, until they turn it off in Choose apps or the installer.

    Recorder

    • One studio, every source the same. A screen, a window and a camera are each shown, clipped, shaped (rectangle, rounded or circle), placed, mirrored, started and stopped the same way, from the bar over the share. The list on the right holds them with their pictures: those on the share first, top first, then those not shown, then the sounds with their meters. Drag them, or use Alt with the arrow keys, to change the order.
    • The first line. Take Picture and Record side by side, Record red with its time while it records and saying whether it records video or sound; then the Video switch (video, none, a placeholder card) and the Sound switch (sound, none, music), then the settings.
    • Pictures at any time. Take Picture keeps what is shown, or the one source chosen, while it records too.
    • Recorder tools for AI apps. In the Office MCP, recorder_windows lists the windows and screens, recorder_start records one into a folder the AI tools may make files in, recorder_stop gives back the file, and recorder_state says how it is going. AI Tools has a Recorder row, Off until set to "Record windows and screens". Going live is never a tool.

    Every app: the app menu

    • One order everywhere. New, New from Template, Open and Open Recent (this app's files first, other apps' in a submenu); Save, Save As, Export and Print; the app's own items; then Window, Settings (theme, language, digits, profiles, AI Tools), Help (what's new, keyboard shortcuts, how-to films, contact, about) and Close Window last. Submenus open by hover, by click and by the arrow keys, mirrored for right to left languages.

    Fixed

    • Mail in the server's Junk. Mail a server filed in its Junk folder before Rutba Office first fetched it never showed. The server's Junk is now fetched from the start, and a server folder opened is asked for its mail.
    • Data Files receipts. A print template made by the wizard showed the record's number beside the table's own number, so a receipt read "Number 1 Number S1001". It shows the table's own number.
    • Data Files lists on a form. A long list's matches were drawn behind the fields under them, so a click picked the field underneath; and a list clicked again kept its words, so typing landed after them. The matches now come to the front, and a second click chooses the words.
    • The samples on any day. The trading, builder and garage samples had empty reports on some days, and the trading stock could go below nought. Each now has the work its reports print whatever day it is made.
    • Calendar time zones by the names in use today: Asia/Kolkata, Europe/Kyiv, Asia/Ho_Chi_Minh and the rest, where Asia/Calcutta and other replaced names were listed.
    • Worksheets. Home > Cells > Format no longer has a row reading "-".
    • Taskbar icons after an update. An app open while an update replaced its icon showed a blank page on the taskbar. Each tile now reaches Windows as a copy named by its content, so the new one is read.
    • Temporary folders. An embedded object's copy goes when Rutba Office ends, and a day-old folder left by a crash is swept at the next start.
    • Templates. A Custom Office Templates folder not made yet is an empty Personal list.

    Gate

    Run on Windows (x64) on 2026-11-03, before 2.22.0 was released: 3,558 engine tests, 3,547 passing and 11 skipped where a package they need is not installed; 12 of 12 editing checks; 2,464 of 2,464 application checks; and 15 of 15 windows painted clean.

    4 checks failed beside the others and passed when run again alone at the end of the same gate:

    • frame: resting on a ribbon button shows the suite's own tooltip, not the browser's
    • sheets: dragging from B3 to B12 after "=SUM(" makes the range, drawn dashed while it is dragged, and sums it
    • pictures: Rotate the picture redraws a PNG turned a quarter clockwise and saves it, and shows it turned
    • ai reach: Data Files' side panel says the database is Off for the AI tools until chosen, and Read and prepare chosen there is listed so in AI Tools

    The release on GitHub, with its installers →

  4. 28 October 2026

    2.21.128 October 2026

    Rutba Office 2.21.1 fixes faults found in 2.21.0. Import in Contacts and Calendar said "ENOENT" for any file chosen in the Open box, and now brings the file in. In Data Files, a table linked to a worksheet with a totals row showed its dates as numbers, and its sums carried long tails of digits. In Pictures, a drawing kept as an EMF or a WMF showed the picture icon on its tile, and Edit did nothing on the picture Pictures was opened with.

    TouchedWorksheetsMailCalendarContactsPictures

    What changed

    • Dates stay dates
    • Sums as the sheet shows them
    • An offer to print, every day
    • Drawings on their tiles
    • Edit on the first picture
    • A folder of folders

    and 4 more in the notes

    The full notes for 2.21.1

    Data Files: tables linked to a worksheet

    • Dates stay dates. A column of dates with a row such as Total at its foot was read as text, so each date showed as the number Excel keeps it as: 46027 instead of 2026-01-05. Each date is now read as a date, and the Total row keeps its word.
    • Sums as the sheet shows them. A cell that adds other cells, such as a week's takings, is read to the 15 figures Excel shows: 3588.39, not 3588.3899999999994.

    Data Files: the car dealer sample

    • An offer to print, every day. The car dealer's Part-exchange valuation prints the valuations still open, and on some days the sample was made with none left open, so it had nothing to print. The sample now always has a customer weighing an offer.

    Pictures

    • Drawings on their tiles. Windows gives no small picture for an EMF or a WMF, so Pictures draws the tile itself, and it could not read the drawing it was given. The tile showed the picture icon. In the grid and in the strip along the foot of the window, an EMF's or a WMF's tile now shows its drawing, as an SVG's does.
    • Edit on the first picture. Opened from File Explorer on a photo, Pictures' Edit on that same photo only brought Pictures back to the front. It now opens the photo in Image, as it does for every other picture in the folder.
    • A folder of folders. A folder holding only other folders said "nothing here" and offered All 0 beside its folders. It now says how many folders it holds, with no kinds to choose between.
    • A path with forward slashes. A picture opened by a path written as D:/Photos/beach.jpg read "0 of 12" and its stars and tags did not show on its tile. It now reads as the same picture opened from File Explorer.

    Mail

    • Import mail fits its box. With an Outlook profile holding two data files or more, each file's row under the account ran past the side of the Import mail box, so the box scrolled sideways and each file's size was cut off. The rows now end where the list does.

    Contacts and Calendar: Import

    • The file you choose comes in. Import in Contacts and in Calendar, from the ribbon, Ctrl+O, the app menu's Open or the empty page's Import, read only the drive letter of the file chosen and said "ENOENT: no such file or directory" instead of bringing its cards or events in. A .vcf, .csv or .ics chosen in the Open box now comes in. Opening one from File Explorer always worked.
    • Search contacts works. Typing in "Search contacts" left the box empty and the list as it was. What you type now shows in the box, and the list keeps only the cards that match it.

    Gate

    Run on Windows (x64) on 2026-10-28, before 2.21.1 was released: 3,520 engine tests, 3,509 passing and 11 skipped where a package they need is not installed; 12 of 12 editing checks; 2,440 of 2,440 application checks; and 14 of 14 windows painted clean.

    2 checks failed beside the others and passed when run again alone at the end of the same gate:

    • mail: deleting the middle of three selects the third and shows it in the reading pane, not an empty pane
    • mail index worker: while the archive indexes, another window's typed keys reach its page within 200 ms

    The release on GitHub, with its installers →

  5. 27 October 2026

    2.21.027 October 2026

    Rutba Office 2.21.0 opens many more kinds of picture. Pictures and Image read TIFF a page at a time, Photoshop documents, EMF and WMF drawings, and a run of smaller formats, and on Windows they show HEIC, JPEG XR and camera RAW through the codecs Windows already has. A chart or clip art kept as an EMF or a WMF is now drawn in documents, workbooks and presentations. Remove location takes the place out of a picture and keeps the camera's details. The installer is smaller, a slide show no longer flickers, and the message you are writing in Mail is laid out properly wherever it is open.

    TouchedPictures

    What changed

    • TIFF, a page at a time
    • Photoshop documents
    • EMF and WMF drawings
    • Smaller formats
    • HEIC, HEIF, JPEG XR and camera RAW
    • Image saves more

    and 10 more in the notes

    Plays from YouTube when you press play. Watch on YouTube
    The full notes for 2.21.0

    More pictures

    • TIFF, a page at a time. A TIFF opens in Pictures, Image, Documents, Worksheets and Presentations, compressed or not. A fax or a scan of several pages shows its pages in a strip, and Image opens the page you choose.
    • Photoshop documents (.psd and .psb) open in Pictures and Image as the one picture Photoshop shows.
    • EMF and WMF drawings open in Pictures, drawn as lines, shapes and words rather than as a flat picture.
    • Smaller formats: QOI, Netpbm (PBM, PGM and PPM), Targa, PCX, Radiance HDR and cursors open in Pictures and Image.
    • HEIC, HEIF, JPEG XR and camera RAW (DNG, CR2, NEF, ARW, ORF, RW2 and RAF) show in Pictures at the size of your screen, read by Windows' own codecs. HEIC needs the HEIF Image Extensions and HEVC Video Extensions from the Microsoft Store, and RAW needs the Raw Image Extension. A RAW picture with no codec shows the full-size JPEG its camera put inside it, and where there is nothing to show Pictures says which extension it needs.
    • Image saves more. BMP, ICO and TIFF sit beside PNG, JPEG and WebP, and Image opens an SVG at the size you choose.
    • A damaged picture is refused in a sentence, never a hang.

    Drawings in documents

    • Charts and clip art kept as EMF or WMF are drawn in Documents, Worksheets and Presentations where Office draws them, their lines, shapes, words and pictures in place. Before, a drawn EMF showed only its frame, and Documents and Worksheets drew none.
    • A TIFF or Targa picture inside a document is drawn too.

    Picture details

    • Remove location. On Image's export and in Pictures' Batch edit, Remove location takes out where a picture was taken and keeps the camera's details, beside Strip all.
    • Details kept on export. JPEG, PNG, WebP and TIFF exports keep the original's details, from a picture with layers too.
    • Details from more pictures. The camera's details are read from PNG, WebP, HEIC and AVIF beside JPEG and TIFF.
    • Windows' own stars and tags. The rating and keywords that Windows Photos, Explorer and Lightroom write into a picture show in Details beside Pictures' own, and Use takes them as Pictures' own.

    Fixes

    • Slide shows. A slide show stays full screen from slide to slide, and the taskbar no longer flickers as each slide comes. Reading View stays in its window.
    • Writing a message. The message being written is laid out the same in the reading pane, in full view and in a window of its own: To, Cc and Bcc are as wide as Subject, with their names beside them, and the message fills the space below. In a narrow reading pane the buttons wrap rather than run off the edge.
    • A smaller installer. The apps inside the installer are compressed harder, so it drops from 176 MB to 149 MB.
    • AI Tools removed and added back. Removing AI Tools while an AI app was connected left part of it behind, and adding it back then failed. AI Tools is now left whole while an app holds it, and Add takes the removal back.
    • AI Tools in an AI app installed from the Store. An AI app installed as a Windows app package could read an old copy of Office's settings and refuse every request. With Rutba Office running, the tools now take its settings from the running copy, and their log and connections show in the AI Tools window.

    Languages

    • The new messages are in Urdu, Arabic and Hindi.

    Not in this release

    • A Photoshop document's layers open in Image in a later version.
    • HEIC and camera RAW open in Pictures only, not yet in Image.
    • Gmail and Outlook sign-in, and Google Sheets as a source, wait for the sign-in registrations.
    • A drawing's text written by glyph number, as some programs write it, is left out.

    Gate

    Run on Windows (x64) on 2026-10-27, before 2.21.0 was released: 3,518 engine tests, 3,507 passing and 11 skipped where a package they need is not installed; 12 of 12 editing checks; 2,429 of 2,429 application checks; and 14 of 14 windows painted clean.

    The 419 public documents and the set of real business files open as they did in 2.20.0, every one that is not damaged or locked with a password, and each comes back unchanged when saved and opened again. 9,599 damaged files, made from good documents, drawings and pictures of every new kind, were each opened or refused in a sentence: none crashed or hung.

    One check failed beside the others and passed when run again alone at the end of the same gate:

    • word: in a table Tab moves to the next cell, Tab in the last cell adds a row, Shift+Tab goes back a cell

    The release on GitHub, with its installers →

    2.20.027 October 2026

    Rutba Office 2.20.0 is two releases in one. Office now installs only the apps you choose, and adds or removes the others later. Profiles keep different people or different work apart on one computer, each with its own passwords, protected by a password if you like. Mail now works at the server: marks, moves, deletes and folders reach your mailbox, and new mail arrives by itself. AI Tools reach mail, calendars, contacts and databases, one thing at a time, and nothing leaves the computer without your press. Documents, workbooks and presentations open and save Strict Open XML, and real documents from public sources open faster and look more as Office made them.

    TouchedWorksheetsMailCalendarContactsPictures

    What changed

    • Apps to install
    • Add or remove apps
    • Each app is a signed pack
    • Profiles side by side,
    • An optional password
    • Saved passwords in the profile's own keystore

    and 28 more in the notes

    Plays from YouTube when you press play. Watch on YouTube
    The full notes for 2.20.0

    Only the apps you choose

    • Apps to install. The installer asks which apps to install. Only the apps ticked are written, and only their kinds of file are registered. An update keeps the apps you have, and adds any app that is new in that version.
    • Add or remove apps on the launcher adds an app from this version's release, or from a folder of app files, and removes one at the next start. In a copy installed for everyone it asks for permission once.
    • Each app is a signed pack. An app's code is in its own pack, signed for this release; a pack that is damaged, changed, or from another version is refused. The launcher, Choose apps, the Open dialog and AI Tools offer only the apps installed, and an app not installed says so in plain words instead of failing.
    • The portable version carries every app.

    Profiles

    • Profiles side by side, each in its own folder, with a menu on the launcher to switch and manage them. The launcher's badge says whose profile is open.
    • An optional password seals a profile's saved passwords, recent files, calendars, contacts, Talk messages and mail. Setting, changing or taking off the password is finished at the next start if the computer stops halfway, with every message readable.
    • Saved passwords in the profile's own keystore. Every password a profile saves (mail, calendars, contacts, Talk, Data Files' engines and sources) is kept in a keystore that opens only in that profile, on this computer and this Windows account. A keystore copied elsewhere does not open: Office says so once and asks for each password again as it is needed. Passwords saved before are moved in once and the old copies removed.

    Mail at the server

    • Changes reach the server. Marks, moves, deletes, junk and the Sent copy are made at the server, and a change made offline is sent when the server is back.
    • New mail by itself, as Mail opens, every few minutes, and as it arrives where the server tells.
    • Folders are made, renamed and deleted at the server, and messages dragged onto a folder are moved there.
    • One-click unsubscribe sends its one request from Mail. Out of office on Gmail, Outlook, Yahoo and iCloud says that Rutba Office sends the replies, and the replies carry the subject they promise.
    • Import mail again. The same file imported again goes into the mailbox made from it and adds only what it did not hold.
    • Signature, Out of office and Remove say why they are greyed in All accounts.

    Calendar and Contacts

    • Invitations. Invite offers to send on save, an answer is remembered, and the reply's file shows its size.
    • Repeating events. One occurrence is edited on its own, and a reminder stays on a repeating event.
    • Time zones, with a second zone beside the first, and the small month moves the view.
    • Accounts are named by you and renamed later, and new cards go to the account's address book. A setup from before this version keeps new cards on this computer until a book is chosen.
    • CSV import is shown before it comes in, Outlook's older files read correctly, and Google's current headings are understood. Greyed buttons say why.

    AI Tools

    • One setting per thing. Each mail account, archive, calendar, address book, database and folder has its own setting for AI Tools, Off until you choose Read only or more. It is shown in the thing's own app and in AI Tools.
    • Nothing leaves without your press. What an AI app asks to send is shown in every window with Send, Keep as draft and Cancel.
    • A profile with a password is reached only while it is open.
    • The lines to copy into an AI app name a real start file and the profile they came from.

    Open formats

    • Strict Open XML. Documents, workbooks and presentations made in the ISO/IEC 29500 Strict form open, and stay Strict when saved. Save as Strict Open XML is in each app's menu, and Presentations gains Save as.
    • The Data Files format is published as an open specification, with a checker and sample files.
    • Databases from other programs. Another program's SQLite database opens read only, a newer design is refused in plain words, and what a reader does not know is kept.
    • OOXML notes describe what Word, Excel and PowerPoint files do that the standard does not, and what Rutba Office does in each.

    Real documents

    Office was checked against 419 public documents from government statistics offices and open-source test suites, and against a large set of real business files. Every file that is not damaged or locked with a password now opens, and comes back unchanged when saved and opened again.

    • Workbooks. A workbook with a chart sheet opens. A sheet whose formulas read whole columns of thousands of rows calculates in seconds, not minutes. An .ods styled to the sheet's edge opens in seconds. Charts made in Excel are drawn as Excel drew them, a scatter of many series and a pie of several among them.
    • Documents. A long manual opens in seconds, not over a minute.
    • Presentations. A picture kept as an EMF is drawn, and a picture filling a layout's photo placeholder is drawn where the layout puts it, cut to its shape. The hexagon is PowerPoint's.
    • Data Files. Words that start with "=" stay words.
    • Macro-enabled files and templates (.docm, .dotx, .xlsm, .xltx, .pptm, .potx) are saved under their own names, their macros kept.

    Documents, Worksheets and Presentations

    • Documents. A file whose styles hold only Normal is offered Title and Heading 1 to 3, written in when picked. The template row on Home is read again when the window has the focus back.
    • Worksheets. An error cell has a green corner and its tip says why. Insert Function shows what each function takes and does, and finds one by what it does. The template gallery's search looks among every template.
    • Presentations. New Slide offers the deck's own layouts. A shape is drawn by dragging or put down by a click, Shape Fill and Shape Outline offer swatches, a second Design Idea takes the first one's place, and one undo gives the slide back. Notes are typed under the slide, and Clear Narration says what it took away.

    PDF, Pictures, Image and Text recognition

    • PDF. A file protected with a password asks for it and opens, and keeps its protection. A placed signature, tick, date or note is moved by dragging and resized by its corners, and Split names the files it wrote.
    • Pictures. Stars and tags follow a picture renamed or moved on disk, the folder shows new files when you come back to it, and the slideshow starts in the window, with F11 for the whole screen.
    • Image. A picture with no layers takes back its changes one at a time, Levels' Auto sets only the tones, and the Move tool's click goes through a layer's clear parts.
    • Text recognition reads heavy bold figures and figures on a dark ground, keeps a ruled table's rows, and reads a till's VAT codes as codes.

    Data Files

    • A database's sources and engine links are read only once this computer allows them, and a kept password or key goes only to the host or address it was typed for.

    Languages

    • The new messages are in Urdu, Arabic and Hindi.

    Not in this release

    • Gmail and Outlook sign-in, and Google Sheets as a source, wait for the sign-in registrations.
    • A vector EMF picture shows its frame only, and Documents and Worksheets do not draw EMF pictures yet.
    • Choosing AI Tools' settings per AI app comes later.

    Gate

    Run on Windows (x64) on 2026-10-27, before 2.20.0 was released: 3,404 engine tests, 3,393 passing and 11 skipped where a package they need is not installed; 12 of 12 editing checks; 2,391 of 2,391 application checks; and 14 of 14 windows painted clean.

    One check failed beside the others and passed when run again alone at the end of the same gate:

    • mail index worker: while the archive indexes, another window's typed keys reach its page within 200 ms

    The release on GitHub, with its installers →

  6. 25 October 2026

    2.18.025 October 2026

    Rutba Office 2.18.0 is a big release for Documents, Worksheets and Data Files. Documents gains Tab as in Word, Modify Style, comments attached to the words they are about, and tracked changes reviewed one at a time. Worksheets gains filter arrows, charts that follow their cells, a Chart Design tab and PivotTable filters, and conditional formatting's Apply works again. Data Files forms can be laid out in Design, subform lines are changed where they stand, and reports choose their totals. A table can now be kept as a copy of an engine's, or read from a CSV file, a spreadsheet, another database or a web address. It also puts right the faults found while making the how-to films, in Data Files, Mail, Pictures, PDF, Image and Presentations.

    TouchedWorksheetsMailPictures

    What changed

    • The Letter template no longer freezes
    • Tab and Shift+Tab as in Word
    • Modify Style
    • Comments on the words they are about
    • Tracked changes one at a time
    • Page numbers on every page

    and 29 more in the notes

    Plays from YouTube when you press play. Watch on YouTube
    The full notes for 2.18.0

    Documents

    • The Letter template no longer freezes. Typing in a line that holds a tab no longer adds a tab with each key. A page break no longer grows a line break beside it, and a triple-click selects just the line.
    • Tab and Shift+Tab as in Word. At the start of a list item they move it a level in or out. In a table Tab goes to the next cell, and from the last cell it adds a row. Anywhere else Tab types a tab, and the keyboard stays on the page.
    • Modify Style. A right-click on a style in the gallery offers Modify Style and Update to Match Selection. Modify sets the style's font, size, bold, italic, colour and spacing; every paragraph with the style changes, and the change is saved with the document.
    • Comments on the words they are about. A new comment is attached to the words selected, or the word at the caret. Those words are marked on the page and saved as Word's comment range, and the comment is signed with the same name as tracked changes. A paragraph holding a comment can now be edited.
    • Tracked changes one at a time. Next and Previous select each change in turn, and Accept or Reject This Change acts on that change only. Accept All and Reject All work wherever the caret is.
    • Page numbers on every page. Page number and Of total in headers and footers write Word's PAGE and NUMPAGES fields, so every page, print and PDF shows the right number. Tab in the header and footer box types a tab.
    • Markdown kept as written. A Markdown file opened and saved with no edit comes back exactly as it was. A task item shows a check box to click.
    • Save as is in the Documents app menu, beside Open and Save as Template.

    Worksheets

    • Conditional formatting's Apply works again for every rule. Not equal to and Unique values now apply, and colour scales and data bars (blue, green, red) are offered. Data Validation's Apply works again too, with List, Whole number, Decimal and Text length.
    • Filter arrows. A filtered list, or a list given Data, Filter, has an arrow in each heading cell. It opens a menu that sorts by the column, keeps the values ticked in its list (with a search), or clears the column's filter.
    • Charts follow their cells. A chart redraws as soon as a figure it shows is edited, and the saved file keeps the figures it was drawn from. A chart inside a group does not follow its cells yet.
    • Chart Design. Selecting a chart shows a Chart Design tab where its title is set or removed. A new chart is made from the selected block when there is one. The axes and legend are not on the tab yet.
    • PivotTable. A new PivotTable is scrolled to with PivotTable Fields open beside it. The pane has a Filters area, its own Refresh button, and By month for a date field.
    • Save as, and old files. Save as is in the app menu. Ctrl+S on a file opened from WK1, XLS, DBF, MDB or another format Worksheets cannot write asks where to save it as a .xlsx, instead of showing an error.
    • Sort by the heading row. The Sort dialog names the columns from the list's heading row, that row is never sorted into the data, and A to Z and Z to A say which column they sort by.
    • Tables grow. A value typed in the row just under a table makes the table, and its filter, one row longer.

    Data Files: forms, subforms and reports

    • Form Design. A form's fields are moved and sized on its grid, by dragging or with the arrow keys and Shift. Labels are renamed, and fields taken off and put back, all saved with the form.
    • Subform lines. A subform's values are clicked and changed where they stand, and a new line typed at its foot is added to the record shown.
    • Report totals. A report's Totals chooses Sum, Average, Count or none for each number, whole numbers and a query's numbers included.
    • Delete asks first on a form.

    Data Files: copies and other sources

    • A copy of an engine's table. A table linked to PostgreSQL or MySQL can be kept as a copy in the file. It is worked on with the engine out of reach, and caught up with the engine when it is back, or at once with Sync now. When a record changed at both ends the engine's version is kept, and the one from here is listed beside it, never lost unseen.
    • Tables read from other places. A table can be read from a CSV file or a spreadsheet, from another Data Files database, or from a web address that answers with JSON, across its pages. It is read again every 15 minutes (or 5, or 60, or only when asked), kept in the file as a copy.

    Data Files: the rough edges

    • Dates and amounts on import. 12/04/2025 is read as 12 April, unless a day above 12 says otherwise, and Import says how it read the dates. Amounts with a money sign, or with two places throughout, come in as Currency, and a CSV's own ID numbers are kept as the key.
    • Workbooks import. Import takes .xlsx and .ods workbooks: every sheet as a table, or the one chosen.
    • Clear refusals. A type change a value does not fit names the records and values, and offers to clear them and make the change. A missing related record is named ("Products has no record 99, so Product cannot point at it"), and a delete says which records point at the one going.
    • Related fields by name. The datasheet shows a related field as the record it points at: Milk, not 1. A record named by nothing of its own is listed by its number and date, such as "Sale 17, 21/10/2026".
    • Queries. A criterion can name another field (<= [Reorder Level]). Decimals stands beside Total in the query designer, an average is headed "Average of Total", and Avg typed in an expression says how to get one. The SQL view keeps its text when it is left, and Save As keeps the query in the list with the others.
    • New records and print templates. The new-record row shows each field's default. A form with no print template says how to make one, a template's record chooser names its records, and Letterhead says what it is for.

    Mail

    • The next message after a delete. After a delete, archive, junk or move, the message below is selected and opened, as in Outlook, instead of the list starting again from the first message.
    • Sent appears at once. Sent shows among the folders as soon as the first message is sent, without opening the window again.
    • Import mail names files, not folders. Import mail names each file it found or is reading, not its full path through your own folders.

    Pictures, PDF, Image and Presentations

    • Pictures. A tile's right-click menu acts on the tile clicked, not the picture on show, and works with nothing on show.
    • PDF redactions. Apply Redactions lists the marked words properly, words from two lines apart included, and asks about marks not yet saved before the window turns to the redacted copy. Keep It Open leaves the original open, with the copy in a window of its own.
    • Image. Closing a picture whose edits are not exported asks first, and so does an Edit in Image window whose picture has not gone back. Export offers "{name} edited" beside the original, never the original's own name.
    • Presentations. The presenter view's Pause pauses the clock only, and the show goes on. Reset puts the clock back to 0:00 without going back to the first slide.

    Languages

    • The new messages are in Urdu, Arabic and Hindi.

    Gate

    Run on Windows (x64) on 2026-10-25, before 2.18.0 was released: 3,155 engine tests, 3,144 passing and 11 skipped where a package they need is not installed; 12 of 12 editing checks; 2,260 of 2,260 application checks; and 14 of 14 windows painted clean.

    The release on GitHub, with its installers →

  7. 23 October 2026

    2.17.123 October 2026

    Rutba Office 2.17.1 fixes how Data Files' print templates name a related record, keeps Mail's list in place when a message is deleted, and gives Data Files' side panel more room. Since 2.17.0 print templates printed a related record with all the words its lists find it by, so a payslip read "EMP-0143 Camille Sharma" beside the employee number, and a visitor pass "Ivan Cole Hollybrook Services 09/01/2026". On paper a record is called by its name again.

    TouchedMail

    What changed

    • Called by its name
    • A name before a code
    • A code when there is no name
    • Lists unchanged
    • Deleted, and the list stays
    • Room for your tables

    and 1 more in the notes

    The full notes for 2.17.1

    Data Files: print templates

    • Called by its name. A field on a print template that points at another table, such as a leave request's employee or a receipt's client, prints that record's name: Camille Sharma, not EMP-0143 Camille Sharma; Ivan Cole, not Ivan Cole Hollybrook Services 09/01/2026. The same goes for a name written in a template's text, such as Dear {Tenant}.
    • A name before a code. A record its lists know by a code, such as a landlord by the account CL-0004 or a tenant by TEN-0017, prints by the person's name when it has one: "Dear Zara Tanaka", not "Dear TEN-0017".
    • A code when there is no name. A record with no name, such as an invoice or a sale, still prints by what its lists show, such as its invoice number.
    • Lists unchanged. A form's lists, subforms and search boxes still find a record by all its words, so two people of the same name can be told apart there.

    Mail

    • Deleted, and the list stays. Deleting a message, or moving it to Archive, Junk or another folder, took the whole list away and drew it again, back at the top. Now that message leaves the list and the rest stay where they were, in a folder and in All accounts alike.

    Data Files: the side panel

    • Room for your tables. Import, Relationships, SQL, Link to a database engine, Protect this database and the rest no longer stand at the foot of the side panel over the list; they come after Print templates and scroll with it.
    • About this database online, by its name. A database with a page online, such as a sample business, shows a small globe beside its name at the top of the window, which opens that page.

    Gate

    Run on Windows (x64) on 2026-10-23, before 2.17.1 was released: 3,047 engine tests, 3,038 passing and 9 skipped where a package they need is not installed; 12 of 12 editing checks; 2,180 of 2,180 application checks; and 14 of 14 windows painted clean.

    10 checks failed beside the others and passed when run again alone at the end of the same gate:

    • recorder: the screen's take is a video as long as its clip, and with the computer's sound off no sound of it lands on the timeline
    • recorder: the camera's take carries the voice, on the same clock as the screen
    • recorder voice: Record Voice opens the recorder on Voice, with the microphone's level drawn as it goes and no picture, window list, camera or computer sound to set
    • recorder app: Take Picture's key takes a picture with the window minimised, and the button names the key
    • recorder app: Stop keeps one recording, named Recording and the time, with picture and sound, 1280 by 720, as long as it recorded and not the pause
    • recorder live: live on the destination with its key, the metadata, the H.264 and AAC configurations (well formed: an avcC record, AAC-LC) and a key frame first, every frame whole NAL units, frames on a rising clock, sound alongside, a copy recording, and LIVE on the picture
    • mail-invoice: the total pressed shows the part of the invoice it was read from, marked on the page
    • mail index worker: while the archive indexes, another window's typed keys reach its page within 200 ms
    • mail sign-in: a Gmail address says it signs in with Google's own page (OAuth 2.0), and the sign-in offers the browsers on this computer, the default marked
    • mail sign-in: the browser chosen is remembered for the next sign-in

    The release on GitHub, with its installers →

    2.17.023 October 2026

    Rutba Office 2.17.0 brings people and roles to Data Files, and links its tables to a database engine. A database can be protected so that each person signs in and sees and changes only what their role allows. A table can be linked live to PostgreSQL or MySQL, the engine keeping the records for every computer that links to it. Forms name the records they point at, and a list too long to hold is a box you search as you type.

    What changed

    • Protect this database
    • People and roles
    • See as
    • Held beneath everything
    • Change my password, Sign out
    • The file itself

    and 8 more in the notes

    The full notes for 2.17.0

    Data Files: people, roles and protection

    • Protect this database. From the side panel. The person who protects it becomes its Admin, who may do everything, and it asks who you are as it opens from then on.
    • People and roles. The Admin adds people, each with a role and a password of their own. A role may find each table hidden, read only, open to adding, changing, or deleting too, and may see only the records its person added. A field can be hidden or read only, and queries, forms, reports and print templates shown or hidden.
    • See as. The Admin sees the database as a role would, before anyone relies on it, and goes back with one click.
    • Held beneath everything. A query, a report, a print template and a list read only what the role may see. Who added, changed and deleted each record is kept.
    • Change my password, Sign out. From the side panel. A mail merge in Documents asks for a protected database to be opened in Data Files.
    • The file itself. It is not encrypted: the roles hold in Rutba Office, and Protect this database says plainly that anyone who copies the file can read it with another program.

    Data Files: tables linked to a database engine

    • Link to a database engine. PostgreSQL, MySQL or MariaDB: an address, a database and an account, then the tables to link. Microsoft SQL Server is listed as coming.
    • The engine keeps the records. Each change is saved straight to it, and every computer linked to the same engine works on the same records. The file keeps only how to reach the engine; the password is kept in this computer's protected store, never in the file.
    • Live. A linked table on screen is read again every 15 seconds, and changes only when the engine's records did, never while you type in a cell. Read again reads it at once.
    • As any table. Queries join a linked table with your own, and reports, print templates and lists read it. Its design is the engine's. An engine out of reach says why, and the rest of the database opens.

    Data Files: forms that name what they point at

    • Search a long list. A list with more choices than it can hold, such as a sale line's sale among thousands, is a box you type in to find one, showing the record it points at.
    • Records known by their names. A field that points at another table shows that record's words: a sale by its receipt number, an appointment by its time and patient, not by a field that repeats. Lists, subforms, reports and print templates all name it the same way.
    • Everything 2.16.1 fixed. Dates and times typed into a form are kept, lists show their words whole, labels keep their hyphens, and queries round their answers.

    Sample businesses

    • Template set 2.17.0 names each sample's records as its forms should, in every table that needed it.

    Gate

    Run on Windows (x64) on 2026-10-23, before 2.17.0 was released: 3,044 engine tests, 3,035 passing and 9 skipped where a package they need is not installed; 12 of 12 editing checks; 2,178 of 2,178 application checks; and 14 of 14 windows painted clean.

    One check failed beside the others and passed when run again alone at the end of the same gate:

    • mail-invoice: the total pressed shows the part of the invoice it was read from, marked on the page

    The release on GitHub, with its installers →

  8. 22 October 2026

    2.16.122 October 2026

    Rutba Office 2.16.1 fixes Data Files' forms: a date and time typed into a form is kept, the words in a form's lists are no longer cut, and a form's list of related records shows names, not numbers. A query can round its answers, and the sample businesses' averages now do. The newest sample businesses come in the download itself.

    What changed

    • A date and time is kept
    • Lists show their words whole
    • Names, not numbers
    • E-mail, not E mail
    • Known by its name
    • Rounded answers

    and 2 more in the notes

    The full notes for 2.16.1

    Data Files: forms

    • A date and time is kept. Typing a time into a form's date and time box, such as Signed in on a visitor's record, was refused with a note that it takes a date and a time, and nothing was kept. The box gives the time to the minute, which is now taken and kept to the second.
    • Lists show their words whole. The lists on a form, such as a visitor's host or a sale's customer, showed only the tops of their letters. They now have room for them.
    • Names, not numbers. A form's list of related records showed a field that points at another table as its number, such as a sale's lines with their products as 24, 20 and 10. It now shows that record's name.
    • E-mail, not E mail. A form's label keeps a hyphen inside a word, as the table and the datasheet do.
    • Known by its name. A record is now known by its Name or Title, or a field ending in Name, before a code such as a barcode, wherever a list, a report or a print template names it.

    Data Files: queries

    • Rounded answers. A query's column can say how many decimal places it shows, and its answer is rounded to them: an average spend of 15.08, not 15.0754455445545.

    Sample businesses

    • Averages rounded. The sample businesses' averages (a cafe's spend by hour, a takeaway's delivery minutes, a barber's walk-in waits, a guest house's occupancy and the rest) are rounded: money to two places, minutes, days and counts to one.
    • In the download. Template set 2.16.2, with the sample businesses' print templates that say which records they are for and when a part shows, comes with Rutba Office instead of arriving at the first update check.

    Gate

    Run on Windows (x64) on 2026-10-22, before 2.16.1 was released: 3,027 engine tests, 3,018 passing and 9 skipped where a package they need is not installed; 12 of 12 editing checks; 2,175 of 2,175 application checks; and 14 of 14 windows painted clean.

    The release on GitHub, with its installers →

    2.16.022 October 2026

    Rutba Office 2.16.0 opens your own profile again. 2.15.0 started on a new, empty profile, so your mail accounts and settings looked gone. They were not, and 2.16.0 goes back to them as they were. Mail gets an account manager with Remove beside Add account. Talk lets you remove and block contacts, withdraw an invitation and send it again. Data Files' print templates can say which records they are for and when a part shows, and can keep a running balance and group lines with subtotals.

    TouchedMailContacts

    What changed

    • Back where they were
    • What 2.15.0 kept
    • Checked from now on
    • Manage accounts
    • Remove account
    • Remove or block a contact

    and 9 more in the notes

    The full notes for 2.16.0

    Your settings and mail accounts

    • Back where they were. Rutba Office keeps your settings, mail accounts and everything else in its profile folder, Rutba Office. 2.15.0 asked for that folder a moment too early as it started, before it had named itself, and so opened an empty profile under another name. Nothing in your own profile was changed or removed, and 2.16.0 opens it again.
    • What 2.15.0 kept. Anything you set up while 2.15.0 was running is in the folder it opened by mistake, @rutba\office-desktop in your application data. It is left as it is, not merged and not deleted.
    • Checked from now on. A test now starts Rutba Office's first step in a real Electron and checks the profile it lands in, so this cannot come back unnoticed.

    Mail: an account manager

    • Manage accounts. Beside Add account, Manage accounts lists every account with its address, and opens its Signature, its Out of office and Remove from the same place.
    • Remove account. An account's own menu in the side panel offers it too. Rutba Office asks first, and you choose whether the mail stored on this computer for that account is deleted with it or kept.

    Talk: contacts and invitations

    • Remove or block a contact. A contact's menu takes them off your contacts. Blocking also stops them asking to be in contact again or reaching you. Both ask first.
    • Invitations you sent. Each one shows when it was sent and can be withdrawn.
    • Invite again. A couple of days after an invitation, Invite again sends it once more, the same way it went the first time: from your own mail account or through Rutba. Until then the button says when it can be sent.

    Data Files: print templates that say when and what

    • Only for some records. A template can say which records it is for, for example a delivery note for shipped orders only. A record you choose yourself is printed whatever the condition says.
    • Shown only when. Any part of a template, and any line of its totals, can show only when a condition holds: cash tendered and change for cash sales, a thank-you for card payments.
    • The lines you want. The lines can be kept by a condition, such as a statement's unpaid invoices, and found by any field of the record, not only the one that points at it.
    • A running balance. A column can add up as it goes, starting from an opening balance, and its last value is the closing balance.
    • Grouped with subtotals. Lines can go under a heading for each value of a column, with a subtotal under each group.
    • Formats. A value can be shown with a format of its own, such as two decimal places or a day/month/year date. An empty value prints as nothing.
    • In the designer. Only for records where, Show only when, Only lines where, Group by and Add a running balance are all in the print template designer.

    Gate

    Run on Windows (x64) on 2026-10-22, before 2.16.0 was released: 3,025 engine tests, 3,018 passing and 7 skipped where a package they need is not installed; 12 of 12 editing checks; 2,174 of 2,174 application checks; and 14 of 14 windows painted clean.

    2 checks failed beside the others and passed when run again alone at the end of the same gate:

    • presentations: a screen recording goes to the slide by a scratch file, its poster drawn from the file, and the file is gone once the slide has it
    • mail-invoice: the total pressed shows the part of the invoice it was read from, marked on the page

    The release on GitHub, with its installers →

    2.15.022 October 2026

    Rutba Office 2.15.0 keeps its templates up to date on its own, and brings them to what was made from them: a database made from one of Data Files' templates or samples is offered the newer design when one arrives, its records and your own changes kept. Data Files' tables and queries can be searched and filtered alike, saved queries open with their records, the side panel takes pinned favourites, and every template links to its page online.

    What changed

    • Fetched with the update check
    • Signed, then checked
    • From the next start
    • Only when Office is new enough
    • Your database remembers
    • Offered, never forced

    and 12 more in the notes

    Plays from YouTube when you press play. Watch on YouTube
    The full notes for 2.15.0

    Templates that keep up to date

    • Fetched with the update check. The same check that looks for a new Rutba Office looks for a newer set of templates: the gallery's documents, workbooks and presentations, and Data Files' ready-made databases and sample businesses. Turning automatic updates off turns this off too.
    • Signed, then checked. A set is used only when Rutba's signature on it is good and the download is exactly the one signed. Anything else is not kept, and Office goes on with the set it has.
    • From the next start. A new set is kept beside your profile and used the next time Rutba Office starts, so nothing changes under an open window. The template gallery says when one is ready.
    • Only when Office is new enough. A set made for a newer Rutba Office is not used: the gallery says which version it needs, and updating Office brings it.

    Data Files: a newer design for what you made

    • Your database remembers. A database made from a ready-made one or a sample business keeps which it came from, from which set of templates.
    • Offered, never forced. When the set in use has a newer design of it, the database says so as it opens: how many changes to its tables, queries, forms, reports and print templates. Update the design brings them in; Not now leaves it as it is.
    • Your records and your changes stay. New tables and fields are added and nothing is taken away. A query, form, report or print template you never changed is replaced by the newer one; one you changed keeps your version, with the newer one beside it, named (updated).

    Data Files: search and filter

    • The same for tables and queries. Above a table's records and a query's results: a search box for words in any column, and a filter on every column's heading.
    • By the column's type. Dates and numbers are filtered by a range, from and to, either end left open; words by Contains, Starts with or Is exactly; yes/no by Yes or No; and any column by Empty or Not empty.
    • By selection. Right-click a cell for Only this value or All but this value, as in Access.
    • Chips. Each filter shows as a chip with its cross; Clear all takes them off. The count says how many records were found.
    • Quick on large ones. A query's results are now read a page at a time, sorted, searched and filtered in the database, as a table's are.

    Data Files: queries open with their records

    • Run first. Opening a saved query shows its records and how many, with Run again and a clear Edit query button for its design.
    • Back to the results. The design keeps Run for trying a change, and Show results returns to the records.

    Data Files: pinned favourites

    • Pin what you use. Every table, query, form, report and print template has a pin, and Pin to the top in its menu. Pinned items are listed first in the side panel, above Tables, in the order you pinned them.
    • Fold the rest. Each section of the side panel folds away from its heading. Pins and folds are kept in the database, so it opens as you left it.

    Templates link to their pages

    • From the lists. Each template in the gallery, and each ready-made database and sample business on Data Files' start screen, has a small globe that opens its page on office.rutba.io.
    • From what you made. A database made from one has About this database online at the foot of its side panel; a document, workbook or presentation made from a gallery template has a link to its template's page in the status bar.

    Gate

    Run on Windows (x64) on 2026-10-22, before 2.15.0 was released: 3,019 engine tests, 3,012 passing and 7 skipped where a package they need is not installed; 12 of 12 editing checks; 2,167 of 2,167 application checks; and 14 of 14 windows painted clean.

    5 checks failed beside the others and passed when run again alone at the end of the same gate:

    • intro-video: the talking head records with its script on the teleprompter above the camera, scrolling as it records, and the take lands in its scene: the camera filling the frame, the voice under it
    • recorder: Pause holds the recording and its clock, and the global key resumes it
    • recorder: the screen's take is a video as long as its clip, and with the computer's sound off no sound of it lands on the timeline
    • recorder: the camera's take carries the voice, on the same clock as the screen
    • ocr-pdf: Find finds words on the scanned pages, English and Urdu, and marks them where they are

    The release on GitHub, with its installers →

    2.14.122 October 2026

    Rutba Office 2.14.1 fixes Mail's automatic-replies banner, which in 2.14.0 took a whole column of the window.

    TouchedMail

    What changed

    • The banner floats
    The full notes for 2.14.1

    Mail

    • The banner floats. While automatic replies are on, the line that says so, with Turn off, sits over the foot of the window. In 2.14.0 it took a column on the left and pushed your folders and messages aside.

    Gate

    Run on Windows (x64) on 2026-10-22, before 2.14.1 was released: 3,009 engine tests, 3,002 passing and 7 skipped where a package they need is not installed; 12 of 12 editing checks; 2,157 of 2,157 application checks; and 14 of 14 windows painted clean.

    One check failed beside the others and passed when run again alone at the end of the same gate:

    • mail index worker: while the archive indexes, another window's typed keys reach its page within 200 ms

    The release on GitHub, with its installers →

    2.14.022 October 2026

    Rutba Office 2.14.0 lets Mail's Out of office turn on your mail server's own automatic reply, so it answers with your computer off, draws Calendar's events over several days as one bar across them, and prints whole numbers in Data Files as Access does, a year as 2018.

    TouchedMailCalendar

    What changed

    • Your mail server sends the replies
    • Your filters keep working
    • Chosen for you, said plainly
    • Turned on elsewhere
    • Signed in safely
    • One bar

    and 4 more in the notes

    Plays from YouTube when you press play. Watch on YouTube
    Plays from YouTube when you press play. Watch on YouTube
    The full notes for 2.14.0

    Mail: Out of office at your mail server

    • Your mail server sends the replies. Where the server lets Office set it, Out of office turns on the server's own automatic reply, with your message, subject, start and end, and turns it off again. Replies go out with your computer off. Rutba's own mail server offers it, as do most that use Dovecot (ManageSieve).
    • Your filters keep working. A server runs one set of filters at a time. If you have your own, the reply runs first and then your filters, and turning the reply off gives your filters back as they were.
    • Chosen for you, said plainly. The dialog asks your server first and chooses it when it can. When it cannot (an imported mailbox, a server without automatic replies, an account signed in with Google or Microsoft for now), it says why and Rutba Office sends the replies itself while it is running, as before. It never does both.
    • Turned on elsewhere. Opened on another computer, the dialog shows the reply the server holds, and the banner's Turn off turns it off at the server.
    • Signed in safely. Office talks to the server over an encrypted connection only, with the same sign-in as your mail.

    Calendar: events over several days

    • One bar. In the month an event over several days is one bar across them, in the same row on each day, named where it starts and again where a week starts. A day's other events sit below it.
    • Each of its days. The list of the next thirty days shows it on every one of its days, saying which day it is: Day 2 of 3.

    Data Files

    • Whole numbers as Access prints them. A year prints as 2018, not 2,018, in print templates and reports. Amounts keep their separators.
    • No more NaN. A print template's lines column that names a field pointing at another table (a student, a product) prints that record's name, whatever type the template gives it.
    • Pictures of the samples. Each sample business has its picture on office.rutba.io, taken from the app.

    Gate

    Run on Windows (x64) on 2026-10-22, before 2.14.0 was released: 3,009 engine tests, 3,002 passing and 7 skipped where a package they need is not installed; 12 of 12 editing checks; 2,157 of 2,157 application checks; and 14 of 14 windows painted clean.

    The release on GitHub, with its installers →

    2.13.122 October 2026

    Rutba Office 2.13.1 fixes Data Files' start screen, which 2.13.0 cut off at both ends on most screens.

    What changed

    • The start screen scrolls
    The full notes for 2.13.1

    Data Files

    • The start screen scrolls. With twenty-five sample businesses the list is taller than most screens, and 2.13.0 centred it in a window that did not scroll, so New Database, Open, Recent and the ready-made databases sat above the window and the last samples below it. The screen now scrolls from New Database at its top to the last sample at its foot, and a short list is still centred.

    Gate

    Run on Windows (x64) on 2026-10-22, before 2.13.1 was released: 3,005 engine tests, 2,998 passing and 7 skipped where a package they need is not installed; 12 of 12 editing checks; 2,151 of 2,151 application checks; and 14 of 14 windows painted clean.

    One check failed beside the others and passed when run again alone at the end of the same gate:

    • video mp4: a 60-second 1080p timeline exports in under 60 seconds (from the press to the file in place)

    The release on GitHub, with its installers →

    2.13.022 October 2026

    Rutba Office 2.13.0 brings twenty-five sample businesses to Data Files, each a working database with a year of invented records or empty for your own, and print templates for what a business sends out: invoices, receipts, payslips and agreements, printed or saved as a PDF. Queries gain calculated columns written as Access writes them. Talk invites people by email, from your own address or from Rutba's, or by a link you send any way you like. Each app opens on New, its starter templates and the files you opened in it lately, and the templates now live in a repository of their own and say when they need a newer Office.

    What changed

    • Twenty-five businesses in five groups
    • With sample records, or empty
    • Everything a business asks
    • On office.rutba.io too
    • Invoices, receipts, payslips and agreements
    • Your letterhead

    and 12 more in the notes

    Plays from YouTube when you press play. Watch on YouTube
    The full notes for 2.13.0

    Data Files: sample businesses

    • Twenty-five businesses in five groups. The start screen offers a working database for each kind of small business Office is made for: shops and food (a corner store, a wine and deli shop, a cafe, a takeaway, a florist, a pharmacy counter); trade, making and building (a wholesaler, a workshop, a builder, a car dealer); services (a salon, a barber shop, a repair shop, a garage and MOT centre, a cleaning company, a consultancy, a gym); health, learning and community (a clinic, a training centre, a charity); and property, premises and staff (lettings, an estate agent, a guest house, a building's front desk, and HR, payroll and timesheets).
    • With sample records, or empty. Choose a business and then With sample records, a year or more of invented trading made up a day at a time, to learn from; or Empty, the same tables, queries, forms, reports and print templates, ready for your own records.
    • Everything a business asks. Each has its tables related, the questions that business asks as saved queries, a form for every table, reports, and print templates for what it sends out. Each carries a guide of its own, as full as Northwind's: what the business is, what each table holds, and what to try first.
    • On office.rutba.io too. The same databases, each with its guide, are on office.rutba.io/samples to download.

    Data Files: print templates

    • Invoices, receipts, payslips and agreements. A print template lays out one record as a business sends it: a heading, the record's fields, its lines (an invoice's items, a payslip's pay and deductions) with their totals, text with the record's values in it, and places to sign.
    • Your letterhead. The business's name, address and details come from a table of its own, at the top of every template.
    • Paper to suit. A4, Letter, A5, or an 80 mm or 58 mm till roll for a receipt.
    • Print or save as a PDF. Print a template from the Print templates list, or from a form, for the record shown: Print and PDF sit in the form's bar. Design one in the window: its blocks, their fields, its paper.

    Data Files: queries

    • Calculated columns. Write a column as Access writes one, Total: [Quantity]*[Price], with the functions people use: Round, Nz, IIf, Abs, Year, Month, Day, Weekday, Date, Now, DateDiff, Format, Len, Left, Right, Mid, UCase, LCase and Trim.
    • Formats as letters and invoices write them. Numbers as 00042, 0.00 or 1,234.50, dates as you choose, and the decimals each column shows.

    Talk: invite people

    • Asking emails them. Adding someone by their address also tells them by email. Choose how: from your own address in Mail, sent from your account with a copy in Sent; or from Rutba, from no-reply@rutba.io in your name, a few a day and a week, the dialog saying how many are left; or no email, when they use Talk already. Each request you made says how its person was told.
    • A link for friends. Invite with a link makes a link to send any way you like: copy it, or the message with it, send it with WhatsApp, Telegram, Facebook, X, LinkedIn, Mail or your own email app, or show it as a code a phone camera reads. Withdraw it when you are done.
    • Accepting. The email or the link opens Talk on the invitation, who it is from and their note, with Accept. A friend without Rutba Office accepts on the link's page with a free Rutba account, and finds you there when they install Office and sign in. A link that did not open Office can be pasted into Open an invitation.
    • Your contacts as you type. The address box suggests people from Contacts and Mail.

    Every app: where you start

    • New, starters and recent files. Each app opens on New, its starter templates and the files you opened in it lately, with the time each was last opened. Remove one from the list and it stays removed.

    Templates

    • Their own repository. The templates for Documents, Worksheets and Presentations, and the Data Files samples and ready-made databases, are kept in Rutba-Office-Templates, a public repository of their own, and come with Office as before.
    • They say what they need. A template made for a newer Office says so in the gallery and on the start screen, and asks for Office to be updated, rather than opening wrong.

    Fixes

    • What's new on a development build shows the notes it leads to.

    Gate

    Run on Windows (x64) on 2026-10-22, before 2.13.0 was released: 3,005 engine tests, 2,998 passing and 7 skipped where a package they need is not installed; 12 of 12 editing checks; 2,150 of 2,150 application checks; and 14 of 14 windows painted clean.

    The release on GitHub, with its installers →

  9. 21 October 2026

    2.12.021 October 2026

    Rutba Office 2.12.0 brings Rutba Data Files, the thirteenth app, for tables of records related to each other in one file, with queries you design, forms, printed reports and ready-made databases to start from, and Documents can merge letters from it. Talk signs in with your Rutba account. Presentations and Worksheets now format the words you select rather than the whole box or cell, Worksheets keeps styled words and .ods formatting through saving, Mail's Compose docks beside your messages or opens in a window of its own, AI Tools can answer AI apps on other machines when you choose, and the installer opens on the apps you use. 2.9.0, 2.10.0 and 2.11.0 were not published; their work is here.

    TouchedWorksheetsMail

    What changed

    • Tables in one file
    • Records
    • Relationships
    • SQL
    • Import
    • Queries you design

    and 25 more in the notes

    The full notes for 2.12.0

    Rutba Data Files

    • Tables in one file. A new database is one .rbase file on your computer. Make a table and it starts with an ID that numbers each record; add its fields in its design: short and long text, numbers, whole numbers, currency, dates and yes/no, each required, unique or with a default if you like.
    • Records. A table's records open a page at a time, so a large one opens at once. Add a record from the last row, double-click a value to change it, sort by a column, and pick records to delete.
    • Relationships. Relate a field in one table to a record in another, and the database keeps them from pointing at nothing. Choose whether deleting a record deletes the records that point at it.
    • SQL. Ask a question in SQL and see the answer as a table. A query here only reads, so nothing in the database changes.
    • Import. Bring in a CSV or TSV file, or an old file Worksheets reads (dBASE and FoxPro, Access, Lotus 1-2-3, SYLK, DIF), as tables of their own, with numbers, dates and yes/no read from their values.
    • Queries you design. Add tables to a query, choose its fields, and write criteria as Access does (> 10, Like "A*", Between two dates, Is Null); several criteria rows are alternatives. Sort it, and add Totals to group and sum, count or average. Run it to see the answer, see the SQL it stands for, and save it under a name.
    • Forms. New Form makes a form for a table: a label and a box for each field, a list of names for a field that points at another table, and the records that point at this one listed below. Move between records, change a value and it is kept, add a record or delete one.
    • Reports. New Report makes a page of a table's or a query's records, grouped by the field that points at another table (by customer, say), with the amounts added up for each group and for the whole. Choose the grouping, the order and the title. Print it, or save it as a PDF, on white A4 with the window's controls left out.
    • Ready-made databases. Start from Contacts, Inventory, Membership, Customers and sales, or Lending library, each with its tables related, a useful saved query (what is running low, renewals due, open opportunities, what is on loan), a form for each table and a report.
    • People by name. A record that points at a person shows their first and last name together, in a form's list and in a report.
    • Any SQLite database opens too. Data Files is one of the further apps: add it from Choose apps.

    Documents: mail merge from Data Files

    • A database as the recipient list. Select Recipients, Use an Existing List, takes a Data Files database. Choose one of its tables or saved queries, as Word asks of an Access file, and its fields are the merge fields: an amount with its two places, a yes/no as Yes or No.
    • Read, never changed. The merge only reads the database, and the letter remembers which table it merges.

    Mail: Compose where you want it

    • Docked or in its own window. A new message, a reply or a forward opens in the reading pane, like a message you read. Expand it to fill the window, or pop it out into a window of its own, and it keeps your words and attachments as it moves. Mail remembers where you like it.
    • Add account now sits at the foot of the folder pane, out of the way of your folders once you have an account.

    Talk: sign in with Rutba

    • Your Rutba account. Sign in with Rutba opens your browser at auth.rutba.io, where you sign in as you do everywhere on Rutba, and Talk connects. Your password stays with your browser and auth.rutba.io.
    • It keeps you signed in. Talk renews your sign-in before it runs out and connects again by itself. Signed out at auth.rutba.io, Talk says so and offers to sign in again. Sign out in Talk ends its sign-in.
    • Calls through Rutba's relay where two computers cannot reach each other directly.

    Presentations: format the words you select

    • Selected words alone. Select a few words in a box and Bold, Italic, Underline, size, colour, font and highlight apply to those words only. With nothing selected they apply to the word at the caret, or to what you type next. Ctrl+B, Ctrl+I and Ctrl+U do the same.
    • Words as they look while you type. The box shows its words in their own font, size and colour while you edit them, where they stand in the box.
    • Nothing lost. Editing a line keeps every word's own look. Before, a bold or coloured word in a line lost its look once the line was edited.
    • Esc keeps your words, as in PowerPoint. Insert Symbol puts its character at the caret in the box you are typing in.

    Worksheets keeps its formatting

    • Format a few words in a cell. Select words while typing in a cell and press Bold, Italic, Underline, a font, a size or a colour: those words change, and you see them as they look while you type. Enter and Tab put them in, Alt+Enter starts a new line in the cell, and Esc leaves the cell as it was.
    • Styled words in a cell. A cell whose words have looks of their own, a bold word, a red phrase or a superscript, shows them. Edit the words and each part keeps its look; Bold and the other font buttons on the cell reach every part, as in Excel.
    • .ods files. A workbook saved as .ods, or an .ods saved back, keeps its fonts, colours, fills, borders, alignment, merged cells, column widths and row heights, and opens again looking the same.

    AI Tools: this computer only, or other machines too

    • Your choice. AI Tools has a Who can connect setting. This computer only, the default, is as before: nothing listens on the network.
    • Other machines too. While the tools are on, Rutba Office also answers AI apps on other machines over the network, at the address AI Tools shows, to whoever has its key. The key stays hidden until you show it, and New Key shuts the old one out at once. Calls from web pages are refused.
    • Plainly said. The connection is not encrypted, and AI Tools says so: use it on a network you trust, or through a secure tunnel. Each app on the network is listed with its address, and the log says where each call came from.

    Old files

    • More dBASE. dBASE II tables and dBASE 7 tables open in Worksheets and import into Data Files; a dBASE 7 table was misread before.
    • Tested on public samples. Old spreadsheets and databases from public test collections (LibreOffice, Jackcess, dbf) are now part of the tests: each opens or is refused with a reason, and each dBASE table matches the fields and records its source lists.

    Installer

    • It remembers. The installer's Choose apps page opens with exactly the apps you have on, and the add-ons. Office keeps it up to date every time it starts.

    Gate

    Run on Windows (x64) on 2026-10-21, before 2.12.0 was released: 2,826 engine tests, 2,819 passing and 7 skipped where a package they need is not installed; 12 of 12 editing checks; 2,129 of 2,129 application checks; and 14 of 14 windows painted clean.

    2 checks failed beside the others and passed when run again alone at the end of the same gate:

    • video sound: a sound clip's volume reads in decibels and goes past 0 dB, and Lower the rest is a switch on the clip
    • mail index worker: while the archive indexes, another window's typed keys reach its page within 200 ms

    The release on GitHub, with its installers →

    2.8.021 October 2026

    Rutba Office 2.8.0 starts with the Office apps and lets you add the others when you want them. It brings Rutba Talk, the twelfth app, a Video with a library, sound and time tools and starters, a Safety switch in Mail, eleven more templates, and Worksheets opening old spreadsheets and databases: Lotus 1-2-3, dBASE, Access and more.

    TouchedWorksheetsMailVideo

    What changed

    • The Office apps first
    • In the installer
    • Messages and calls with your contacts
    • Relays
    • Not signed in yet
    • Library

    and 16 more in the notes

    The full notes for 2.8.0

    Choose your apps

    • The Office apps first. A new copy starts with Mail, Calendar, Contacts, Documents, Worksheets, Presentations, PDF and Pictures. Image, Video, Recorder and Talk are there to add from Choose apps whenever you like, and so is AI Tools. A copy that ran before keeps every app it had.
    • In the installer. The installer's Choose apps page has the Office apps ticked and the others not, on a first install, and shows your own choice after that. It speaks Urdu, Arabic and Hindi on systems in those languages.

    Rutba Talk

    • Messages and calls with your contacts. Someone becomes a contact once both of you have said so. Messages and calls go straight between the two computers; a small Rutba service only introduces them. A call shows a safety code that both of you can read out to check that nobody is in the middle.
    • Relays. Where two computers cannot reach each other directly, a call goes through a relay. You can pick one from a list, let Talk pick, or use your own.
    • Not signed in yet. Rutba sign-in for Talk is still being set up, and Talk says so. Until it opens, Talk connects only to a test server.

    Video

    • Library. A panel beside the preview keeps the media of the project to add again, with titles, word art, shapes, icons and ten sound effects made on your computer. Shapes, icons and word art are drawn as they will look. The library and the properties fold to a rail when you want the room.
    • Starters. Start a Slideshow, a Tutorial, a Vertical Social video or a Montage from the empty preview or the app menu. Each plays at once on stand-in pictures, and Replace Media puts your own picture or clip where a stand-in was, for the same time.
    • Sound. Fades as long as you ask, volume in decibels up to +12 dB with a limiter, Lower the rest for a voice over music, a crossfade between two sounds, and a level meter beside the playhead.
    • Time. A clip's speed from a quarter to four times, with its sound keeping its pitch unless you let it rise and fall. Shift a sound's pitch by semitones. Freeze Frame holds the picture at the playhead for two seconds, and Reverse plays a clip and its sound backward.
    • Pictures fade too. A picture clip can fade from black and to black.
    • Preview on Another Screen. The picture alone in a window of its own, full screen on a second display when there is one, in step with the editor.

    Old spreadsheets and databases in Worksheets

    • Lotus 1-2-3. A .wks or .wk1 opens with its labels, numbers, number formats, column widths and named ranges, and its formulas work again: @SUM, @IF, @VLOOKUP and the rest become the spreadsheet's own, counting from where it counts. A formula using something the spreadsheet has no word for is kept as its value, and Worksheets says which. A .wk3 or .wk4 opens with each of its sheets in a tab, its formulas kept as the values 1-2-3 last worked out.
    • dBASE and FoxPro. A .dbf opens as a sheet: the field names first, then a row a record, dates as dates, numbers with their decimals, and the memo fields read from the .dbt or .fpt beside it. Deleted records are left out, and Worksheets says how many.
    • Access, read only. An .mdb or .accdb opens with a sheet for each table. Pictures and attached files are left out and counted; forms, reports and code are not read. A database with a password is refused with what to do.
    • SYLK and DIF. The old exchange formats open with their values, and SYLK's formulas too.
    • Saved as .xlsx. Each of these opens as a workbook to save as .xlsx. They are in the Open dialog, and Office does not take them over from the programs that open them now.

    Mail

    • A Safety switch. Each message has a Safety switch at the top. With Safety off you can copy a link, copy a picture or save it from the message. View source shows the message exactly as it came.

    Recorder

    • Go Live keeps up. When a destination falls behind, the picture's bitrate comes down until it catches up, and goes back up after a calm spell. The status bar says when it has.
    • Take Picture from anywhere. Ctrl+Shift+F8 takes a picture while Recorder is open, minimised too.

    Templates

    • Eleven more. A cover letter, a memo, a meeting agenda and a project proposal; an expense report, a stock list, a weekly planner and a grade book; a quarterly review, a lesson and a portfolio. That makes 27.
    • On the web. Templates on the web, in the gallery, opens office.rutba.io/templates in your browser, where every template can be downloaded. The suite itself fetches nothing for it.

    Also

    • Each app loads its own part. A window loads only what its app needs, so the first window opens with less to read.

    Gate

    Run on Windows (x64) on 2026-10-21, before 2.8.0 was released: 2,787 engine tests, 2,780 passing and 7 skipped where a package they need is not installed; 12 of 12 editing checks; 2,089 of 2,089 application checks; and 13 of 13 windows painted clean.

    The release on GitHub, with its installers →

    2.6.021 October 2026

    Rutba Office 2.6.0 lets you choose which of the eleven apps you want. Recorder takes still pictures and records a part of a screen, and Mail writes a message in the whole window when you want the room.

    TouchedMail

    What changed

    • Choose apps
    • Asked once
    • In the installer too
    • Your files go where you want them
    • Region
    • Take Picture

    and 2 more in the notes

    The full notes for 2.6.0

    Choose your apps

    • Choose apps. The launcher has a Choose apps button beside its list of apps. Turn an app off and its tile, its templates and its place in the template gallery go. It stays installed, so turning it on again is one click, with no download.
    • Asked once. On first start a card says all the apps are on, and offers to keep them all or choose fewer. It does not come back.
    • In the installer too. The Windows installer has a Choose apps page after the folder. Office takes that choice on its first start. A newer installer shows the boxes as you last left them, and an update keeps your choice.
    • Your files go where you want them. On Windows, an app turned off stops opening its kinds of file. Turn off Worksheets, for example, and .xlsx files go back to whatever opened them before. Turned on again, Office takes back only the kinds of file nothing else has taken since.

    Recorder

    • Region. Choose Region, pick a screen or a window, and drag over the picture to record only that part of it. Drag again for a smaller part, or choose Whole picture to record all of it.
    • Take Picture. Keep a still picture as a PNG beside your recordings. Take what is shown, with the camera corner, the title and the logo. Or take the screen, the window or the region at its own size, or the camera alone. Take it at once or after 3, 5 or 10 seconds, with a countdown on the picture. Then open it, edit it in Image, copy it or show it in its folder. It works while you record or stream too.

    Mail

    • Full view for writing. A new message, a reply, a forward or a draft can fill the whole window instead of the box over the mailbox. Choose Full view, or Smaller to go back. What you wrote, the formatting and the attachments stay, and the next message opens the way you left it.

    Also

    • Passwords on Linux. A Linux desktop with no keyring now stores no passwords or keys at all, as a computer with no keystore already did, instead of keeping them under a fixed key. This is ready for the Linux builds; the published downloads are still Windows only.

    Gate

    Run on Windows (x64) on 2026-10-21, before 2.6.0 was released: 2,729 engine tests, 2,722 passing and 7 skipped where a package they need is not installed; 12 of 12 editing checks; 2,038 of 2,038 application checks; and 12 of 12 windows painted clean.

    The release on GitHub, with its installers →

  10. 20 October 2026

    2.5.020 October 2026

    Rutba Office 2.5.0 adds Rutba Recorder, an eleventh app that records your screen, camera and voice as one finished video and can stream it live to YouTube, Facebook, Twitch or any RTMP server. Video now plays a video file before it edits it and records a voice on its own, and Mail opens a draft to be finished and a message in a window of its own.

    TouchedMailVideo

    What changed

    • An app of its own
    • Scenes
    • Sources
    • A title and a logo
    • One finished file
    • Stream to several places at once

    and 8 more in the notes

    The full notes for 2.5.0

    Rutba Recorder

    • An app of its own. Recorder has its own tile in the launcher and its own window: the scenes on the left, the picture as it is recorded in the middle, and the sources on the right.
    • Scenes. The screen with the camera in a corner, the screen alone, the camera alone, the two side by side, and a Be right back card. Change the scene at any time, while it records too.
    • Sources. A screen or a window; the camera, round, rounded or square, in the corner you choose, mirrored or not; the microphone and the computer's own sound, each with its level.
    • A title and a logo. A name and a line under it across the foot of the picture, and your logo in a corner.
    • One finished file. Record makes one video at 720p or 1080p and 24, 30 or 60 frames a second, written as it goes, so a recording cut short by a crash still plays. Pause holds it, and a key stops it from anywhere. When it stops, Play it, edit it in Video, or show it in its folder.

    Go Live

    • Stream to several places at once. YouTube, Facebook and Twitch, with their servers filled in, or any RTMP server. Paste the stream key the platform gives you once.
    • Your keys stay safe. A stream key is kept encrypted by Windows on this computer and is sent only to the server it belongs to. The window shows only its last four characters.
    • Made for live. The picture is encoded on the graphics chip where there is one, at a steady bitrate with a key frame every two seconds, as the platforms ask. A destination that drops is tried again by itself. Each destination's state shows under the picture, with LIVE on it.
    • A copy on this computer. While it streams, Recorder can record a copy at the same time, on by default.
    • Nothing connects until you press Go Live, and only to the servers you set up. The box says how much upload the streams need.

    Video

    • Play first. A video or a sound file opened in Video plays in a player: speed, repeat, captions from a subtitle file of the same name beside it, picture in picture, full screen, and the files before and after it in the folder. Space, J, K, L, the arrows, M, F and C work as in other players. Edit Video puts it on the timeline. A new video and a .rvid project open in the editor as before.
    • Record Voice. The recorder records your voice alone, with no picture, and Video puts it on a sound track at the playhead. Record Voice is on the Home and Insert tabs.

    Mail

    • A message in a window of its own. Double-click a message in the list to open it in its own window, with the ribbon to answer, file or delete it.
    • Drafts open to be finished. A draft opens in the message editor with its recipients, subject, formatting and attachments, instead of in the reading pane. Saved again, it replaces itself; sent, it leaves Drafts. Save draft now keeps Cc, Bcc, the formatting and the attachments.

    Gate

    Run on Windows (x64) on 2026-10-20, before 2.5.0 was released: 2,726 engine tests, 2,719 passing and 7 skipped where a package they need is not installed; 12 of 12 editing checks; 2,030 of 2,030 application checks; and 12 of 12 windows painted clean.

    The release on GitHub, with its installers →

  11. 17 October 2026

    2.4.017 October 2026

    Rutba Office 2.4.0 adds AI Tools. An AI app on this computer can now make and read documents, workbooks, presentations and PDFs with Rutba Office, in folders you choose. The tools are off until you turn them on, for this session or always, and nothing listens on the network.

    What changed

    • Off unless you turn them on
    • In folders you choose
    • Only this computer
    • What they do
    • Nothing is overwritten or deleted
    • See who is connected

    and 1 more in the notes

    The full notes for 2.4.0

    AI Tools

    • Off unless you turn them on. In any app, open the app menu and choose AI Tools. The setting is Off, On for this session (until Rutba Office closes) or Always on. It is read again for every call, so turning the tools off stops the next call.
    • In folders you choose. Turning the tools on asks for a folder first. If you cancel, they stay off, and no folder is made for you. You can add more folders or remove any. A path outside them is refused, even one that leads out through a link.
    • Only this computer. The AI app starts the tools itself and talks to them through standard input and output (the Model Context Protocol, MCP). Nothing listens on the network, so no other machine can connect. A test fails the release if the tools ever bring in a networking module.
    • What they do: - list the folders and the files in them; - read a document, a workbook, a presentation, a PDF or a text file; - make a document (in a theme, with headings, lists and tables), a workbook (formulas too) or a presentation; - start from a template; - make a PDF of a document; - make a new PDF from pages of others; - read the words in a PNG picture, on this computer.
    • Nothing is overwritten or deleted. A file the tools make must have a name of its own.
    • See who is connected. While the tools are on, every window's title bar shows a badge, with a count when an AI app is connected. Click it to see each app's name and version, that it is on this computer, when it connected and its last call. AI Tools also lists what the tools have done.
    • Connect an app. AI Tools shows the lines to add to an AI app's MCP servers, with a Copy button. docs/AI-TOOLS.md has the details.

    Gate

    Run on Windows (x64) on 2026-10-17, before 2.4.0 was released: 2,712 engine tests, 2,705 passing and 7 skipped where a package they need is not installed; 12 of 12 editing checks; 1,997 of 1,997 application checks; and 11 of 11 windows painted clean.

    The release on GitHub, with its installers →

    2.3.017 October 2026

    Rutba Office 2.3.0 lets you work on Video's preview itself. Anything that shows there can be picked, moved, resized and turned to any angle. Add Media asks where files go. The In and Out points and markers drag along the timeline. Tracks split, insert, move, solo and lock. Every window now says it is Rutba Office. A link in an email opens in your browser, and junk's links ask first.

    TouchedMailVideo

    What changed

    • A link opens in your browser
    • Links that might be traps ask first
    • The warning
    • Save after Encrypt with Password
    • Pick anything you can see
    • Move, resize and turn it there

    and 9 more in the notes

    The full notes for 2.3.0

    Every window says it is Rutba Office

    • Every app's title bar begins with the Rutba Office mark and name, then the app's own. In a narrow window only the mark stays. The launcher shows the mark itself.

    Mail: links

    • A link opens in your browser. Before, a click on a link in a message turned the reading pane blank. Now the link opens in your browser and the message stays where it was. A mailto: link starts a new message to that address. Any other kind of link is not opened, and Mail says so.
    • Links that might be traps ask first. Mail warns before opening a link in any of these cases: - the message is in Junk; - the message failed its sender's checks (SPF, DKIM, DMARC); - the link's words name a different site from the one it goes to; - the address is a bare number, a lookalike name, or hides its real site behind an @.
    • The warning shows the address in full, with Open in Browser, Copy Link and Cancel. Cancel is the default.
    • The message still runs no scripts. Only a click can follow a link, and nothing loads into the reading pane.

    Speed

    • Save after Encrypt with Password. Save no longer holds every window for a fifth of a second when it comes just after Encrypt with Password. The password's key is worked out on its own thread first, which Save, Export and the recovery copy now wait for.

    Video: the preview

    • Pick anything you can see. A click on the preview picks the clip, still, title or shape under the pointer, the top one first, and picks it on the timeline too. The picked one wears a frame turned with it.
    • Move, resize and turn it there. A drag inside moves it. A corner grip resizes it from the opposite corner, which stays where it stands even when the clip is turned. The round grip above turns it to any angle, and Shift turns it in steps of 15 degrees.
    • Picture in picture for any clip or still. A clip or still that fills the frame has corner grips only, and the first drag of one makes it a picture in picture. The inspector's Picture in picture button does the same, and Fill the whole frame puts a still back.
    • Position and size in numbers. The inspector has across, down, width, height and angle for every picture, plus opacity for titles as well as pictures, and a blend mode (Multiply, Screen, Overlay, Darken, Lighten, Difference). The export draws what the preview shows, because both are drawn by the same painter.
    • A clip on a locked track is not picked on the preview.

    Video: the timeline

    • Add Media asks where. Add Media puts files after the clips on the picked track (V1 when nothing is picked). Add on a New Track puts them on a track of their own above the others, from the playhead. Insert at Playhead splits the clip under the playhead and moves what follows later to make room, its sound with it. Several sound files now go one after another on one track; each used to get a track of its own.
    • In, Out and markers that drag. The In and Out points are flags on the ruler that drag along it, snapping to clip edges and the playhead (Alt frees them). They also show on the preview's scrub bar, where they drag too. A marker drags along the ruler; a click without a drag still takes the playhead to it.
    • Tracks. Edit, Tracks has these commands: - Split Track: the clips on the picked track from the playhead on move up onto a new track of their own, so clips can sit next to each other on two tracks. - Insert Track and Move Track Up and Down: each track keeps its state as it moves.
    • Solo. Each track has a solo button. While a track is soloed, the other tracks of its kind are left out of the preview and the export.
    • Locks hold. A locked track's clips are kept by every edit (split, delete, trim, the inspector), with a message that says why. Before, locking only stopped dragging.

    Presentations and accessibility

    • Slide strip and Design gallery. Each slide in the strip and each theme and variant in the Design gallery is now a picture with its button beside it, not inside it. The words drawn in a picture are no longer taken for the button's label, so a screen reader or voice control hears the button's name. Clicks, hover tips and the keyboard ring are as before.
    • axe-core 4.14.0. The accessibility audit moves to 4.14.0, which checks this rule (WCAG 2.5.3, label in name). Every window passes it.

    Gate

    Run on Windows (x64) on 2026-10-17, before 2.3.0 was released: 2,703 engine tests, 2,696 passing and 7 skipped where a package they need is not installed; 12 of 12 editing checks; 1,989 of 1,989 application checks; and 11 of 11 windows painted clean.

    The release on GitHub, with its installers →

  12. 16 October 2026

    2.2.016 October 2026

    Rutba Office 2.2.0 moves the suite onto Electron 44 and newer versions of the libraries it is built on, for the browser engine's security fixes and the libraries' own. Nothing you use changes: every app, file and setting works as in 2.1.1, and the whole release routine ran on the new versions before release.

    What changed

    • Electron 43.4.1 to 44.7.2
    • Mail's libraries
    • The build
    • Smaller updates
    • The accessibility audit stays at axe-core 4.13.0
    The full notes for 2.2.0

    What moved

    • Electron 43.4.1 to 44.7.2, the browser engine and runtime every window runs in, with its security fixes. Electron 44 rebuilt the clipboard on the web's own Clipboard API; copy and paste of words, formatted text and pictures go through it now, with nothing changed in how they behave.
    • Mail's libraries: imapflow 1.7 to 2.4.3, which reads and keeps accounts in step over IMAP, and nodemailer 9 to 10.1.1, which sends. Both are rewrites with the same calls, so accounts, sign-in kinds and sending are unchanged.
    • The build: esbuild 0.25 to 0.28.2, which bundles the windows; the bundle comes out the same size.
    • Smaller updates: React 19.3.1 and mailparser 3.9.39.
    • The accessibility audit stays at axe-core 4.13.0. 4.14.0 reads the words drawn inside a picture on a button as part of the button's label, and finds that Presentations' slide thumbnails and Design gallery pictures do not repeat those words in their names. The buttons are as they were in 2.1.1. They are being remade so each picture stands beside its button rather than inside it, and the audit moves to 4.14 with that change. Meanwhile each picture is already kept from screen readers, so only the button's name is read.

    How it was proven

    Electron 44 changes the clipboard and the runtime beneath every window, so 2.2.0 carries nothing else, and any fault can be traced to the move. The gate below ran on Electron 44 with every window check, the clipboard checks among them. Both fuzzers ran on the new libraries. The installers were built before the tag, and the installed copy was started from outside the source folder. After publishing, the upgrade workflow updates 2.1.1 to 2.2.0 installed, portable, and while the app is closing or left open.

    The gate now lets the machine settle before the performance budgets. The engine tests just before them write thousands of files that the virus scanner goes on reading, and that held the main thread past its budget in two runs, where the same budgets passed on their own every time. The gate waits until the processors have been under a quarter busy for three seconds, up to two minutes, and says how long it waited.

    Gate

    Run on Windows (x64) on 2026-10-16, before 2.2.0 was released: 2,689 engine tests, 2,682 passing and 7 skipped where a package they need is not installed; 12 of 12 editing checks; 1,961 of 1,961 application checks; and 11 of 11 windows painted clean.

    The release on GitHub, with its installers →

    2.1.116 October 2026

    Rutba Office 2.1.1 fixes rotated objects. When a picture, shape or text box was turned, its selection frame and handles stayed upright, so clicks and drags missed the object; now the frame turns with it in Documents, Worksheets, Presentations and Image.

    What changed

    • The frame turns with the object
    • Resizing follows the object's own sides
    • More Rotation Options
    • Documents
    • Worksheets
    • Presentations

    and 1 more in the notes

    The full notes for 2.1.1

    Rotated objects

    • The frame turns with the object. A turned shape, picture or text box shows its selection frame, its eight handles and its rotate handle turned with it about its centre, and the handles' cursors turn too. A click inside the turned outline takes hold of it; a click in the empty corner of its old upright box does not.
    • Resizing follows the object's own sides. Dragging a handle of a turned object stretches it along its own sides, with the opposite handle staying where it is, as Word, Excel and PowerPoint do. Before, the object slid away from the handle and, after a few drags, could not be taken hold of at all.
    • More Rotation Options sets the angle in degrees in Documents (Layout, Rotate), Worksheets (Page Layout, Rotate) and Presentations (Arrange, Rotate).
    • Documents: a picture or shape in line with the text gets the rotate handle too, and the drawing follows its frame while a handle is dragged.
    • Worksheets: on a sheet laid out right to left the frame stands on the turned drawing instead of turning the other way, and it is drawn over the drawing rather than under it. Charts still do not turn, as in Excel.
    • Presentations: the text editor opens turned with its shape, a turned or flipped group or picture keeps its frame, the dashed frame round several shapes follows their turned outlines, and a click on the slide where no shape is lets go, as PowerPoint does.
    • Image: a turned layer scales from its corner grip with the opposite corner staying put, where it drifted by as much as 85 pixels.
    • The angle is kept in the saved file, and Undo and Redo restore it. Each app has a new window check (rotate-frame-word, rotate-frame-sheet, rotate-frame-deck, rotate-frame-image) at 30, 90 and 135 degrees.

    Gate

    Run on Windows (x64) on 2026-10-16, before 2.1.1 was released: 2,689 engine tests, 2,682 passing and 7 skipped where a package they need is not installed; 12 of 12 editing checks; 1,961 of 1,961 application checks; and 11 of 11 windows painted clean.

    The release on GitHub, with its installers →

  13. 15 October 2026

    2.1.015 October 2026

    Video exports its own MP4 at twice real time; Image keeps selections, carries masks with their layers and takes typing on the picture; every app passes an accessibility audit and works from the keyboard, with a screen reader and in High Contrast; and updates no longer stop because Rutba Office was still closing.

    TouchedMailImageVideoUpdates

    What changed

    • Export writes the MP4 itself, faster than real time
    • Selections are kept in the project
    • A mask follows its layer
    • Words are typed on the picture
    • An audit of every window
    • The keyboard alone

    and 3 more in the notes

    The full notes for 2.1.0

    Video

    • Export writes the MP4 itself, faster than real time. The picture and the sound are encoded by the computer's own hardware (H.264 and AAC) and written to the file as they are made, by a writer of the suite's own. A 60-second 1080p timeline exports in about 28 seconds on the reference laptop. Where a codec is not available the old way remains, by itself.

    Image

    • Selections are kept in the project. The selection on the canvas, and each selection an adjustment layer was made with, are saved in the .rimg file and come back with it; Load Selection puts one back.
    • A mask follows its layer. Scale, turn, Free Transform and Perspective carry a layer's mask with it, as Photoshop links them, and Undo takes both back together.
    • Words are typed on the picture. A double-click on a text layer opens it in place over the picture, with the caret, selection and typing in any language, and a bar for the font, size, bold, italic, alignment and colour; each spell of typing is one step for Undo.

    Every app: accessibility

    • An audit of every window. Every app's window, every ribbon tab, the app menu and the main dialogs pass axe-core's checks for WCAG 2.2 at levels A and AA with nothing serious or critical: every control named, every field labelled, landmarks, contrast, and targets at least 24 pixels.
    • The keyboard alone. F6 and Shift+F6 move between the ribbon, the panes, the document and the status bar, as Office's do; menus follow the arrow keys, Home and End, and Escape goes back to what opened them; the focus is never left on nothing.
    • A screen reader is told what is in each document: a document's headings, a worksheet's active cell with its address and value, a deck's slides by name, Mail's list and the message open, the calendar's dates, and a PDF's pages and words.
    • Windows High Contrast. Every app reads with the system's own colours: the chosen, pressed and current items outlined, edges and the focus ring drawn, and icons in the system's text colours.
    • docs/ACCESSIBILITY.md says, criterion by criterion, what is met and what is known not to be.

    Installing and updating

    • An update no longer stops with "Uninstaller error 2". The installer starts the moment Rutba Office begins to quit, and the copy being replaced refused to be removed while it was still closing. The installer now tries again once a second; after five seconds it asks Rutba Office's windows to close, after ten it ends whatever is left of it, and only after fifteen does it ask, with Retry. Unsaved work is copied for Recover every minute, so a copy closed this way loses under a minute of it at most.
    • Releases are now made as drafts and published only once every file is up and the update feed has been read back and checked against them, so an installed copy can never find a release without its installer.
    • Each release now carries a software bill of materials (CycloneDX) listing every package and file it ships with its licence and hash; docs/REPRODUCIBLE.md says how a build is reproduced.

    Mail

    • When a build has no Google or Microsoft sign-in set up, adding a Gmail or Outlook.com address now says to use an app password and where to make one, in every language the suite speaks.

    Checked

    • Engine tests for the MP4 writer (its boxes, durations, sample tables and keyframes read back), selections in projects, masks through transforms, text editing, the accessibility rules, the corpus run, the upgrade test's judgement, the release publisher and the bill of materials.
    • Window checks video-mp4, image-selection-save, image-mask-transform, image-text-edit, a11y-audit, keyboard-pass, screen-reader and high-contrast.
    • npm run verify:corpus opens and round-trips a folder of real files in fourteen formats; a starter corpus of 40 files the project made is in the repository.
    • The upgrade test (tools/upgrade-test.js) was run here from the 1.51.0 portable copy to this build: settings, recent files and the update feed kept. Its installed-copy races, the app closed late and never closed, run in CI after the release (upgrade.yml) and are not yet proven on a runner.
    • Linux builds (AppImage and .deb) have a workflow of their own, run by hand; they are not part of this release.
    • The fuzzer damaged 5,400 files at seed 5313: 2,594 opened and 2,806 refused in a sentence, none faulted. The PDF reader's fuzzer damaged 1,800 PDFs at seed 5314: 1,586 read and 214 refused in a sentence, none faulted, none hung.

    Gate

    Run on Windows (x64) on 2026-10-15, before 2.1.0 was released: 2,676 engine tests, 2,669 passing and 7 skipped where a package they need is not installed; 12 of 12 editing checks; 1,917 of 1,917 application checks; and 11 of 11 windows painted clean.

    The release on GitHub, with its installers →

    2.0.015 October 2026

    Rutba Office 2.0: the version numbers start again at 2, and the review tools are finished in every editor. Presentations gains Redact, Inspect, ink and a slide show you can draw on, and comments with mentions; Worksheets gains Inspect Workbook and Redact, and its cells stay readable in the dark theme. PDF's Find marks the right words on a scan.

    TouchedWorksheets

    What changed

    • Redact and Inspect Presentation
    • Ink, kept as PowerPoint keeps it
    • Draw on the slide show
    • Comments as PowerPoint 365 keeps them
    • Inspect Workbook and Redact
    • The dark theme keeps a cell readable

    and 2 more in the notes

    The full notes for 2.0.0

    Why 2.0

    The 1.x numbers ran past fifty in a few weeks, one minor number for each release that added anything. 2.0 starts the count again. It is still a beta, offered as an update like every 1.x release; the release candidate, code signing and a long-term line come later in the 2.x line.

    Presentations

    • Redact and Inspect Presentation. Review, Redact marks words on slides, in notes and comments, alt text and areas of pictures; Apply saves a copy with them taken out of every part of the file. File, Info, Check for Issues, Inspect Presentation finds, and removes when asked, comments (PowerPoint 365's modern comments included), notes, personal information, properties, custom XML, invisible and off-slide objects, ink and embedded files.
    • Ink, kept as PowerPoint keeps it. Pen and highlighter strokes from the Draw tab are saved as PowerPoint saves ink, and ink drawn in PowerPoint opens.
    • Draw on the slide show. Ctrl+P, Ctrl+I and Ctrl+E choose the pen, the highlighter and the eraser during a show, with a small bar for them, and leaving the show asks whether to keep the ink annotations, as PowerPoint does.
    • Comments as PowerPoint 365 keeps them. An @ and a name in a comment or reply mentions that person, shown in the accent colour and offered as you type; Edit comment and Edit reply change your own words in place; Resolve and Reopen are saved with the deck.
    • Fixed: Ctrl+P during a slide show also opened Print; Redact on a slide marked a picture's hit box rather than the picture itself.

    Worksheets

    • Inspect Workbook and Redact. File, Info, Check for Issues, Inspect Workbook finds, and removes when asked, comments and notes, personal information, properties, custom XML, headers and footers, hidden sheets, rows, columns and names, and invisible content. Review, Redact marks words and numbers (a search, email, telephone and card patterns, or a pattern of your own) and saves a copy with black bars in their place, read back to prove no part of the file still holds them.
    • The dark theme keeps a cell readable. A cell's own fill stays as the file has it, as Excel keeps it, and words in automatic colour take whichever ink reads on that fill; colours the file gives words are kept on a fill and lifted where there is none.

    PDF

    • Find marks the right word on a scan. After Recognise Text, Find's mark sits on the word it found at every zoom, on scanned and typed pages, in English, Urdu and Arabic. Each recognised word is now its own run in the invisible layer, and its box is drawn in to its ink.

    Every app

    • The dark theme reads everywhere, measured rather than judged: words in an app's accent colour are lifted where they were too dark to read, white words on accent fills sit on a deeper fill, the quietest grey is a step lighter, and a message's own colours in Mail are adjusted by the same rule as a workbook's cells, so dark text on a dark page does not happen.

    Not yet

    • A Compare review of a deck lasts for the session; it is not saved with the deck to finish later.
    • Mentions are saved as text, not as PowerPoint's mention records.
    • Pictures in a workbook cannot be redacted by area.
    • A document's block-level content controls are read and shown but not edited.

    Checked

    • Engine tests for redaction (every redacted word searched for in every part of the saved package), Inspect, deck ink, comments and mentions, workbook inspection, cell contrast, and the PDF text layer's runs.
    • Window checks deck-redact, deck-ink, deck-comments, sheet-inspect, sheet-dark, pdf-find-mark and dark-pass (every app in the dark theme at two window sizes, its contrast measured), with the recognition, ribbon, Calendar and visual-pass checks run again.
    • The fuzzer damaged 5,400 files at seed 5213: 2,577 opened and 2,823 refused in a sentence, none faulted. The PDF reader's fuzzer damaged 1,800 PDFs at seed 5214: 1,588 read and 212 refused in a sentence, none faulted, none hung.

    Gate

    Run on Windows (x64) on 2026-10-15, before 2.0.0 was released: 2,599 engine tests, 2,592 passing and 7 skipped where a package they need is not installed; 12 of 12 editing checks; 1,819 of 1,820 application checks; and 11 of 11 windows painted clean.

    The one application check that failed in that run (intro-video: the talking head recorded with the stand-in camera the checks use) is one of the machine's, as RELEASING.md describes: it passed when run again on its own, 27 of 27 with its block, as did the window captures run after it.

    The release on GitHub, with its installers →

    1.51.015 October 2026

    Bills, invoices and receipts read into the apps: Receipt to Row in Worksheets, an invoice's details on a Mail attachment, and fields and tick boxes in PDF; and Calendar's month shows a day's events again.

    TouchedWorksheetsMailCalendar

    What changed

    • Data, From Picture, Receipt or Invoice
    • An invoice's details on its attachment
    • Find fields
    • The month shows a day's events again
    The full notes for 1.51.0

    Worksheets

    • Data, From Picture, Receipt or Invoice reads one or many pictures or PDF pages and shows each as a row to check: date, supplier, number, subtotal, tax, total and currency. Figures on a page whose items add up to its subtotal and whose subtotal and tax add up to its total go in as read; the rest are marked to check. Insert puts a row a receipt at the selected row, numbers as numbers and dates as dates, as one step Undo takes back.

    Mail

    • An invoice's details on its attachment. When you open a message, a PDF or picture attached to it that reads as an invoice or a receipt shows who it is from, its total, its due date and its number; each shows the place on the page it was read from. It is read only when the message is opened, on the recognition threads, and kept with the message so it is not read again.

    PDF

    • Find fields. Recognise Text can also find a scanned invoice's details and a form's tick boxes, listed in a Fields pane, and Make Check Box Fields turns the tick boxes into real check boxes, ticked as they were on paper.
    • Fixed: a scanned page's text layer was drawn twice when the zoom changed while it was being drawn.

    Text recognition

    • Bills and receipts are read in English, Urdu, Arabic, Hindi, Chinese and Japanese. A figure goes in unmarked only when the page's sums confirm it. Figures printed in Arabic-Indic or Urdu digits are not yet read, and a receipt printed in them says so rather than guessing; Urdu Nastaliq stays beta.

    Calendar

    • The month shows a day's events again. Each day shows as many of its events as fit, measured and measured again as the window changes size, and "+N more" at the foot of a full day opens a list of all of them, as Outlook's month does. The 1.49 visual pass had left one event a day, with "+N more" beside the date.

    Documents

    • At 1300 pixels wide the Home tab keeps every button's name: Find, Replace and Select stack under Editing, and Read aloud takes two lines.

    Checked

    • Engine tests for reading a receipt into a row, the attachment's details, the fields and tick boxes found on a scan, and a till receipt read in every language; window checks receipt-row, mail-invoice, pdf-fields and calendar-month, with the visual pass and the ribbon checks run again over Calendar and Documents.
    • The fuzzer damaged 5,400 files at seed 5113: 2,577 opened and 2,823 refused in a sentence, none faulted. The PDF reader's fuzzer damaged 1,800 PDFs at seed 5114: 1,599 read and 201 refused in a sentence, none faulted, none hung.

    Gate

    Run on Windows (x64) on 2026-10-15, before 1.51.0 was released: 2,576 engine tests, 2,569 passing and 7 skipped where a package they need is not installed; 12 of 12 editing checks; 1,783 of 1,783 application checks; and 11 of 11 windows painted clean.

    The release on GitHub, with its installers →

  14. 14 October 2026

    1.50.014 October 2026

    Review tools in Documents and Presentations (forms, redaction, Inspect Document, ink, and Compare with tracked changes on a deck), Mail indexing on threads of its own with archives past 2 GB, signed and encrypted mail, and accounts added several at once.

    TouchedMail

    What changed

    • Forms, as Word makes them
    • Redact
    • Inspect Document
    • Ink on the page
    • Compare, and tracked changes on a deck
    • Indexing on threads of its own

    and 4 more in the notes

    The full notes for 1.50.0

    Documents

    • Forms, as Word makes them. A Developer tab puts rich text, plain text, check box, combo box, drop-down list, date and picture controls in a document, with Properties (title, tag, placeholder, list items, date format, locked) and Design Mode. Word's older form fields are read and filled in place, and Restrict Editing's "Filling in forms" lets only the fields take input, Tab moving between them.
    • Redact. Review, Redact marks the selection, every match of a Find, or patterns (email addresses, telephone numbers, card numbers, a pattern of your own) and areas of pictures. Apply saves a copy in which the marked words are gone from everywhere in the file: the body, headers and footers, notes, comments, tracked changes, field results, alt text and the document's properties, with black bars of the same length in their place.
    • Inspect Document (File, Info, Check for Issues) finds and, when you ask, removes comments, tracked changes, hidden text, personal information, custom XML, headers and footers, invisible content and the document's properties, as Word's Document Inspector does.
    • Ink on the page is saved as Word saves it, and ink drawn in Word opens. Highlighter strokes, which drew invisible in every app because a colour's transparency was read as the colour, now show.

    Presentations

    • Compare, and tracked changes on a deck. Review, Compare merges a reviewed copy: a Revisions pane lists what changed slide by slide and shape by shape (words in and out, a shape added, removed, moved, resized or restyled, a slide added, removed or moved), each marked on the slide, and every change is accepted or rejected one at a time, by slide or all at once. The saved deck holds what was accepted.

    Mail

    • Indexing on threads of its own. Archives and accounts are indexed and searched away from the windows, so a large .pst no longer holds the suite while it is read. A search answers from what is indexed so far and says how far it has got, and indexing can be stopped and resumed.
    • Archives past 2 GB. An mbox or Outlook for Mac archive of any size opens where it lies, read a piece at a time.
    • Signed and encrypted mail (S/MIME). A signed message says who signed it and whether the message is as they sent it, checked on this computer against the certificates Windows trusts; revocation is not checked, and the message says so. A message signed by someone other than its sender, or with no sender, or whose certificate has since expired, is not shown as good. An encrypted message opens with a certificate and key you import from a .p12 or .pfx file, the key kept in the system's protected store. Compose can sign and encrypt.
    • Accounts, several at once. Add account takes rows of addresses and passwords pasted or loaded from a file (separated by spaces, tabs, commas, semicolons, colons or bars, or a table with headings), sets each up and reports how each went. It says how an account signs in (in a browser, with an app password, or with a password) and offers the browsers installed on this computer for signing in.
    • What it looks up, and when. Settings are looked up only when you press Add, from a table of the large providers and then the address's own domain's records, and never from anyone else's service. A password goes to a server outside the address's domain only after you agree, and never without encryption.

    Text recognition

    • Reading a page as a document is in the engine: it tells an invoice, a receipt, a letter and a form apart, finds a bill's supplier, number, dates, subtotal, tax, total and lines of items, checks that the sums agree, and reads a form's tick boxes. The windows will offer it next. The boxes drawn over recognised words keep their own height on a page that was turned straight, and beside a large heading.

    Checked

    • A security review of the S/MIME and account code before release. Its findings are fixed: reading a signed or encrypted message runs on a thread of its own with size, structure and time limits, so no message can hold the suite or exhaust its memory; certificates are kept only from good signatures for the sender's own address and never swapped without asking; chains are checked for mail; weak algorithms are marked; Encrypt with Bcc is refused; a decrypted message that is not validly signed is shown as plain text; and the account setup's lookups are confined as above.
    • Engine tests for forms, redaction (every redacted word searched for in every part of the saved package), Inspect, ink, deck comparison, the S/MIME reader and writer (interoperating with OpenSSL both ways), the archive index threads, the large-archive reader, the account rows and setup, and document reading.
    • Window checks word-forms, word-redact, inspect, word-ink, deck-compare, mail-index-worker, mail-big-mbox, smime and mail-accounts.
    • The fuzzer damaged 5,400 files at seed 5013: 2,529 opened and 2,871 refused in a sentence, none faulted. The PDF reader's fuzzer damaged 1,800 PDFs at seed 5014: 1,583 read and 217 refused in a sentence, none faulted, none hung. A first run of it on a heavily loaded machine timed some files out at its two-second limit; each of those files, run alone through everything the fuzzer does, took under 60 ms. The S/MIME reader was fuzzed separately with 2,000 damaged messages, none faulted, the slowest 47 ms.

    Gate

    Run on Windows (x64) on 2026-10-14, before 1.50.0 was released: 2,554 engine tests, 2,547 passing and 7 skipped where a package they need is not installed; 12 of 12 editing checks; 1,752 of 1,752 application checks; and 11 of 11 windows painted clean.

    The release on GitHub, with its installers →

    1.49.014 October 2026

    PDF part 2: comments and markup, forms and Fill & Sign, redaction that takes the words out of the file, bookmarks kept, pictures and smaller files; no Soon button left; panels you can resize in every app; and a visual pass over all of them.

    TouchedCalendarVideo

    What changed

    • Comment and mark up
    • Forms and Fill & Sign
    • Redaction that removes
    • Bookmarks, page labels, links and form fields
    • Export as Pictures
    • No Soon button is left

    and 3 more in the notes

    The full notes for 1.49.0

    PDF

    • Comment and mark up. The Comment tab highlights, underlines and strikes through the words you select, places sticky notes and text boxes, and draws freehand, rectangles, ellipses, lines and arrows, in six colours. Each comment is written into the file as Acrobat writes it, with its own appearance, so other readers show it as this window does. The Comments pane lists every comment by page: answer one, mark it resolved, change its words or delete it with its replies. Comments other people made are read, listed and kept.
    • Forms and Fill & Sign. Form fields fill in place (text, check boxes, radio buttons, lists), each value written with the appearance other readers show. Fill & Sign places your signature or initials, typed, drawn on a pad, or from a photo of one signed on paper with the paper made see-through, and today's date, a checkmark or words. It says plainly that these are pictures, not digital signatures.
    • Redaction that removes. Mark Text, Mark Area and Mark Matches mark what is to go; Apply Redactions takes the words and the pictures' pixels out of the pages themselves, and the same words out of everywhere else in the file: the document's properties and metadata, bookmarks, comments and their replies, links, attached files, form values and page labels. The dialog lists what else it found, by kind, and any picture it had to leave off, by page. The result is a new file written whole, because an update would keep the old bytes.
    • Bookmarks, page labels, links and form fields now survive Save, Extract, Split and Merge Files, with a Bookmarks pane and each page's label shown.
    • Export as Pictures (PNG or JPEG, 72 to 600 dots an inch) and Reduce File Size, which redraws pictures at the size the page needs and saves a smaller copy.
    • Not yet: words in a text box or form value in Urdu, Arabic or Hindi are kept in the file but drawn by the reader rather than given an appearance of their own; lines and shapes under a redaction mark are covered, not cut away; Reduce File Size leaves CMYK and masked pictures alone.

    Every app

    • No Soon button is left. Mark All as Read in Presentations' comments and Design, Slide Size (Standard, Widescreen or a size of your own, with Maximize or Ensure Fit) are built. The buttons that only work with an online service (Translate, Dictate, Forms, Presenter Coach, Online Videos, Automate a Task, From Web, Keep Slides Updated, live subtitles) are gone rather than greyed, and so are Macros and Ink to Math; a file's macros are still kept untouched.
    • Panels you can resize. The panels beside the work show a grip on their inner edge: drag it, move it with the arrow keys, or double-click to reset, and each app remembers the width.
    • Galleries shrink before they fold. As the window narrows, Word's Styles and Style Set and Presentations' Themes and Variants lose one choice at a time, with up, down and more arrows, before their group folds into a button; at 1300 px Documents keeps its Styles open.
    • A visual pass over every app at two window sizes, light and dark: Mail's key hint, the launcher filling a tall window, Image's tool rail on a short one, Contacts' labels and dark-theme links, and ribbon details put right.

    Video

    • The preview and the timeline share the window by a divider that drags, moves with the arrow keys, resets on a double-click and is remembered; at 1300 by 700 the preview has more than half the height, where it had about a sixth. The Scenes panel resizes, and the timeline's track names and each lane's height drag and are kept.

    Calendar

    • The month's seven columns are one width whatever the events in them, and a full day ends in "+N more"; the week and day views line up their columns, open on the working morning, and show short events' titles.

    Checked

    • Engine tests for comments, forms, redaction (the redacted word found nowhere by our reader, by pdf.js or by a search of every inflated stream), bookmarks and page labels through every page operation, and Reduce File Size; and for Mark All as Read and Slide Size.
    • Window checks pdf-annot, pdf-forms, pdf-redact, pdf-outline, pdf-export, soon, gallery-fold, video-split, panels and polish press each feature in its window.
    • The fuzzer damaged 5,400 files at seed 4913: 2,599 opened and 2,801 refused in a sentence, none faulted. The PDF reader's fuzzer, which now also reads comments, fields, bookmarks, labels and links, adds a comment and redacts, damaged 1,800 PDFs at seed 4914: 1,622 read and 178 refused in a sentence, none faulted, none hung.

    Gate

    Run on Windows (x64) on 2026-10-14, before 1.49.0 was released: 2,448 engine tests, 2,441 passing and 7 skipped where a package they need is not installed; 12 of 12 editing checks; 1,678 of 1,678 application checks; and 11 of 11 windows painted clean.

    The release on GitHub, with its installers →

    1.48.014 October 2026

    New ribbons in every app: one height on every tab, a picture for each command in the app's own colour, folding as the window narrows instead of scrolling, an icons-only mode, and KeyTips and arrow keys from the keyboard.

    TouchedPictures

    What changed

    • Drawn to Office's measure, one height on every tab
    • A picture for each command
    • Menus look like menus
    • Documents' Styles
    • A narrow window folds the ribbon instead of scrolling it
    • Icons only

    and 3 more in the notes

    The full notes for 1.48.0

    Ribbons, in every app

    • Drawn to Office's measure, one height on every tab. The page no longer jumps as you move between tabs. Tabs are names with the app's colour under the chosen one, and groups are three rows high, with large buttons showing clear pictures over names that wrap to two lines.
    • A picture for each command, drawn in the app's own colour: 36 new ones where one picture used to stand for several commands, among them grow and shrink font, change case, clear formatting, the highlighter and font colour (each showing its colour), subscript and superscript, the paragraph mark, line spacing, borders and fill, every chart kind and each Function Library category in Worksheets. Mail's People has its own.
    • Menus look like menus. A button that opens one carries a small arrow, and its menu drops from the button, wherever it was pressed. Worksheets' Paste options is the arrow half of a split Paste, as in Excel.
    • Documents' Styles show each style as a sample on paper, as Word does.
    • A narrow window folds the ribbon instead of scrolling it. From the end inwards, large buttons become small ones, then pictures alone, and last a whole group becomes one button that opens its controls under it (with a picture of its own for Styles, Themes and Variants). Nothing is cut off or pushed out of sight, and room is given back as the window widens.
    • Icons only, from the ribbon's display options, for those who know the pictures: each name is then in its tooltip. It is remembered for every window.
    • From the keyboard: Alt alone (or F10) shows KeyTips on the tabs, with Office's letters where Office has the tab, and a tab's letters show those of its controls; no code is the start of another. The arrow keys move along the tabs and into the controls with a ring that always shows, and Escape steps back and returns to the page.
    • Right to left, in Urdu and Arabic, the ribbon's separators and arrows mirror, and its words are set a size up so they read.
    • Contextual tabs (a table's, a picture's, a chart's) are marked in the app's colour.
    • Some tooltips that used a long dash now read with a colon, in every language.

    Website pictures

    • The pictures on office.rutba.io are taken by the suite itself. They now include PDF, opening a sample report, and Video, opening a project of sample stills, which had none.

    Checked

    • A new window check, ribbon (63), opens all ten apps and photographs every tab at three widths, in the dark theme and in Urdu. It checks that the ribbon is one height on every tab, that nothing is cut off or left to scroll, that groups fold from the end and a folded group opens under its button and closes on Escape, that Icons only keeps every name in its tooltip, that KeyTips choose tabs with codes that never clash, and that the keyboard reaches the controls with a ring that shows and returns to the page.
    • Every existing check that drives a ribbon ran against the new ones in the gate below. Five checks that the taller ribbon and a busier run exposed were put right, none of them a fault in the suite: the slideshow and clip-length check and the ribbon check now use folders of their own, the PDF recognition and table of contents checks wait for the page to draw what they count, and the kept templates are compared without the date in a notes master's date field, which made a run past midnight fail.

    Gate

    Run on Windows (x64) on 2026-10-14, before 1.48.0 was released: 2,404 engine tests, 2,397 passing and 7 skipped where a package they need is not installed; 12 of 12 editing checks; 1,586 of 1,587 application checks; and 11 of 11 windows painted clean.

    The one application check that failed in that run (word: the table of contents entries drawn on the page) read the page before it had drawn; it now waits for it, and passed when run again on its own, as did the window captures run after it.

    The release on GitHub, with its installers →

  15. 13 October 2026

    1.47.013 October 2026

    Text recognition on this computer: scanned PDFs made searchable, the words in a picture copied, and a table in a photo turned into cells, in six languages with the network off.

    TouchedWorksheetsPictures

    What changed

    • Read on this computer, sent nowhere
    • Nothing waits for it
    • Recognise Text
    • Copy Text from Picture
    • Data from Picture
    The full notes for 1.47.0

    Text recognition

    • Read on this computer, sent nowhere. The suite now reads the words in pictures and scanned pages itself, with the network off and no account. It reads English, Urdu, Arabic, Hindi, Chinese and Japanese, and each language the suite learns will follow. Urdu is marked beta: it reads Naskh type well, but not yet Nastaliq print reliably.
    • Nothing waits for it. Reading runs on threads of its own, one page a thread and never more than four, so no window is held while a long scan is read, and a reading can be cancelled.
    • The reader is Tesseract 5 compiled to WebAssembly, with its six language models in the download and nothing fetched when it is first used. Around it the page work is our own: straightening a crooked scan, evening out unevenly lit paper, finding lines, columns and tables, and putting right-to-left lines in reading order.
    • docs/OCR.md gives the measured error rates, speed and memory for each language, on pages drawn with known text and on real scans: about a second a page on a four-core laptop, English and Hindi real scans at 2.3 and 2.7 per cent of characters wrong.

    PDF

    • Recognise Text finds the words in scanned pages and writes them in as an invisible layer under each page, so Find, selecting and copying work on scans. The pages look exactly as they did. Choose all pages, the selected ones or this one, and the languages; pages that already have text are left alone. A progress bar counts the pages, with Cancel.
    • The layer is added after the file's original bytes, which stay exactly as they were, and Undo takes it away.
    • Fixed: a new search now moves to its first match when that match is on another page; a damaged file whose page list is not a list opens with no pages instead of failing.
    • Not yet: pages that mix text with a scan are skipped, and a scan turned sideways is not turned back.

    Pictures and Image

    • Copy Text from Picture puts every word in a picture on the clipboard in reading order, and lays the recognised lines over the picture so a drag selects and copies just the words wanted. A bar says how many lines were found, with Copy All and Hide.
    • In Pictures it is on the Home tab and on the viewer's bar under the picture; the lines follow the picture as it is zoomed, scrolled or turned. In Image it is on the Home tab and reads the picture as edited.

    Worksheets

    • Data from Picture (Data, From Picture, from a file or the clipboard) reads a printed table into cells. The picture is shown beside a preview of the cells, each one editable, with the cells the reading was unsure of marked to check. Insert Data puts them in at the selected cell as one step Undo takes back, numbers as numbers.
    • Tables with ruling lines and tables without are both read; a cell the first pass missed is read again on its own.
    • Not yet: a figure such as 4.50 lands as 4.5.

    Checked

    • Engine tests read a page in each of the six languages and check every word's box; prove reading happens on the pool's threads and never the caller's, that queued and running readings cancel, and that a reading makes no network request; and check skew to a tenth of a degree, unevenly lit paper, ruling lines, columns, and ruled and unruled tables read cell for cell. The PDF text layer's tests prove the original bytes stay the start of the file, for both kinds of cross-reference, object streams, inherited resources, rotated pages and right-to-left words.
    • Window checks: ocr-pdf (9) finds English and Urdu words on scanned pages, selects and copies them, undoes and redoes the layer and reads the saved file's start back; ocr-picture (10) copies and selects in Pictures and Image through zoom and edits; ocr-sheet (5) inserts a table from a picture with numbers as numbers.
    • A build of the installer read a page with the engine and models unpacked beside the application archive.
    • The fuzzer damaged 5,400 files at seed 4713: 2,565 opened and 2,835 refused in a sentence, none faulted. The PDF reader's fuzzer damaged 900 PDFs at seed 4714; its first run found one fault, a page list left as a number, now read as no pages. Run again: 797 read and 103 refused in a sentence, none faulted, none hung.

    Gate

    Run on Windows (x64) on 2026-10-13, before 1.47.0 was released: 2,404 engine tests, 2,397 passing and 7 skipped where a package they need is not installed; 12 of 12 editing checks; 1,524 of 1,524 application checks; and 11 of 11 windows painted clean.

    The release on GitHub, with its installers →

    1.46.013 October 2026

    A tenth app for PDF pages, a templates gallery and QR codes in the three editors, and Mail as a tool for archives: search everywhere at once and export for legal hold.

    TouchedWorksheetsMail

    What changed

    • A tenth app for reading PDFs and putting their pages in order
    • Pages
    • Saving never redraws a page
    • A templates gallery
    • Insert, QR Code
    • Archives open where they lie

    and 2 more in the notes

    The full notes for 1.46.0

    PDF, the tenth app

    • A tenth app for reading PDFs and putting their pages in order. Open a PDF and its pages appear beside a strip of thumbnails, read one at a time, two side by side or in one column, at the window's width, the whole page or any zoom with Ctrl and the wheel. The words on each page can be selected and copied, and Find searches every page and marks what it finds.
    • Pages: picked with a click, Ctrl and Shift, and dragged into a new order; rotated, deleted, extracted to a new file, and inserted from another PDF. A PDF splits into files of so many pages or at the pages picked, and several files merge into one. Undo and redo cover every change.
    • Saving never redraws a page: each page goes into the new file exactly as it was, with its fonts, pictures and text. Save asks before it replaces the file the pages came from, and offers a copy instead. Unsaved work is kept for the launcher's Recover.
    • Double-clicking a PDF now opens it in PDF; Pictures offers Open in PDF for one it shows; the launcher's PDF card combines files into one. The window speaks Urdu, Arabic and Hindi, right to left in Urdu and Arabic, the pages keeping their own direction. Pages are drawn by pdf.js, which ships with the suite and works with the network off.
    • Not yet (part 2): forms and signatures, annotation, redaction, editing text in place, export to Word, OCR; bookmarks, page labels and form fields are not carried through a reorder, merge or split; CJK text in a font the PDF does not embed does not draw.

    Documents, Worksheets and Presentations

    • A templates gallery, as Word, Excel and PowerPoint open with one: six documents (a letter, a CV, a report with a cover page and contents, an invoice, meeting minutes, a newsletter), six workbooks with working formulas (a monthly budget with charts, an invoice that adds itself up, a timesheet, a loan calculator with a yearly schedule, a to-do list, an accounts ledger) and four decks (a pitch deck, a project status report, a photo album, a training deck). Each card is a picture the suite drew of its template. Start something, More templates on the launcher shows the whole gallery by app, category and search; New from Template in each app's menu shows that app's, with a blank one first; templates you saved yourself are under Personal. Choosing one opens an untitled copy. The launcher's Letter, Report, Budget, Invoice and Pitch deck now start from these. The gallery speaks Urdu, Arabic and Hindi; the words inside the templates are English for now.
    • Insert, QR Code turns a web address or any words into a code a phone can scan, with the error correction, size and colour chosen and a preview as you type. The code goes in as a picture whose alt text is its words, so a screen reader reads them too, and a double-click changes it in place. The codes come from the suite's own encoder, every version from 1 to 40.

    Mail

    • Archives open where they lie: an Outlook data file (.pst or .ost), an Outlook for Mac archive (.olm) or an mbox opens without importing, listed under Archives, read like a mailbox and never written to; a strip above its list says so.
    • Search everywhere at once: the search box searches the open folder or All mail, every account and every open archive together, message bodies included, and each result says which mailbox or archive and which folder it lives in. It knows the syntax people already use: from:, to:, cc:, subject:, filename:, has:attachment, is:unread, after:, before:, received: with ranges, older_than:, size>, larger:, in:, a minus to leave something out, OR, and quoted phrases. A new Search tab offers the same through Scope and Refine, and Search syntax lists them all.
    • Export for legal hold writes a search's results, a folder or several folders to an mbox and to PDFs (one per message, or one file after a summary page) with the attachments optionally beside them, and a manifest in CSV and JSON giving each message's date, sender, recipients, subject, Message-ID, source, folder and the SHA-256 of what was written. It shows progress, can be cancelled, and the sources are only ever read.
    • Fixed: attachment names written in the encoded form some mail programs use for non-English names (RFC 2231) are decoded.

    Checked

    • Engine tests: the PDF reader and page writer against files made by the suite's writer, its incremental updater and by hand (object streams, compressed cross-references, a hybrid file, an update that redefines a page, a damaged table, a protected file, links to pages kept and deleted); every template exactly what its specification makes through the engines today, its figures recalculating; the QR encoder against the standard's worked example, its format table and an independent encoder module for module, and every version and level read back; every search operator across a .pst, an .olm and an account; an export read back with every hash matched and the sources left byte for byte.
    • A 5 GB Outlook data file of 100,000 messages, written at test time, opens in a quarter of a second, is indexed with its bodies in about 25 seconds and answers searches in 19 to 210 ms; the 1 GB version is held to budgets in the performance pass.
    • Window checks: pdf-app (22) reorders, rotates, deletes, inserts, saves, splits and merges and reads every file back; templates (13) opens copies of three templates and lists a template of one's own; qrcode (9) decodes each app's QR from the saved file; mail-archive (17) searches two archives and an account together and checks the export's mbox, PDFs and hashes, in Urdu and Arabic too. The paint check now photographs the PDF window as well.
    • The fuzzer damaged 5,400 files at seed 4613, new documents, workbooks and decks and every old-format file among the fixtures: 2,528 opened and 2,872 refused in a sentence, none faulted. A fuzzer of its own for the PDF reader damaged 900 PDFs at seed 4614: 797 read and 103 refused in a sentence, none faulted, none hung.

    Gate

    Run on Windows (x64) on 2026-10-13, before 1.46.0 was released: 2,374 engine tests, 2,367 passing and 7 skipped where a package they need is not installed; 12 of 12 editing checks; 1,500 of 1,500 application checks; and 11 of 11 windows painted clean.

    The release on GitHub, with its installers →

    1.45.013 October 2026

    Introduction videos and captions in Video, the tools of a photo editor in Image, and passwords that no longer hold up the other windows.

    TouchedWorksheetsImageVideo

    What changed

    • Checking or setting a password no longer holds up the other windows
    • The tools of a photo editor
    • Selections
    • Painting
    • Masks
    • Free Transform

    and 6 more in the notes

    The full notes for 1.45.0

    Worksheets and Documents

    • Checking or setting a password no longer holds up the other windows. Protect and Unprotect Sheet and Workbook, Allow Edit Ranges and Unlock Range, Restrict Editing's Start Enforcing Protection and Stop Protection, Encrypt with Password, and opening a file encrypted with a password all hash the password 100,000 times or more, as Office does. That work now runs on threads of its own, and every other open document goes on taking your typing while it runs. The window that asked shows it is working: its OK is held with a small spinner and says "Checking…", and a wrong password is still refused in Excel's or Word's own words. Reopening a recovered copy of an encrypted document is unlocked the same way. The files written are the same as before, byte for byte, and the hashing is a third faster.

    Image

    • The tools of a photo editor: fourteen tools stand in a column down the left of the picture, with the two colours at its foot, and the chosen tool's options sit in one bar above it. In Urdu and Arabic the column stands on the right.
    • Selections: a rectangle, an ellipse, a lasso, the magic wand or by colour, added to, taken from or intersected, with Feather, Grow and Shrink under Modify. With a selection, the Adjust and Filters tabs change only what is selected, on a layer of its own.
    • Painting: the brush paints on a paint layer of its own, the eraser rubs out, and the fill and the gradient stay inside the selection. The clone stamp copies from where you Alt+click, and the healing brush covers a blemish with clean skin matched to the colour round it.
    • Masks: a layer's mask reveals all, hides all or is made from the selection, painted in black and white, feathered, inverted, turned off, applied or deleted, and kept in the .rimg project.
    • Free Transform drags a picture's corners to scale, skew, distort or add perspective, and Perspective takes four pins on something photographed at an angle and straightens it, cropped or not.
    • Fixed: the Image window's empty state nested a block inside a paragraph, which React warned about.

    Video

    • Introduction videos: Introduction video in the launcher, or New Introduction Video in Video, opens a project of scenes: a title card, you on camera, your screen with the camera in a corner, and an end card, with side by side as a fifth layout. Each scene is a card in the Scenes panel and on the Introduction tab. Scenes move earlier or later, are added and are taken out, and a recorded scene's layout can be changed afterwards, because the screen and the camera stay separate.
    • A teleprompter: write a scene's script and it scrolls above the camera while you record, slow, normal or fast. Record a scene, take it again, and put any earlier take back; every take is kept.
    • A brand kit keeps your name and role, a logo, three colours and a font for every introduction you make. It draws the cards in your colours and puts a lower third with your name over the first recorded scene, out of the camera's way, and right to left for an Urdu or Arabic name.
    • The pointer: while Video records, it keeps where the pointer was and where you clicked in the suite's own windows. On the timeline that is a layer of its own that draws a highlight and a ring at each click, either of which can be turned off afterwards. Zoom on Clicks zooms the screen in where you clicked and follows the clicks, and each zoom can be made closer or taken away in the clip's properties.
    • Captions: Import Captions reads a SubRip (.srt) or WebVTT (.vtt) file onto a track of its own, each line a clip moved, trimmed and edited like a title, drawn right to left in Urdu and Arabic, and Export Captions writes it back.
    • Export for where it is going: YouTube at 1080p 16:9, LinkedIn and X at 16:9 or square, Reels, Shorts and TikTok at 9:16, and a small MP4 for email, each with its frame size, rate and likely file size. An upright export lays every scene out for that shape and leaves the project as it was.

    Checked

    • Engine tests: the password threads give exactly what the engine gives itself, for a vector worked out separately with .NET's SHA-512 and for SHA-1, SHA-256, Word's pre-hashed key, an encrypted file's key and its decryption, and the document service keeps answering while each runs.
    • Window checks: pwfast types into one document while another checks a wrong Unprotect Workbook password, a wrong Stop Protection password, an Encrypt with Password save and a wrong password on an encrypted workbook; every key reaches its page within 200 ms and each refusal keeps its own words.
    • Engine tests for introductions as scenes (the template, layouts in three frame shapes, takes, reordering, the brand kit and the lower third's place, the teleprompter), the pointer data and its zooms, captions read and written, and for selections, brushes, masks and corner maps.
    • Window checks: intro-video runs the whole flow from the launcher's card with a stand-in camera and a suite window as the screen, a brand kit with an Urdu name, a retake, a reordering, a layout switched after recording and a caption file, and exports for YouTube and for Reels, reading both files back for their size, length and tracks. image-tools works every tool on a picture of flat colours and reads the result back from the canvas and from the saved project, the window in Urdu included.
    • The fuzzer damaged 5,400 files at seed 4512, new documents, workbooks and decks and every old-format file among the fixtures: 2,528 opened and 2,872 refused in a sentence, none faulted.

    Not yet

    • Video records clicks only in Rutba Office's own windows; Zoom on Clicks follows clicks, not typing or a resting pointer; kept takes have no Clean Up yet, and a scene is not copied for Recover while it records.
    • Image keeps no selection in a .rimg, and a mask does not yet follow its layer when the layer is resized, turned or transformed.

    Gate

    Run on Windows (x64) on 2026-10-13, before 1.45.0 was released: 2,314 engine tests, 2,308 passing and 6 skipped where a package they need is not installed; 12 of 12 editing checks; 1,442 of 1,442 application checks; and 10 of 10 windows painted clean.

    The release on GitHub, with its installers →

  16. 12 October 2026

    1.44.112 October 2026

    1.44.0 with installers that build, and a plain sentence when an update check cannot finish.

    What changed

    • 1.44.0 had no installers
    • A failed update check is said plainly
    The full notes for 1.44.1

    Fixed

    • 1.44.0 had no installers. Its tag was published, but the installer build stopped on a missing icon for Image's new project files (.rimg), so there was nothing to download. Copies of 1.43.0 then found a release with no update file in it and showed the updater's raw error in the About box. 1.44.1 is 1.44.0, the screen recorder, layers in Image and the Video preview's fixes included, with installers that build and a test that every file type the installer registers has its icon.
    • A failed update check is said plainly. The About box gave the updater's whole HTTP exchange and stack. It now says what happened, in the window's language: a new release still being published, no connection to GitHub, or GitHub turning the check away for now, and otherwise a short first line of the error.
    • Four words in the Urdu, Arabic and Hindi catalogues were listed twice; each is now listed once.

    Checked

    • Engine tests: every associated file type has its icon on disk, and each kind of failed check reads as its own sentence with a one-line detail.
    • The Windows installer and the portable copy were built from this commit before it was tagged.
    • The performance budget is thirty seconds a step, from fifteen: on a four-core laptop the 100,000-cell recalculation takes 13 s quiet and 18 s straight after the engine suite, and twice closed the gate with nothing changed. A step gone quadratic still costs minutes.

    Gate

    Run on Windows (x64) on 2026-10-12, before 1.44.1 was released: 2,253 engine tests, 2,247 passing and 6 skipped where a package they need is not installed; 12 of 12 editing checks; 1,390 of 1,390 application checks; and 10 of 10 windows painted clean.

    The release on GitHub, with its installers →

    1.44.012 October 2026

    A screen recorder in Video, layers in Image, and Edit in Image from Documents, Worksheets and Presentations.

    TouchedWorksheetsImageVideo

    What changed

    • Record Screen
    • Quality
    • While recording
    • On Stop
    • Fixed
    • Fixed

    and 7 more in the notes

    The full notes for 1.44.0

    Video

    • Record Screen: on the Home and Insert tabs and the start screen. A whole screen, one window, or a region drawn on the picture, kept as a crop you can change later. The camera records at the same time as a second file on the same clock, in a corner as a circle, a rounded or a square rectangle, small, medium or large, mirrored if you like, and dragged to its corner before you start. The microphone and the computer's own sound each have a level meter that moves before and during the recording; the computer's sound is recorded on Windows.
    • Quality: 15, 30 or 60 frames a second, a size of up to 720, 1080 or 1440 lines, and how sharp the picture is; the defaults keep a 1080p screen at 30 frames a second near 6 Mbps.
    • While recording: a countdown of three (or five, ten, or none), Pause that holds everything at once, and Ctrl+Shift+F10 to stop and Ctrl+Shift+F9 to pause from any program, or the tray icon. The recording goes to disk a few megabytes at a time into a Rutba Recordings folder in Videos; the box says how long the disk has room for and warns when five minutes are left. If Rutba Office stops while you record, the launcher's Recover brings the recording back at its full length.
    • On Stop the screen lands on the main track, the camera on the track above as a picture in picture you can move, resize, reshape or remove from its properties, and each sound on a track of its own.
    • Presentations' Insert, Screen Recording opens the same recorder without the camera and still puts the recording on the slide. The launcher's Start something offers Record a screen.
    • Fixed: playing a video in 1.43.0 flickered and its sound started over and over on top of itself. Each time the preview's own decoder finished a seek, the preview restarted, which sought again, some thirty times a second. A seek now only repaints, and the preview plays on.
    • Fixed: a video exported from Video no longer starts with a moment of black under its titles while its first clip gets going. The export drew nothing while a clip was being sought; it now draws the frame it held, which also ends the black flash while scrubbing the preview.

    Image

    • Layers, inside the same app: a picture still opens for quick edits as before. Insert puts text, WordArt, shapes, icons, charts, another picture or an adjustment on a layer of its own, and the picture you opened becomes the Background layer, which the quick edits still change.
    • The Layers panel lists the layers from the top. Drag a row to reorder it, or use Bring Forward, Send Backward, Bring to Front and Send to Back. The eye hides a layer, the padlock locks it, a double-click renames it, and Group makes several layers move, show and fade as one. Each layer has an opacity and a blend mode (Multiply, Screen, Overlay, Soft light and twelve more). On the canvas a click picks a layer, a drag moves it, a corner handle resizes it and the round handle turns it, in steps of 15 degrees with Shift.
    • Adjustment layers (Punch, Matte, Warm, Cool, Mono, Fade or Noir, with their sliders) change every layer under them and none above them.
    • Canvas Size adds room round the picture or cuts it from any of nine anchors without scaling anything, Image Size scales the whole picture, and Trim cuts away clear edges.
    • Projects: Save writes a .rimg file with every picture inside it, so it opens again exactly as it was. While a layered picture is unsaved, a copy is kept and Recover offers it back after a crash. Export flattens the layers to PNG, JPEG or WebP with the same options as before.

    Documents, Worksheets and Presentations

    • Picture Format, Edit in Image: select a picture and it opens in Image. Crop it, correct it, draw on it or add layers, press Save and return, and the edited picture goes back where it was, as wide as before and as tall as its new shape. Undo in the document brings the old one back. Worksheets and Presentations gain a Picture Format tab for it, with Arrange beside it.
    • Fixed: in Worksheets a picture inserted, then undone and redone, lost its bytes.

    Checked

    • Engine tests for the recorder's arithmetic (settings, disk minutes, the inset's corner, a region as a crop, a clock that leaves pauses out, the takes placed on the timeline, a copy settled after a crash); the layer stack (order, groups, opacity and blend, adjustments over what is under them, canvas size from every anchor, image size, trim); the .rimg file; Edit in Image putting a picture back in a document, a worksheet and a slide; and a clip being sought drawing the frame it held.
    • Window checks drive each with real input. recorder records one of the suite's own windows with a stand-in camera and microphone, drags the inset, draws a region, counts down, pauses and stops through the global key, reads both takes and an export back for their length and tracks, recovers a copy made mid-recording and checks the box in Urdu. screenrec holds Presentations' Screen Recording to the same recorder. image-layers adds text and a shape, reorders, hides, reads opacity and Multiply in the pixels, greys what is under a Mono adjustment, grows and trims the canvas, saves and reopens a .rimg, and edits a picture from each of Documents, Worksheets and Presentations in Image and back. video-editor now holds a playing preview to a single start.
    • The fuzzer damaged 5,400 files at seed 4413, new documents, workbooks and decks and every old-format file among the fixtures: 2,509 opened and 2,891 refused in a sentence, none faulted.

    Not yet

    • For the recorder, not proven in a window: the computer's real sound, the global keys and the tray used for real, a whole screen as the source, and a disk running out. There is no folder picker for recordings yet.
    • In Image: masks, selections, brushes, clone and heal, and free transform; typing on the canvas; a group's own blend mode.
    • The intro video maker comes next on the studio engine.

    Gate

    Run on Windows (x64) on 2026-10-12, before 1.44.0 was released: 2,250 engine tests, 2,244 passing and 6 skipped where a package they need is not installed; 12 of 12 editing checks; 1,390 of 1,390 application checks; and 10 of 10 windows painted clean.

    The release on GitHub, with its installers →

    1.43.012 October 2026

    A Video editor with a timeline, quick edits and batch work in Image and Pictures, pages side by side in Documents, and zoom by Ctrl and the wheel.

    TouchedPicturesImageVideo

    What changed

    • Zoom with Ctrl and the wheel
    • Pages side by side
    • View, Multiple Pages
    • View, Page Movement
    • Fixed
    • An editor on a timeline

    and 8 more in the notes

    The full notes for 1.43.0

    Every app that shows a page

    • Zoom with Ctrl and the wheel: Ctrl and the mouse wheel zoom the page in Documents, the grid in Worksheets, the slide in Presentations and the message in Mail, 10% a notch, the way Word, Excel and PowerPoint do, and the point under the pointer stays where it was. Ctrl+Plus (Ctrl+= or Ctrl+Shift+=) and Ctrl+Minus step the zoom by 10%, and Ctrl+0 puts it back to 100%; the View menu's Zoom In, Zoom Out and Actual Size do the same. A touchpad pinch zooms smoothly. It is always the app's own zoom, the one the status bar's slider sets, so the ribbon and the panes keep their size.
    • In Documents a page zoomed wider than the window now scrolls sideways; its right side was cut off before. In Pictures Ctrl+Plus now works, and Ctrl and the wheel no longer scroll the picture while zooming it.

    Documents

    • Pages side by side: Documents lays its pages across the window once there is room, as Word does. At half size two or three pages stand side by side sharing their top edge, and at 30% six or more, the rows wrapping and centred. A right-to-left document lays them from the right. At 100% in a normal window the pages stand one under another as before. The zoom slider and Ctrl with the wheel lay the rows again as they change, and the slider now goes down to 30%.
    • View, Multiple Pages chooses the zoom that shows two whole pages side by side, and One Page shows one.
    • View, Page Movement offers Vertical and Side to Side. Side to Side puts every page in one row at a whole page's height, and the mouse wheel turns them sideways a page at a time, like a book. Vertical brings back the zoom it had.
    • The ruler moves over the page the caret is on, and a press on any page, on its words or in its margin, puts the caret there. Typing at the foot of the left page carries on at the head of the right one.
    • Fixed: a paragraph split at the foot of a page could move back and forth between the two pages after an edit until the layout gave up, leaving the pages after it overlapping. It now settles at once.

    Video

    • An editor on a timeline: several clips, stills and sound laid end to end on lanes that show frames and waveforms. Split at the playhead (S, or Shift+S on every lane), trim with I and O or by dragging either end, ripple delete and ripple trim, Close Gap, and move or drag a clip between lanes with snapping to clips, markers and the beats of a song. Copy, paste, duplicate, Detach Audio and Link, markers, In and Out, undo and redo, frame steps and J, K and L. A right-click on a clip opens its own menu.
    • Per clip: fit, fill or blur fill, quarter turns, flips and crop; volume, mute and fades; a track's mute, hide and lock.
    • Transitions and titles: crossfade, dip to black, wipe, slide, push and zoom between clips. Titles, lower thirds, end cards and callouts on their own tracks, with fade, rise, type on and pop.
    • Export with sound to MP4 or WebM, the whole project or only In to Out, in landscape, square or vertical frames.
    • Projects are saved as .rvid files, opened again, and their media found again when it has moved. Unsaved work is kept for the launcher's Recover to bring back. The timeline runs left to right in every language, and the editor's words are in Urdu, Arabic and Hindi too.

    Image

    • Quick edits: flip vertical, resize by pixels or percent, invert, and straighten by an angle keeping the largest upright rectangle. Pen, rectangle, ellipse, arrow and text marks drawn on the picture stay editable until Done.
    • Tone: auto enhance, levels, curves, white balance, exposure, highlights and shadows, plus sharpen, noise reduction, vignette and red eye, all worked on the pixels away from the window so it keeps answering.
    • Clipboard and export: copy the picture, paste one as a new picture, and export with a JPEG or WebP quality, a size cap, a longest side, and the metadata stripped or kept.

    Pictures

    • Batch edit: the pictures in a folder resized (by a percentage, to fit inside a box, or by the longest side), converted to PNG, JPEG or WebP, renamed by a pattern of name, number, date and size, turned upright by their EXIF orientation, with metadata stripped or kept. They are written beside the originals or in a chosen folder, and a file already there is never replaced without asking.

    Checked

    • Engine tests for the zoom steps and limits, the wheel and pinch and the point kept under the pointer; the image pipeline, pixel work and batch plan; and the video project (split, trim, ripple, snapping, links, transitions, titles) and the .rvid file.
    • Engine tests for pages across: how many fit at a zoom, where each is drawn, right to left, Side to Side, and which page a point falls on.
    • Window checks drive each app with real input. sidebyside opens a ten-page report and reads the drawn pages back at 100%, 50% and 30%, presses on the right-hand page, types across the fold, and tries Multiple Pages and Side to Side. zoom zooms the four apps by keys, wheel and pinch. image-edits goes through every quick edit, tone tool, mark, export and a batch run. video-editor builds two clips with a tone each and a still at run time, edits them, exports, and reads the file back for its length and tracks.
    • The fuzzer damaged 5,400 files at seed 4312, new documents, workbooks and decks and every old-format file among the fixtures: 2,578 opened and 2,822 refused in a sentence, none faulted.

    Not yet

    • Video reads each source whole into memory, so a very long recording is heavy; speed changes and reverse as edits, a boost above a clip's own volume, word art on the timeline, and an encoder of our own come in later phases. Export runs in real time.
    • The screen recorder and the intro video maker come next on the studio engine, and layers in Image.
    • With pages side by side, the ruler scrolls with the pages rather than staying pinned above them, and Side to Side has no thumbnail strip yet.

    Gate

    Run on Windows (x64) on 2026-10-12, before 1.43.0 was released: 2,213 engine tests, 2,207 passing and 6 skipped where a package they need is not installed; 12 of 12 editing checks; 1,350 of 1,350 application checks; and 10 of 10 windows painted clean.

    The release on GitHub, with its installers →

  17. 10 October 2026

    1.42.110 October 2026

    1.42.0 as it was meant to ship: Rutba Office in Hindi, kashida for Arabic in print, and a week that starts where the language starts it, with installers that build.

    What changed

    • The installers build again
    • Hindi
    • Kashida
    • Calendar's week
    The full notes for 1.42.1

    Fixed

    • The installers build again. 1.42.0 asked the installer to speak Hindi as well, and the Hindi language file in the version of NSIS the build uses is broken (an unterminated string), so the build stopped and 1.42.0 shipped no installers. The installer keeps the languages it had before, Arabic, Chinese and Japanese among them; on a Hindi or an Urdu Windows it shows in English.

    In this release, from 1.42.0

    • Hindi: every word the windows show in Hindi, in Devanagari, with Indian digit grouping and a Devanagari digits choice; drafted by machine against a glossary, awaiting a native speaker's review.
    • Kashida: Justify Low, Medium and High kept in the file and offered for a right-to-left paragraph; printed and saved as PDF with tatweels in the joins between letters.
    • Calendar's week starts on the language's own first day: Saturday in Arabic, Sunday in Urdu and Hindi, Monday in English.

    Checked

    • Nothing in the suite changed but the installer's settings; the engines and the windows are 1.42.0's, which passed before 1.42.0 was tagged.
    • The Cameo check now runs first in the full run of window checks. Chromium's stand-in camera grew unreliable as a long run went on, and the check that passed every time on its own failed deep in the run.

    Gate

    Run on Windows (x64) on 2026-10-10, before 1.42.1 was released: 2,138 engine tests, 2,132 passing and 6 skipped where a package they need is not installed; 12 of 12 editing checks; 1,260 of 1,260 application checks; and 10 of 10 windows painted clean.

    The release on GitHub, with its installers →

    1.42.010 October 2026

    Rutba Office in Hindi, kashida for Arabic, and a week that starts where the language starts it.

    TouchedCalendar

    What changed

    • Hindi
    • The installer
    • Kashida
    • The week starts on the language's own first day
    The full notes for 1.42.0

    Every app

    • Hindi: the app menu's Language section offers हिन्दी beside English, اردو and العربية. Every word the windows show is translated, some 5,360 messages, in standard Hindi in Devanagari with the words Microsoft Office uses in Hindi, drafted by machine against a glossary of the suite's recurring terms (GLOSSARY-hi.md, beside the catalogue), and awaiting a native speaker's review. Counts follow Hindi's rules, numbers are grouped as India groups them (12,34,567), and the Digits section offers Devanagari digits (१२३). The frame stays left to right.
    • The installer opens in Hindi on a Hindi Windows, as it already did in Arabic, Chinese, Japanese and the other languages it ships with. Windows' installer maker has no Urdu, so an Urdu system's installer stays English.

    Documents

    • Kashida: Word's three Arabic justifications, Justify Low, Medium and High, are kept in the file and offered beside Justify for a right-to-left paragraph. Printed and saved as PDF, such a paragraph's lines are filled by lengthening the joins between letters with tatweel, as Arabic is justified, a third, two thirds or all of each line's slack by the level chosen, the rest by the spaces. A kashida goes only where two letters join, never inside lam-alef, a word's last join first. On screen the paragraph is justified by its spaces, since the window's text engine cannot stretch letters.

    Calendar

    • The week starts on the language's own first day: Saturday in Arabic, Sunday in Urdu and Hindi, Monday in English as before.

    Checked

    • The fuzzer damaged 5,400 files at seed 4254, new documents, workbooks and decks and every old-format file among the fixtures: 2,596 opened and 2,804 refused in a sentence, none faulted.
    • The catalogue checks run for Hindi as for Urdu and Arabic: every message translated, both plural forms, no word left in English, every engine message coming back in its own translation, and Indian grouping and Devanagari digits.
    • The window checks open Documents, Worksheets, Presentations and Calendar in Hindi, left to right, typing in Hindi reaching the page and a dialog in Hindi, and hold Calendar to each language's first day of the week.
    • Engine tests hold kashida to where letters join, and a PDF of a paragraph justified with kashida to drawing tatweels while plain justification draws none.

    Not yet

    • For Hindi: the caret moving and deleting by whole syllables, and Devanagari's conjuncts shaped in a PDF, come next.
    • Kashida drawn on screen, and an Arabic spelling dictionary.

    Gate

    Run on Windows (x64) on 2026-10-10, before 1.42.0 was released: 2,138 engine tests, 2,132 passing and 6 skipped where a package they need is not installed; 12 of 12 editing checks; 1,260 of 1,260 application checks; and 10 of 10 windows painted clean.

    The release on GitHub, with its installers →

    1.41.010 October 2026

    Arabic as Office in Arabic works with it: Hijri dates in Worksheets and Calendar, numbers in Arabic's own digits, and Find that reads a word however it is written.

    TouchedWorksheetsCalendar

    What changed

    • Find passes over the marks a word is written with
    • Hijri dates
    • Digits in a number format
    • The Hijri calendar beside the Gregorian
    The full notes for 1.41.0

    Every app

    • Find passes over the marks a word is written with, as Office in Arabic does by default: كتب finds كَتَبَ and كتـــب, احمد finds أحمد, and علي finds على. The vowel marks (harakat), the kashida and the forms of alef and of yeh are set aside, and so are Urdu's and Persian's own yeh and kaf. A match takes its marks along when it is replaced. An Arabic or Urdu window's Find in Documents and Presentations has a Match diacritics box to find a word only as it is written. Worksheets' Find does the same.

    Worksheets

    • Hijri dates: a number format can name the Hijri calendar as Excel's do, with B2 before it or the calendar in its locale code ([$-60401]d mmmm yyyy gives 29 ربيع الآخر 1448). B1 is Gregorian. The dates follow the Umm al-Qura calendar, so a file Excel dates by its older Kuwaiti reckoning can differ from it by a day.
    • Digits in a number format: [$-2000000] writes a number in Arabic-Indic digits (١,٢٣٤.٥٠) and [$-3000000] in Urdu's (۱۲۳), as Excel reads and writes them.
    • An Arabic or Urdu window's number format list offers Hijri date, Hijri long date and a number in the language's own digits.

    Calendar

    • The Hijri calendar beside the Gregorian, as Office's second calendar: each day's Hijri number in the month, week and day views, a month's name on its first day, and the Hijri months in the title. On by default in an Arabic or Urdu window, off elsewhere; the Hijri button turns it either way and the choice is kept.

    Checked

    • The fuzzer damaged 5,400 files at seed 4253, new documents, workbooks and decks and every old-format file among the fixtures: 2,569 opened and 2,831 refused in a sentence, none faulted.
    • Engine tests hold Find to Arabic's marks and letter forms in a worksheet, a document and a deck, and number formats to the Hijri calendar and both sets of digits.
    • The Arabic and Urdu window checks open Calendar too: the Hijri day beside each day, a Hijri month named in its own script, the Hijri button pressed.

    Not yet

    • Kashida justification and an Arabic spelling dictionary. The installer is still English.

    Gate

    Run on Windows (x64) on 2026-10-10, before 1.41.0 was released: 2,130 engine tests, 2,124 passing and 6 skipped where a package they need is not installed; 12 of 12 editing checks; 1,251 of 1,251 application checks; and 10 of 10 windows painted clean.

    The release on GitHub, with its installers →

    1.40.010 October 2026

    Rutba Office in Arabic: every window's words, the frame right to left, and a choice of digits.

    What changed

    • Arabic
    • Six plural forms
    • Digits
    • The frame right to left
    The full notes for 1.40.0

    Every app

    • Arabic: the app menu's Language section offers العربية beside English and اردو. Every word the windows show is translated, some 5,350 messages: the ribbons and their tooltips, the menus, the dialogs and panes, the status bars, and what the engines and services say for themselves. It is Modern Standard Arabic with the words Microsoft Office uses in Arabic, drafted by machine against a glossary of the suite's recurring terms (GLOSSARY-ar.md, beside the catalogue), and awaits a native speaker's review.
    • Six plural forms: a count reads as Arabic says it, for none, one, two, three to ten, eleven to ninety-nine and a hundred or more (شريحة واحدة، شريحتان، 3 شرائح، 11 شريحة).
    • Digits: an Arabic window writes its numbers in Western digits, as Office in Arabic does by default; the app menu's new Digits section switches to Arabic-Indic digits (١٢٣), in counts and dates alike. An Urdu window offers Urdu's own digits (۱۲۳) the same way.
    • The frame right to left, as Urdu's has been since 1.38.0: the ribbon, the panes and the dialogs mirror, while a document's page, a worksheet's grid and formula bar and a slide's stage keep the direction their document gives them.
    • Paper and envelope sizes keep their order in a right-to-left line (21 × 29.7 cm, not 29.7 × 21), in Urdu as well.

    Fixed in Urdu

    • Source Manager's two Copy buttons point to the list each copies into, now that the lists sit mirrored.

    Checked

    • The fuzzer damaged 5,400 files at seed 4252, new documents, workbooks and decks and every old-format file among the fixtures: 2,551 opened and 2,849 refused in a sentence, none faulted.
    • The catalogue checks are one per language: every message translated, every plural form Arabic's rules can choose given, no word left in English, and every engine message coming back in its own translation.
    • The window checks that open Documents, Worksheets and Presentations in Urdu run in Arabic too: the frame right to left, the page, grid and stage as their documents have them, typing in Arabic reaching the page, and a dialog in Arabic.

    Not yet

    • Hijri dates, Find that ignores diacritics, kashida justification and an Arabic spelling dictionary come next. The installer is still English.

    Gate

    Run on Windows (x64) on 2026-10-10, before 1.40.0 was released: 2,124 engine tests, 2,118 passing and 6 skipped where a package they need is not installed; 12 of 12 editing checks; 1,249 of 1,249 application checks; and 10 of 10 windows painted clean.

    The release on GitHub, with its installers →

  18. 9 October 2026

    1.39.09 October 2026

    The rest of Rutba Office in Urdu: what the engines and services say for themselves, and the names they hand the windows.

    TouchedWorksheets

    What changed

    • Messages from the engines in Urdu
    • Open files with Rutba Office
    The full notes for 1.39.0

    Every app

    • Messages from the engines in Urdu: a refusal or a failure the document thread, a file reader or a mail, calendar or contacts service gives in its own words (a wrong password, a file that will not open, a step a document cannot take) now reaches an Urdu window in Urdu, some 310 of them. The engines keep writing them in English, for the logs and for anyone reading a report, and the window finds the translation as the message arrives, putting back the file names, style names and numbers it carried.
    • Open files with Rutba Office gives its instructions and its result in the window's language.

    Documents

    • The citation styles' editions, the source types and every bibliography field in Create Source, the Table of Authorities categories in Mark Citation and Insert Table of Authorities, a field's description and text formats in Insert Field, the envelope sizes, and the label kinds and each label's line in Labels and Label Options show in Urdu.

    Worksheets

    • The Power Query editor's Applied steps read in Urdu, each step in a sentence of its own so the column, the value and the verb fall in Urdu's order, and Merge Queries' join kinds with them.

    Checked

    • The fuzzer damaged 5,400 files at seed 4251, new documents, workbooks and decks and every old-format file among the fixtures: 2,601 opened and 2,799 refused in a sentence, none faulted.
    • The window checks of the dialogs this touches (citations, the Table of Authorities, Insert Field, labels and envelopes, mail merge, Power Query and its merges, Restrict Editing) and the Urdu windows passed, 81 of 81.
    • A test holds every engine message to its own Urdu: each is filled the way an engine throws it and must come back as its translation, not as a looser message it also happens to fit.

    Not yet

    • The installer is still English, and the whole of the Urdu, the 1.38.0 catalogue and these, awaits a native speaker's review.

    Gate

    Run on Windows (x64) on 2026-10-09, before 1.39.0 was released: 1,945 engine tests, 1,939 passing and 6 skipped where a package they need is not installed; 12 of 12 editing checks; 1,240 of 1,240 application checks; and 10 of 10 windows painted clean.

    The release on GitHub, with its installers →

    1.38.09 October 2026

    Rutba Office in Urdu: every window's words, the frame right to left, and dates as Urdu writes them.

    What changed

    • Urdu
    • Right to left
    • Dates and numbers
    • A language is kept per window
    The full notes for 1.38.0

    Every app

    • Urdu: the app menu's Language section offers English, اردو, or the system's own language. Every word the windows show goes through the message catalogue now, nearly 4,900 of them: the ribbons and their tooltips, the menus, the dialogs and panes, the status bars and the messages a window gives. The Urdu was drafted by machine against a glossary of the suite's recurring terms (GLOSSARY-ur.md, beside the catalogue) and awaits a native speaker's review.
    • Right to left: a window in Urdu mirrors its frame. The ribbon reads from the right, the panes and dialogs follow, and the title bar's window buttons move to the left, as Windows places them for a right-to-left language. A document's page, a worksheet's grid and formula bar, and a slide's stage keep the direction their document gives them, so typing and editing work as they did.
    • Dates and numbers in the window's language: the calendar's days and months, the dates in lists and details, and counts by Urdu's own plural rules.
    • A language is kept per window, as Office keeps it: the windows opened after a choice open in it, the launcher at once, and every window after the next start.

    Changed in English

    • A count of one now reads in the singular where it did not ("1 shape", "1 clip", "1 edit"), and a count of a thousand or more has its comma ("1,234 rows").

    Not yet in Urdu

    • What the document engine and the services say in their own words (a refusal such as a wrong password, a file that will not open) and some names an engine hands the window (citation styles, envelope sizes, a query's steps) are still English, as is the installer. They come next.

    Checked

    • The fuzzer damaged 5,400 files at seed 4250, new documents, workbooks and decks and every old-format file among the fixtures: 2,527 opened and 2,873 refused in a sentence, none faulted.
    • Every window check ran in English as before, and a new set opens Documents, Worksheets and Presentations in Urdu: the frame right to left, the page, grid and stage as their documents have them, typing in Urdu reaching the page, and a dialog in Urdu. A check finds any word left outside the catalogue; another holds the Urdu catalogue whole.

    Gate

    Run on Windows (x64) on 2026-10-09, before 1.38.0 was released: 1,943 engine tests, 1,937 passing and 6 skipped where a package they need is not installed; 12 of 12 editing checks; 1,240 of 1,240 application checks; and 10 of 10 windows painted clean.

    The release on GitHub, with its installers →

    1.37.09 October 2026

    Documents, workbooks and decks are worked on off the main process, so every other window answers while one is busy, and a slide show keeps every quick press.

    TouchedCalendarContacts

    What changed

    • Documents are worked on off the main process
    • If that thread stops
    The full notes for 1.37.0

    Every document app

    • Documents are worked on off the main process: opening, editing, laying out, printing and saving every document, workbook and deck now happen on a thread of their own. The main process only passes the windows' requests in and the answers out, so mail, the launcher, the menu and the other windows answer at once while a long document is laid out for print or a large workbook recalculates. Equations are still laid out by Chromium, and pictures still reach the window that asked for them.
    • If that thread stops, it is started again: the documents it held are closed, their windows are told so in a sentence, and the unsaved work in each, up to its last half-minute copy, is offered back by the launcher. On a machine where the thread cannot start at all, the documents are worked on by the main process as before.

    Presentations

    • A click or a key pressed in a show just as the next slide arrived was lost, so a show set to loop could stop at the end of its slides, and a click after an action had jumped to a slide did not move the show on. The press is kept and carried out when the slide is there.

    Calendar and Contacts

    • An event or a card made while a sync was sending to a CalDAV or CardDAV server was never sent: the sync cleared the whole queue when it finished. It stays queued for the next sync. A Sync pressed while one runs now waits for it and runs once more, so a change made a moment before goes up with it.

    Checked

    • The fuzzer damaged 5,400 files at seed 4249, new documents, workbooks and decks and every old-format file among the fixtures: 2,572 opened and 2,828 refused in a sentence, none faulted.
    • Every window check ran with the documents on their own thread; a new check shows another window's request answered in a millisecond while the thread lays out a 240-page document for print. A module thread was started from inside an asar archive built as the installer builds one.

    Gate

    Run on Windows (x64) on 2026-10-09, before 1.37.0 was released: 1,938 engine tests, 1,932 passing and 6 skipped where a package they need is not installed; 12 of 12 editing checks; 1,234 of 1,234 application checks; and 10 of 10 windows painted clean.

    The release on GitHub, with its installers →

    1.36.09 October 2026

    Every one of Office's WordArt warps drawn, WordArt that prints as the page shows it, and Define New Multilevel List with lists linked to the heading styles.

    What changed

    • Define New Multilevel List
    • Lists linked to the heading styles
    • WordArt prints as it shows
    • The last of the warp gallery
    The full notes for 1.36.0

    Documents

    • Define New Multilevel List: Home → Multilevel List → Define New Multilevel List makes a list of one's own, a level at a time: its number style (1, 01, a, A, i, I, a bullet or none), the number's own words with the levels above it drawn in (Chapter %1., %1.%2), where it starts, where the number and the text sit, legal numbering, and a name. A preview numbers each level as it is set, by the same counting the page uses.
    • Lists linked to the heading styles: a level can be linked to a paragraph style, so every Heading 1 reads Chapter I., II. and every Heading 2 1.1, 1.2 by its style, as Word links a heading to a list. A paragraph given the style later is numbered with it; a heading taken out of the list is taken out as Word does it. Files whose styles carry a list are now numbered when they open.
    • WordArt prints as it shows: a text box under Transform is written to the PDF a letter at a time, along the arc, the circle or the button's lines, or stretched between a warp's two curves, laid out by the same code that draws it on the page. It printed straight before.

    Every app with WordArt

    • The last of the warp gallery: Fade: Up and Fade: Down draw the words in towards the top or the foot; Deflate-Inflate and Deflate-Inflate-Deflate curve the line between their lines; and the poured Circle and Button are drawn round their Follow Path twins' paths. All thirty-six of Office's warps are now drawn, in Documents, Presentations and Worksheets.

    Checked

    • The fuzzer damaged 5,400 files at seed 4248, new documents, workbooks and decks and every old-format file among the fixtures: 2,569 opened and 2,831 refused in a sentence, none faulted.

    Gate

    Run on Windows (x64) on 2026-10-09, before 1.36.0 was released: 1,935 engine tests, 1,929 passing and 6 skipped where a package they need is not installed; 12 of 12 editing checks; 1,232 of 1,232 application checks; and 10 of 10 windows painted clean.

    The release on GitHub, with its installers →

    1.35.09 October 2026

    Pivot Column and Conditional Column in Power Query, scripts that set widths and merge cells, and a Save that no longer holds every window while it compresses.

    TouchedWorksheets

    What changed

    • Pivot Column
    • Conditional Column
    • More of Office Scripts' calls
    • Save no longer holds the other windows
    The full notes for 1.35.0

    Worksheets

    • Pivot Column: the Query Editor turns each value of a column into a column of its own, filled with another column's values summed, counted, averaged, at their least or most, or not added up at all.
    • Conditional Column: a new column whose value is what the first condition a row meets gives (if Region equals East then Home), or an otherwise value.
    • More of Office Scripts' calls: a script sets a column's width and a row's height in points, autofits columns, merges and unmerges cells, strikes text through and aligns it to the top, middle or bottom. Record Actions now writes lines for widths, heights, merges, clearing, the rest of the font's look, and sheets added or renamed.

    Every document app

    • Save no longer holds the other windows: the changed parts of a file are compressed off the main process, so saving a large workbook leaves mail and the other windows answering. An edit made while a save runs is kept for the next save rather than half included.

    Fixed

    • Worksheets: a script that set a column's width or a row's height, or autofitted columns, was refused when it ran, though the calls were offered; they take effect.

    Checked

    • The fuzzer damaged 5,400 files at seed 4247, new documents, workbooks and decks and every old-format file among the fixtures: 2,550 opened and 2,850 refused in a sentence, none faulted.

    Gate

    Run on Windows (x64) on 2026-10-09, before 1.35.0 was released: 1,932 engine tests, 1,926 passing and 6 skipped where a package they need is not installed; 12 of 12 editing checks; 1,228 of 1,228 application checks; and 10 of 10 windows painted clean.

    The release on GitHub, with its installers →

    1.34.09 October 2026

    Word's Multilevel List gallery, the rest of WordArt's warps, Home and End in Worksheets with a grid that follows the active cell, and a performance budget the windows are held to.

    TouchedWorksheets

    What changed

    • Multilevel List gallery
    • The rest of the warps
    • Home, Ctrl+Home and Ctrl+End
    • A performance budget in the windows
    The full notes for 1.34.0

    Documents

    • Multilevel List gallery: Home → Multilevel List opens Word's list library: 1. 1.1. 1.1.1., 1) a) i), I. A. 1., Article I. with Section 1.01 and (a) under it, and the bullets. Each list is written into the document once, named, and numbered as Word numbers it, the Section level showing the Article's number in figures with a leading zero of its own. A document Word made with these lists opens numbered the same way.

    WordArt

    • The rest of the warps: Transform → More now holds thirty, adding Square, the poured Arch: Up and Arch: Down, the cans, the rings, the cascades and Stop, in Documents, Worksheets and Presentations.

    Worksheets

    • Home, Ctrl+Home and Ctrl+End: Home goes to the first column of the row, Ctrl+Home to A1 (or the first cell past frozen panes), Ctrl+End to the last cell in use, and Shift stretches the selection there, as Excel's do.

    Fixed

    • Worksheets: an arrow, Enter, Tab or a jump that took the active cell out of sight left the grid where it was, with the selection off the screen; the grid now scrolls the least that shows the active cell.

    Checked

    • A performance budget in the windows: a 300-page document, a 100,000-row workbook and a 200-slide deck each open within twenty seconds and are taken to their end within eight, their window under 1.5 GB. On this machine the document opened in about 2 seconds and scrolled to its end at once, the workbook opened in under 1 second and Ctrl+End reached its last row in a fifth of a second, and the deck opened in under 1 second, each window between 130 and 230 MB.
    • The fuzzer damaged 5,400 files at seed 4246, new documents, workbooks and decks and every old-format file among the fixtures: 2,543 opened and 2,857 refused in a sentence, none faulted.

    Gate

    Run on Windows (x64) on 2026-10-09, before 1.34.0 was released: 1,925 engine tests, 1,919 passing and 6 skipped where a package they need is not installed; 12 of 12 editing checks; 1,227 of 1,227 application checks; and 10 of 10 windows painted clean.

    The release on GitHub, with its installers →

    1.33.09 October 2026

    Record with the camera in Presentations, templates of your own, Rotate the picture that saves the file, and four more Power Query transforms.

    TouchedWorksheetsPictures

    What changed

    • Record with the camera
    • Templates of your own
    • Rotate the picture
    • Power Query
    The full notes for 1.33.0

    Presentations

    • Record with the camera: recording a show from a deck with cameos records the camera too, slide by slide, and puts each slide's recording in its cameo's place, as PowerPoint does; in the show it plays with its slide instead of the live camera. Record → Reset to Cameo takes a slide's recording off and the cameo is live again. A camera that is busy or slow to start is waited for, rather than the show being recorded with the voice alone.

    Every document app

    • Templates of your own: Save as Template, in the app menu of Documents, Worksheets and Presentations, saves a .dotx, .xltx or .potx in the folder Word, Excel and PowerPoint keep templates in (Documents, Custom Office Templates), so Office lists the same ones. Home lists them under Start something, and choosing one opens a new, untitled document made from it, the template left as it was.

    Pictures

    • Rotate the picture: Ctrl+R, the right-click menu or the bar's button turns the picture a quarter clockwise in its file and saves it, as Windows Photos does. A JPEG is turned by its orientation tag, its pixels untouched; a PNG is redrawn, which loses nothing. Its tile follows. Other formats are turned in Image, which Edit opens.

    Worksheets

    • Power Query: the Query Editor fills a blank cell from the one above or below (Fill Down and Fill Up), turns every column but the one picked into rows of Attribute and Value (Unpivot Other Columns), joins two columns with a separator (Merge Columns), and keeps the first or last characters of a text or the part before or after a delimiter (Extract), each an applied step.

    Checked

    • The fuzzer damaged 5,400 files at seed 4245, new documents, workbooks and decks and every old-format file among the fixtures: 2,468 opened and 2,932 refused in a sentence, none faulted.

    Gate

    Run on Windows (x64) on 2026-10-09, before 1.33.0 was released: 1,921 engine tests, 1,915 passing and 6 skipped where a package they need is not installed; 12 of 12 editing checks; 1,220 of 1,220 application checks; and 10 of 10 windows painted clean.

    The release on GitHub, with its installers →

    1.32.09 October 2026

    The rest of WordArt's warps, a picture watermark, printing from what the file keeps, and a tile for every picture the window can draw.

    TouchedPictures

    What changed

    • More warps
    • Picture watermark
    • Print shows the document's own page
    • Print keeps its choices in the deck
    • A tile for a picture the system has no thumbnail for
    The full notes for 1.32.0

    WordArt

    • More warps: Shape Format → Text Effects → Transform → More gives twenty of Office's warps, in Documents, Worksheets and Presentations: the waves and double waves, Inflate and Deflate (top, bottom or both), the slants, triangles, chevrons, fades and curves. Each stretches the words across the box between its two curves, a letter at a time, its uprights kept upright as Office keeps them, and is saved as Office saves it. More shows as pressed while one is on.

    Documents

    • Picture watermark: Design → Watermark → Picture watermark puts a picture from this computer behind the words on every page, washed out and centred inside the margins. It is saved in the header as Word saves one, so Word shows it too, a document Word made with one opens with it, and it is printed and drawn in the PDF. Words chosen afterwards replace it, and Remove watermark takes it off.
    • Print shows the document's own page: File → Print starts from the document's paper, orientation and margins rather than from a default, and a change there changes the document, as Word's Print does. A3 and A5 can be chosen as well as A4, Letter and Legal.

    Presentations

    • Print keeps its choices in the deck: full page slides, notes pages or a handout of so many slides to a page, and a frame round each slide, are kept where PowerPoint keeps them, so the next print opens on them, here or in PowerPoint.

    Pictures

    • A tile for a picture the system has no thumbnail for: an SVG, an AVIF or a WebP showed the kind's icon where the system made no thumbnail; the window now draws the picture at the tile's size and keeps it for the next visit, as it draws a clip's frame.

    Fixed

    • Pictures on Linux: every photo was decoded whole on the main process to make its tile, and a 40-megapixel one held every window for a second a tile; only a small picture is shrunk there now, and the window draws the rest off its own thread.
    • An old Word, Excel or PowerPoint file cut short inside its first 512 bytes was refused with a programming error; it is refused in a sentence saying it was cut short.

    Checked

    • The fuzzer damaged 5,400 files at seed 4244, new documents, workbooks and decks and every old-format file among the fixtures: 2,521 opened and 2,879 refused in a sentence, none faulted, once the file cut short inside its header it caught was refused in one.

    Gate

    Run on Windows (x64) on 2026-10-09, before 1.32.0 was released: 1,909 engine tests, 1,903 passing and 6 skipped where a package they need is not installed; 12 of 12 editing checks; 1,206 of 1,206 application checks; and 10 of 10 windows painted clean.

    The release on GitHub, with its installers →

    1.31.09 October 2026

    WordArt's Transform in Documents, Worksheets and Presentations, the last open findings of the 1.29 reading put right but two, and a network share no longer looked at because a file named it.

    What changed

    • Transform
    • Merging or splitting cells with Track Changes on asks first
    The full notes for 1.31.0

    WordArt

    • Transform: Shape Format → Text Effects → Transform lays a WordArt's or a text box's words along Arch Up, Arch Down, Circle or Button, in Documents, Worksheets and Presentations. The words are drawn along the arc, round the circle or over the button on the page, the sheet and the slide, in a slide's thumbnail and in the show, each line at the size that fills its part of the path inside the box. They are saved as Word, Excel and PowerPoint save them, so Office shows the same arch, and a file Office made with a Transform opens with it. No Transform puts the words straight again. In Documents the words show straight while the caret is in them, to be edited, and go back along the path when it leaves.

    Documents

    • Merging or splitting cells with Track Changes on asks first, as Word does: neither is recorded as a change, here or in Word, and Word says so before it does either. Asked from the ribbon and from a table's right-click menu alike, and Cancel leaves the table as it was.

    Fixed

    • Worksheets: the fill handle copied a merged block's values and look but not its merge; each merge is repeated where it falls in the new cells, as Excel's fill repeats it, and Fill Without Formatting takes none.
    • Worksheets: a Power Query column given a type lost it through append, merge, group, rename and the other steps, and a column made dates loaded as bare day numbers; a type follows its column, and a date column loads in the short date format.
    • Documents: the split view's lower pane copied the whole document a moment after every change, every page of a long one; it copies only the paragraphs typed in.
    • Presentations: a screen recording was gathered whole in the window and sent to the deck in one piece, about 19 MB a minute; it goes by a scratch file a few megabytes at a time, and the file is removed once the slide has it, or on Cancel.
    • Presentations: a 3-D Rotation chosen while a depth just chosen was still on its way put the depth back to 0; both stand.
    • Contacts: every card's photo went to the window on every list and every search; each photo is fetched when its card is drawn, and kept until the card changes.
    • Screenshot: taking a window drew every window and every screen at full size to keep one; only the kind asked for is drawn.
    • Pictures, Video and Image: a picture or a clip on a network share was looked at whenever a window asked, and looking at a share hands it this computer's Windows sign-in; one is shown now only once you reached the share yourself in this run, by opening a file there, browsing its folder or picking it in a dialog. A file on this computer is shown as before.

    Checked

    • The fuzzer damaged 5,400 files at seed 4243, new documents, workbooks and decks and every old-format file among the fixtures: 2,550 opened and 2,850 refused in a sentence, none faulted.

    Gate

    Run on Windows (x64) on 2026-10-09, before 1.31.0 was released: 1,898 engine tests, 1,892 passing and 6 skipped where a package they need is not installed; 12 of 12 editing checks; 1,196 of 1,196 application checks; and 10 of 10 windows painted clean.

    The release on GitHub, with its installers →

    1.30.09 October 2026

    A consolidation release: what a reading of 1.26 to 1.29.10 found, put right across every app; ratings, tags and folder counts in Pictures; and the gate's own counts on the record.

    TouchedPictures

    What changed

    • Ratings and tags
    • A folder's tile says how much it holds
    • Subfolders
    • Dialogs keep focus as a dialog should
    • Opening a file no longer stills every window
    • A drag whose mouseup is lost still ends

    and 1 more in the notes

    The full notes for 1.30.0

    Pictures

    • Ratings and tags: a picture is rated one to five stars from the details, or with the keys 0 to 5 as Windows Photos takes them, and tagged there. Both are kept on this computer by the file's path and never written into the picture. The stars show on its tile, the filter finds a tag as well as a name, a rating filter keeps so many stars or more, and Sort → Highest rated puts the best first.
    • A folder's tile says how much it holds before it is entered.
    • Subfolders searches the folders inside the one open, nearest first, for a name or a tag.

    Every app

    • Dialogs keep focus as a dialog should: focus goes into a dialog when it opens, Tab and Shift+Tab go round inside it rather than into the page behind, focus goes back to what opened it when it closes, and Escape closes the top dialog only. What's New and About are dialogs too now, the password field's Show button can be reached with Tab, the comment threads' and the Selection pane's icon buttons have names, and an export's progress is read out as it changes.
    • Opening a file no longer stills every window: the file is read and unzipped off the main process, so a large workbook or a file on a slow drive leaves mail and the other windows answering.
    • A drag whose mouseup is lost still ends: the window left mid-drag, or the button let go outside it, no longer leaves a sheet scrolling or a picture following the pointer.
    • What a file names is not opened on its say-so: a letter's recipient list is attached only after you are asked, as Word asks, and never from a network share, since reading a share hands it this computer's Windows sign-in; Refresh does not read a query source on a share that only the workbook names; and a program asked to be opened from any window is warned about from the main process.

    Fixed

    • Documents: a document longer than five hundred pages printed and exported only its first five hundred; it lays out whole.
    • Documents: Accept All and Reject All left an inserted or deleted table row marked, or kept it as an empty row, and passed over the headers, footers, footnotes and endnotes; they reach all of them now, and undo puts them back. A change made over several runs or paragraphs is saved with an id for each piece, as the schema asks.
    • Documents: Update all left a table's = fields alone where Word wrote them as complex fields, and showed 10 where the field asked for 10.00; both forms are worked out, and a number picture is honoured however it is written.
    • Worksheets: Power Query turned a quoted "007" and a split "A-007" into 7; the zeros are kept.
    • Worksheets: Fill Series with a step that never reaches its stop filled ten thousand cells; it is refused. A series passes over the cells a merge hides.
    • Worksheets, Documents, Presentations: a control character in a cell or a paragraph, pasted from a terminal, was written as it was and the file called damaged; it is left out.
    • Presentations: Export to Video decoded every slide before the first frame (about 1.6 GB for two hundred slides at 1080p) and left its recorder running when a slide would not draw; each slide is drawn while the one before plays, and everything is let go however the export ends.
    • Presentations: Record kept the microphone's raw samples; a quarter of that is kept now. A second press while the microphone opens is not a second recording, and closing the window or the Record Sound box while it opens turns the microphone off.
    • Presentations: a cameo whose camera stopped asked for it three times in a second and a half, and one whose camera was busy (held by another program, or let go a moment before) said there was no camera; both keep asking for about nine seconds, and a camera still in use says so.
    • Presentations: Find Text counted a match split across two runs that Replace Text then left alone; the two agree.
    • Presentations: every picture in a deck was held twice, and a picture whose bytes changed (a 3D model turned) kept its old copy too; each is held once.
    • Mail: Move to, the junk filter and rules rewrote a folder's index for each message, tens of seconds for a few thousand; they write it once.
    • Mail: a message the server marked as junk was let in on a Safe Sender's or a contact's name, which anyone can write; that name now counts only when the server also found the message really came from them.
    • Mail: the store kept every folder it had ever read parsed in memory; it keeps sixty-four.
    • Calendar and Contacts: each change rewrote the whole file, photos and all; a burst of changes is one write.
    • Home: the Recent list looked for each of its files in turn, so a lost network drive held the window; it looks for them all at once and waits on none for long.
    • Pictures: a folder of thousands was listed one file at a time on the main process; it is listed sixty-four at a time without holding it. The thumbnail queue keeps the newest two hundred tiles waiting, not every tile ever scrolled past, the kept thumbnails are trimmed to 400 MB, and a window keeps the frames of three hundred clips rather than every clip it showed.
    • A file the windows write (an exported video, an edited picture) is written beside itself and renamed over, as documents are saved, so a failure part way leaves the old file.
    • Merged letters, labels, a comparison or a photo album that no window took stayed in memory for the life of the app; they are let go after ten minutes.

    Checked

    • The fuzzer now damages the old-format files as well as new ones (Word, Excel and PowerPoint 97-2003 and 95, and the password-protected ones), judges an answer by the error it was made from, and stops a file at two seconds: 5,400 damaged files, every one opened, asked its password or refused in a sentence. The ZIP reader it caught reading past a damaged archive's end checks each record first.

    Gate

    Run on Windows (x64) on 2026-10-09, before 1.30.0 was released: 1,882 engine tests, 1,876 passing and 6 skipped where a package they need is not installed; 12 of 12 editing checks; 1,184 of 1,184 application checks; and 10 of 10 windows painted clean.

    The release on GitHub, with its installers →

  19. 8 October 2026

    1.29.108 October 2026

    Scripts in Worksheets that run on this computer, Merge and Append in Power Query, Show Changes for decks, and a mail merge that keeps its recipient list's ticks.

    TouchedWorksheets

    What changed

    • Automate → scripts
    • Record Actions
    • Power Query → Merge Queries
    • Review → Show Changes
    • Mail merge keeps Edit Recipient List's ticks and sort
    The full notes for 1.29.10

    Worksheets

    • Automate → scripts: New Script and All Scripts open the Code Editor, with scripts in the shape of Excel's Office Scripts (function main(workbook)), kept on this computer, each to run, edit, save or delete. A script reads and writes ranges by address, values, formulas and number formats, sets bold, italic, colours, fills, sizes and alignment, adds and renames sheets, and logs to the editor. It runs in a worker of its own that can reach nothing, not the network and not a file, on a snapshot of the workbook; what it did comes back and is applied as one undo step. A script that fails changes nothing and says why, and one that runs on past fifteen seconds is stopped.
    • Record Actions turns what you type and format while it is on into a script.
    • Power Query → Merge Queries joins each row to the rows of another table or query whose key matches the picked column (Left Outer, Inner, Left Anti or Full Outer), bringing in the other's columns; Append Queries puts another table's or query's rows after the query's own. A query may read another query's result, run afresh on Refresh All.

    Presentations

    • Review → Show Changes: a deck opened again shows what is different in it since it was last open on this computer, as when it comes back changed from a shared drive or by e-mail. A toast says how many slides differ and who saved it last, the strip marks them, and the Changes pane lists each slide added, removed, moved or changed, naming the shapes added and removed, the words changed and the shapes moved. A click goes to the slide; Dismiss clears the list.

    Documents

    • Mail merge keeps Edit Recipient List's ticks and sort in the document, so the same people are left out when the letter is opened again, even if the list has moved its rows about.

    Fixed

    • Presentations: a cameo whose camera stopped, or was handed back already stopped, stayed blank; the camera is asked for again.

    Checked

    • Worksheets' and Presentations' PDFs carry Arabic, Hebrew and Greek as text, so the words can be found, read aloud and copied out; a check now holds them to it.

    The release on GitHub, with its installers →

    1.29.98 October 2026

    Motion paths and effects by paragraph in Presentations, 3D models in Presentations and Documents drawn on this computer, Cameo with the camera live on a slide, and the mail merge rules Ask, Fill-in and Set Bookmark.

    What changed

    • Motion Paths
    • Effect Options → Sequence
    • 3D Models
    • Cameo
    • 3D Models
    • Mail merge Rules → Ask, Fill-in and Set Bookmark
    The full notes for 1.29.9

    Presentations

    • Motion Paths: Animations → Motion Paths, and a Motion Paths heading in More Effects and Add Animation, move a shape from where it stands down, up, left or right, along an arc or a turn, round a circle or a square, or through a loop. Each is written as PowerPoint writes a path drawn by hand, so PowerPoint plays it as its own. The path of the picked shape is drawn on the stage from its centre, green where it starts and red where it ends. In the show the shape travels along the path and stays where it ends; a second path starts there, and a step back puts it where the show has it.
    • Effect Options → Sequence: a text shape's entrance, emphasis or exit plays as one object, all at once, or by paragraph, each paragraph on a click of its own. The Animation Pane lists each paragraph's effect by its words, and PowerPoint reads them as its own paragraph effects.
    • 3D Models: Insert → 3D Models reads a glTF model (a .glb, or a .gltf with its files beside it) and puts it on the slide as the picture the suite's own renderer draws of it: lit, textured, smooth at its edges, the same on every computer. The 3D Model tab turns it to Front, Back, Left, Right, Top, Bottom or one of four corners above and below, turns it fifteen degrees at a time, and resets it; a handle in its middle turns it as it is dragged, drawn small while the pointer moves. The model is kept beside its picture in the file, so PowerPoint and every other reader show the picture.
    • Cameo: Insert → Cameo and Record → Cameo put a cameo at the slide's lower right. The show fills it with the computer's camera, live, mirrored as a camera pointed at oneself is and cropped to its shape; Camera Format → Preview shows it on the stage, and Camera Styles makes it a rectangle, an oval or a rounded rectangle. The camera is opened only while a cameo is shown and closed with the last of them. Any other reader shows a grey shape with a camera drawn in it.

    Documents

    • 3D Models: Insert → 3D Models puts a glTF model at the caret as the picture the suite draws of it, in a paragraph of its own; the 3D Model tab turns it to any of the ten views, fifteen degrees at a time and back to where it went in. One Undo brings back the old picture with the old view. Word opens the document with the picture in place.
    • Mail merge Rules → Ask, Fill-in and Set Bookmark, each with Word's own dialog and the field Word writes. An Ask or a Set can show its bookmark's value straight after it. Finish & Merge asks the merge's questions before it runs: one answer for a question asked once, one for each record otherwise, each filled with its default; every letter, message or printed copy takes its record's answers.

    The release on GitHub, with its installers →

    1.29.88 October 2026

    Power Query in Worksheets, a thesaurus in all three apps, calendars and contacts kept in step with a CalDAV and CardDAV server, Arabic, Hebrew, Greek and Cyrillic in a document's PDF, Design Ideas worked out on this computer, and a cut pasted that takes every reference with it.

    TouchedWorksheetsCalendarContacts

    What changed

    • Get & Transform (Power Query)
    • Queries & Connections
    • A cut pasted takes every reference with it
    • Review → Thesaurus
    • The PDF speaks Arabic, Hebrew, Greek and Cyrillic
    • Design Ideas

    and 1 more in the notes

    The full notes for 1.29.8

    Worksheets

    • Get & Transform (Power Query): Data → From Table/Range opens the Power Query Editor on the table or the list round the cell, and From Text/CSV on a CSV, TSV or text file, its first row the headings. The editor shows the first hundred rows the query would load and builds its steps from the column picked: remove it or every other column, rename it, give it a type, filter, sort, replace values, split it at a comma, a tab, a space or another character, trim it or change its case, group by it with a count, a sum, an average, the least or the most, keep the top rows, remove duplicates or blank rows, use the first row as headings and add an index. The applied steps are listed beside the rows; one clicked shows the table as it stood after it, a new step goes in after the one picked, and × takes a step away. Close & Load writes the result as a table on a sheet named after the query.
    • Queries & Connections lists the workbook's queries with the rows each loaded: Refresh runs one again on its source as it is now, Edit opens it in the editor, Delete takes the query away and leaves its sheet. Refresh All runs every query before it refreshes the pivot tables, and each refresh is one undo step. Recent Sources offers the files queries read lately.
    • The queries are kept in the workbook, in a part of the suite's own. Excel keeps that part and opens the loaded tables as tables; it does not read the queries as its own Power Query, which is a binary package this suite neither reads nor writes.
    • A cut pasted takes every reference with it, as Excel's does: a formula anywhere in the workbook that names only the moved cells, on their sheet or another, names where they went, dollar signs and all, and so does a defined name; a range only partly moved stays as it was. The cells can be pasted onto another sheet, and what reads them then names that sheet. One undo puts every sheet the paste touched back.

    Documents, Worksheets and Presentations

    • Review → Thesaurus (Shift+F7) opens a pane on the word at the caret, the selected word, the active cell's word or the word where the caret was in a shape's text: its meanings, each a group of words of like meaning under its part of speech, from a thesaurus of the suite's own of some six thousand words in British spelling. A word with an ending is looked up by the word it was made from; a word clicked is looked up in turn, with Back to the one before; Insert puts a word in place of the one in the document, in its capitals, as one undo step.

    Documents

    • The PDF speaks Arabic, Hebrew, Greek and Cyrillic. What the PDF's own fonts cannot say is drawn in a TrueType font the computer has whose licence allows embedding, subset to the glyphs a page uses, with a ToUnicode map so the words copy back out of the PDF. Arabic letters take their joined forms, Urdu's and Persian's own among them, with the lam-alef ligature; a right-to-left line is put in drawing order by the bidirectional algorithm, numbers and Latin words kept as they read and brackets mirrored; bold and italic are drawn as Word draws a face it lacks. A right-to-left paragraph is laid from the right margin, its alignment mirrored and its list label in the right-hand gutter.

    Presentations

    • Design Ideas (Home and Design → Design Ideas), worked out on this computer rather than asked of a service: a pane of layouts the slide's own title, words and pictures suit, each drawn as the slide would be: the picture on the right or the left beside the words, across the slide under a title band, the pictures in a row, the title on a band of the theme's accent, an accent bar down the side, the title centred over a rule, light words on the theme's dark colour. A click applies one in a single undo step; shapes it adds sit behind the words in the theme's colours, so a new theme recolours them, and a picture is cropped to its new box so it keeps its proportions.

    Calendar and Contacts

    • Accounts on a CalDAV and CardDAV server, kept in step. Home → Accounts adds a server by its address, a user name and a password (an app password for iCloud and the like), finds the person's calendars and address books and brings them in: each calendar beside the person's own, each card among theirs. A sync sends what changed here first, written so that an event changed on the server meanwhile is never overwritten unseen and the server's copy wins, then fetches only what changed there. It runs when an account is added, on Sync, a little after a change made here, and every quarter of an hour. Removing an account takes its calendars and cards away and touches nothing on the server. Requests go only to the server typed, over HTTPS, or plain HTTP to this computer alone.

    Fixed

    • Presentations: a picture PowerPoint had cropped (a:srcRect) was drawn whole, squeezed into its frame; it is drawn cropped, as PowerPoint draws it.
    • Worksheets: a cut pasted moved the cells but left the formulas that read them pointing at their old place, and could not be pasted onto another sheet.

    The release on GitHub, with its installers →

    1.29.78 October 2026

    Worksheets select, copy and fill the way Excel does: a range chosen with the mouse, copy, cut and paste through the system clipboard, Paste Special with its operations and Transpose, and the fill handle's series and Auto Fill Options.

    TouchedWorksheets

    What changed

    • A range is chosen with the mouse
    • Copy, Cut and Paste work through the system clipboard
    • Paste Special
    • The fill handle continues a series
    • Home → Fill → Series
    The full notes for 1.29.7

    Worksheets

    • A range is chosen with the mouse: a drag from one cell to another selects the cells between, and held past the edge of the grid it scrolls on and keeps selecting; a drag across the column or row headings selects whole columns or rows; Ctrl starts another range beside the one there.
    • Copy, Cut and Paste work through the system clipboard: Ctrl+C puts the cells there as words for any application and as a table a spreadsheet reads by cell; Ctrl+V pastes them, formulas moving with them and their formatting with them; Ctrl+X and Ctrl+V move the cells, their formulas as they were, their old place left empty. Cut, Copy, Paste and Paste Special are on the right-click menu too.
    • Paste Special (Ctrl+Alt+V, or the arrow beside Paste): all of the copied cells, their formulas, their values or their formatting alone; an operation (add, subtract, multiply or divide) that works the copy out against the cells already there, a number against a number, joined to a formula, words left as they are; Skip blanks; and Transpose, rows to columns, its formulas turned with it. The arrow beside Paste offers Formulas, Values, Formatting and Transpose in one click.
    • The fill handle continues a series: two numbers dragged down carry on by their step, a date by days, a month name by months, as before, and now from the whole selection, where it filled from the active cell alone. Hold Ctrl to copy a series, or make a series of a single number. Auto Fill Options, at the corner of the cells just filled, turns the fill into Copy Cells, Fill Series, Fill Formatting Only or Fill Without Formatting.
    • Home → Fill → Series: down the columns or along the rows, linear, growth, or dates by day, weekday, month or year, with a step and a stop; Fill Up and Fill Left beside Down and Right.

    Fixed

    • Worksheets: Ctrl+C put nothing on the system clipboard and Ctrl+V did nothing; only the ribbon's Paste pasted, as plain words.
    • Worksheets: the fill handle sat at the active cell's corner and filled from that cell alone, so a selected run of numbers could not be carried on; Ctrl+D and Ctrl+R over a range, Row Height and Column Width, AutoFit and Add Watch likewise took the active cell for the whole selection.

    The release on GitHub, with its installers →

    1.29.68 October 2026

    Tables in Documents that do what Word's do (Table Design, Table Layout, formulas, Draw Table and the Eraser), right to left in the ruler, sheets and slides, OpenDocument, Rich Text and web pages opened and saved whole, and password-protected Office 97 to 2003 files opened with their password.

    TouchedWorksheetsMail

    What changed

    • A Table Design tab
    • A Table Layout tab
    • Draw Table and the Eraser
    • Formulas in tables
    • Tables are drawn as Word draws them
    • Check Accessibility

    and 12 more in the notes

    The full notes for 1.29.6

    Documents

    • A Table Design tab: Table Styles puts a table in Table Grid, Plain Table 1, Grid Table 1 Light, or Grid Table 4 or List Table 4 in black or any of the six accents, written in the document's theme colours as Word writes them; Table Style Options turn the header row, total row, banded rows and columns and the first and last column on and off; Shading colours the selected cells; Borders draws with a pen in Word's line styles, weights and colours.
    • A Table Layout tab: rows and columns in and out, merge and split cells (a cell into columns and rows, or a merged cell back into its own), Split Table, column width, AutoFit and Distribute Columns, Align Table, the words at the top, centre or bottom of a cell, turned to read down or up, the cells' margins, Repeat Header Rows, Sort, Convert to Text (and Insert's Convert Text to Table), right to left, View Gridlines and Table Properties: the table's width, alignment and alt text, the row's height and whether it may break across pages.
    • Draw Table and the Eraser: the pen draws a new table on the page, or a line down or across a cell to split it there; the eraser joins the two cells either side of the line it is clicked on.
    • Formulas in tables: =SUM(ABOVE), =AVERAGE(LEFT) and the like, cells as Word names them (=B2*C2, =SUM(B2:B4)), arithmetic and brackets, in a number format; Update all formulas works them out again.
    • Tables are drawn as Word draws them, on screen, on paper and in a PDF: in their own lines and shading, in their table style's header row, bands and columns, a merged cell as one cell over the rows it covers, in their own cell margins and where their alignment puts them, and the header rows again at the head of every page the table runs onto.
    • Check Accessibility reads a table cell's words against the cell's own shading and its table style's, and offers to unmerge a table's merged cells in one click.
    • Right to left reaches the ruler, tab stops, tables and sections: in a right-to-left paragraph the ruler and its tab stops count from the right margin, a table can run from the right (Table Layout → Right to Left), and a section lays its columns from the right.

    Worksheets

    • Page Layout → Sheet Right-to-Left puts column A at the right, as an Arabic or Hebrew workbook reads.
    • SUBTOTAL leaves out hidden rows, as Excel's does: 1 to 11 the rows a filter hides, 101 to 111 every hidden row.
    • Data → Auto Outline groups the rows each total adds up above it and the columns each row total adds up to its left, nested as deep as the totals go.
    • Advanced Filter copies a list from another sheet to the one it is started on, the list named with its sheet (Data!A1:D20), as in Excel.

    Presentations

    • A Table Design tab: Table Style Options and Shading for the selected table.
    • A paragraph reads right to left: drawn from the box's right edge with its indent and bullet on that side, and Home → Paragraph turns one either way.

    Files

    • OpenDocument text opens and saves whole: headings, runs in their looks, links, lists at their levels, tables with merged cells, pictures, notes, headers and footers.
    • Rich Text and web pages open as documents, and a document saved as Rich Text, HTML or plain text keeps its headings, list numbers, tables and pictures (Rich Text lists as real lists Word continues).
    • OpenDocument spreadsheets and presentations keep their charts, shapes and pictures, in and out; a stacked chart stays stacked, and an ODF custom shape is drawn as its own outline.
    • A password-protected Word, Excel or PowerPoint 97 to 2003 file opens with its password: RC4 CryptoAPI as Office 2003 onwards writes it, Office 97/2000's RC4 and Excel 5.0/95's obfuscation.

    Mail

    • Junk options per account, as Outlook keeps them; mail to a group or a mailing list you belong to is never junked; mail from chosen countries' domains or in chosen encodings can be blocked.

    Behind the scenes

    • The windows' words go through a message catalogue, counted by each language's own plural rules: the groundwork for translations; no language but English yet.
    • The release workflow runs on actions/checkout and actions/setup-node v5.

    Fixed

    • Documents: an .odt opened as plain paragraphs, and saving as .odt wrote one; its headings, lists, tables and pictures were lost.
    • Documents: saving as Rich Text, HTML or plain text wrote the editor's plain lines, without headings, list numbers, tables or pictures.
    • Documents: a numbered list saved to Markdown lost its numbers, and a nested list its levels.
    • Documents: Insert Table's "repeat the first row as a header" box did nothing.
    • Documents: Check Accessibility measured a table cell's words against the page, not the cell's shading.
    • Worksheets and Presentations: an OpenDocument chart lost its stacking, and an ODF custom shape came in as a box.

    The release on GitHub, with its installers →

  20. 7 October 2026

    1.29.57 October 2026

    Word, Excel and PowerPoint files of every age open in full, references coloured and pointed at as a formula is typed, data bars and icon sets in the cells, tables in their table style and the preset shapes as their outlines on slides, and a selected drawing goes with Delete in every app.

    TouchedWorksheets

    What changed

    • Old Word documents open in full
    • Old Excel workbooks open in full
    • Old PowerPoint presentations open in full
    • A .ppt or .xls saved by Office 2007 or later opens as it was made
    • Pointing at cells while typing a formula
    • Data bars and icon sets are drawn in their cells

    and 4 more in the notes

    The full notes for 1.29.5

    Files

    • Old Word documents open in full: Word 97 to 2003, Word 6.0/95, Word 2.0 and 1.0, Write and DOS Word. They keep their paragraphs and styles, character looks in the document's own code page, lists, tables, links, footnotes, headers and footers, pictures, and floating pictures, text boxes and shapes where Word put them, laid out by the layout rules Word kept in the file. Each is saved as a .docx.
    • Old Excel workbooks open in full: Excel 2.1 to 2003. They keep values and formulas with their last results, names, number formats, fonts, fills and borders in the exact colours Excel 2007 and later kept for them, rich text, merged cells, frozen panes, column widths and row heights, hyperlinks, notes, pictures, charts (their kinds, stacking, axes, labels, legends and colours), shapes with their words, tables with their style and totals row, and conditional formats (colour scales, data bars, icon sets and Excel 97's rules with their formatting). Each is saved as an .xlsx.
    • Old PowerPoint presentations open in full: PowerPoint 97 to 2003. They keep each slide's background, shapes in their fills, gradients, outlines and shadows with their words, pictures, lines, tables, the notes, a slide hidden from the show, its transition and its shapes' effects.
    • A .ppt or .xls saved by Office 2007 or later opens as it was made. Office keeps a copy of the newer description inside such a file (the theme, the slide master and its layouts, and every shape as it was drawn), and that copy is what is opened: slides on their own layouts with real placeholders, shapes with every effect they had. A drawing an older Office changed since is read from the older records it changed.

    Worksheets

    • Pointing at cells while typing a formula, as in Excel. Each reference in the formula is coloured (in the cell, in the formula bar and round the cells it names), the one at the caret drawn heavier. After =, a bracket, a comma or an operator, a click puts the cell's reference in, a drag makes a range, Shift+click stretches it; the arrow keys point in an edit begun by typing, and F4 turns the dollar signs.
    • Data bars and icon sets are drawn in their cells: a bar under its number, as long as its share of the range (faded or solid, with its border, as Excel 2010's rule says), and an icon at the cell's left in the arrow, light, sign, symbol, flag, rating, quarter, star, triangle or box its value earns.
    • A heart, a smiley, callouts, block arrows, a can, a cloud and the flowchart shapes are drawn as their outlines; each was a box of its size.
    • Stacked line and area charts are drawn stacked, and an axis title is no longer taken for the chart's title.

    Presentations

    • Tables are drawn in their table style: the header row in the accent with bold light words and a rule under it, the rows banded, light lines between the cells, a cell's own fill over the style's (tables from Insert → Table among them).
    • The preset shapes (heart, smiley, callouts, block arrows, can, cube, donut, frame, stars, cloud and the flowchart shapes) are drawn as their outlines rather than as a box.

    Fixed

    • Every app: a selected shape, chart or picture did not go with Delete; in Documents one from Insert was refused, in Presentations nothing happened until the slide had been clicked, and Worksheets' right-click on a drawing offered no Delete.
    • Worksheets: a sheet with an Excel 2010 data bar lost its sparklines, and putting a table, a picture, a validation or a hyperlink on it wrote a file Excel had to repair.
    • Worksheets: a sheet's first sparkline was written before its margins, not at its end.
    • Presentations: Escape left Edit Points and let go of the shape too.

    The release on GitHub, with its installers →

    1.29.47 October 2026

    Track Changes that records what Word records, building blocks, Excel 365's newer formulas, right to left in Documents, a junk filter and rich signatures in Mail, Edit Points, pattern fills and 3-D in Presentations, and the bugs found in 1.29.3 put right.

    TouchedWorksheetsMail

    What changed

    • Track Changes records formatting
    • Right to left
    • Building blocks
    • Ctrl+L, Ctrl+E, Ctrl+R and Ctrl+J
    • Excel 365's newer functions
    • PivotTable Fields

    and 7 more in the notes

    The full notes for 1.29.4

    Documents

    • Track Changes records formatting. Bold, a font, a size, a colour, a style, alignment, spacing and indents changed while tracking are kept as Word keeps them, shown in All Markup with who made them, and accepted or rejected one at a time or all at once. So are Replace All, Sort, and paragraph marks (Enter, Backspace and Delete across paragraphs, and each line of a paste), each mark drawn as a ¶ underlined or struck through.
    • Right to left. A paragraph Word marks right to left (w:bidi), or whose style does, runs from the right margin with its indents, hang, borders and drop cap mirrored. Home → Paragraph has Left-to-right and Right-to-left buttons; aligning a right-to-left paragraph writes its alignment mirrored, as Word does.
    • Building blocks. Insert → Quick Parts saves the selection to the Quick Part or the AutoText gallery under a name, and puts it in again with a click, in this document or any other, a heading still a heading, bold still bold. The Building Blocks Organizer lists them to put one in or delete it.
    • Ctrl+L, Ctrl+E, Ctrl+R and Ctrl+J align the paragraph, as the buttons' tooltips always said; Justify shows pressed in a justified paragraph.

    Worksheets

    • Excel 365's newer functions: LAMBDA, named or called where it is written, with MAP, REDUCE, SCAN, BYROW, BYCOL, MAKEARRAY and ISOMITTED; XMATCH; TEXTSPLIT, TEXTBEFORE and TEXTAFTER; VSTACK, HSTACK, TOROW, TOCOL, WRAPROWS, WRAPCOLS, TAKE, DROP, CHOOSEROWS, CHOOSECOLS and EXPAND; SORTBY; RANDARRAY; VALUETOTEXT and ARRAYTOTEXT.
    • PivotTable Fields stands beside the sheet when the cell is in a pivot: tick a field into Rows or Values, move fields between areas, and sum, count, average or take the largest or smallest. The pivot is laid out again at once. Insert → Field List opens it again once closed.
    • Deleting a sheet is one step of undo: the sheet comes back with everything on it.

    Presentations

    • Edit Points. Home → Edit Shape, or a shape's right-click: drag a point and the curves either side bend with it, right-click to delete one or add one on the outline, Escape to leave. The shape becomes a path of its own, kept in the file as PowerPoint keeps one.
    • Pattern fills (the gallery of fifty-four, in two colours) and 3-D: a bevel, depth and its colour, and a 3-D rotation, read, drawn and written as PowerPoint keeps them, in the Format pane.

    Mail

    • A junk filter. Home → Junk marks a message junk or not junk, blocks a sender, or never blocks one or their domain. Junk email options: off, low, high or safe lists only; the Safe and Blocked Senders lists; contacts trusted. Arriving mail is filed by the lists, the server's own spam headers and a filter that learns from what you mark (nothing is sent anywhere to decide), and a message in Junk says why, with Not junk beside it. At the default (low), an untrained filter files only what the server itself marked as spam.
    • Rich-text signatures: bold, italic, underline, colour, size, a link and a picture. A picture in a signature goes as an attachment of the message, which every mail reader shows.
    • Insert link in the composer works, and switching to Plain text and back keeps what was typed.

    Files

    • OpenDocument presentations open as they were made: slides at their own size with each drawing where it stood (text boxes, pictures, shapes in their fill and outline with their words, lines and tables), and the notes. OpenDocument spreadsheets keep their column widths, hidden rows and columns, and frozen panes.

    Fixed

    • Documents: typing in a paragraph holding a change of formatting Word had recorded wrote a file Word could not open; so did Accept or Reject on a paragraph Word added while tracking.
    • Documents: each keystroke in a paragraph holding a tracked deletion wrote the deletion again; formatting across one moved it to the paragraph's end; editing beside a tracked move brought back the words moved away; a paragraph holding a move is now left as it is until the move is accepted or rejected.
    • Worksheets: typing and then adding, moving, renaming or deleting a sheet lost the typing.
    • Worksheets: a formula with a function newer than Excel 2007 was saved without the prefix Excel needs, so Excel showed #NAME?.
    • Mail: moving a message (Archive, Junk, Move to, a rule) lost its attachments.
    • Mail: rules and automatic replies passed over a message delivered late with the date it was written, and handled an older one in its place.
    • Mail: a folder made by a move or by arriving mail did not appear until the account was opened again.

    The release on GitHub, with its installers →

    1.29.37 October 2026

    Sixty more buttons work: the Draw tab in all three apps, video, audio and narration in Presentations, Compare and Split in Documents, and SmartArt everywhere among them.

    TouchedWorksheets

    What changed

    • Draw tab
    • References → Mark Citation
    • Review → Compare
    • View → Split
    • Insert → Object
    • Insert → Signature Line

    and 17 more in the notes

    The full notes for 1.29.3

    Documents

    • Draw tab. Pen and Highlighter with their colours and thicknesses, Add, the Eraser, the Lasso and Ink to Shape, on the page in Print Layout. Each stroke is kept as a freeform floating in front of the words where it was drawn, named Ink N, which Word opens as a drawing.
    • References → Mark Citation (Alt+Shift+I) stays open beside the page as Word's does (the citation, its category and short form, Mark, Mark All and Next Citation), and Insert Table of Authorities previews and writes a table per category, with Update Table beside it.
    • Review → Compare. The original picked with Browse, this document as the revised one: a new document, in a window of its own, with what changed marked as revisions (words taken out and put in within a paragraph, paragraphs removed or added whole).
    • View → Split. The document in two panes, one over the other: the lower one brought up to date as you type and scrolled on its own, a click in it putting the caret there above, the bar between them dragged to share the window.
    • Insert → Object. A new blank document, worksheet or presentation, or an Office document from this computer, embedded as Word embeds one (the file whole, shown as its icon) and opened in its own app by a double-click. What opens is a copy: changes made there do not go back into the document.
    • Insert → Signature Line. The suggested signer's name, title and e-mail, instructions and the sign date, written as Word writes them. The page now draws VML pictures, an older Word's among them, which it left out before.
    • Insert → SmartArt (below).
    • The ¶ that formatting marks show takes no room on its line; a page number right-aligned at the margin no longer drops onto a line of its own.

    Presentations

    • Insert → Video and Audio. A video from this computer at its own shape with a poster frame taken from it, or a sound as a speaker, each with a play bar; in the show a click plays it without moving the show on, with its controls when Show Media Controls is on.
    • Screen Recording (Insert and Record): a window or a screen picked from the Screenshot gallery, recorded with a bar showing the time, and put on the slide as a video.
    • Record. The show recorded with the microphone, From Beginning or From Current Slide, with Pause and Stop: each slide's voice kept as its narration and its time as its timing, as PowerPoint keeps them. Preview, Clear and Audio beside it. Export to Video plays the deck into a file in Full HD, HD or Standard (MP4 where the machine makes one, WebM where it cannot).
    • Transitions → Sound. No Sound, Stop Previous Sound, one of the suite's own sounds (heard as it is picked) or a WAV of yours, written as PowerPoint writes it.
    • Draw tab. Pen, Pencil and Highlighter, Add, the Eraser, the Lasso, the Ruler, Ink to Shape, Ink Replay and Hide Ink; strokes kept as freeform shapes named Ink N.
    • Insert → Zoom. Summary, Section and Slide Zooms: a picture of each slide or section picked, linked to it, which any PowerPoint follows. In the show here a click goes there and the next step comes back; PowerPoint's own zoom effect is not written.
    • Slide Show → Custom Slide Show. The deck's named shows played, and made, edited, copied and removed in PowerPoint's dialog.
    • View → Notes Master and Handout Master, each with a tab of its own, and Slide Master → Insert Slide Master for a second master.
    • Insert → WordArt in PowerPoint's gallery; a run keeps its outline, no fill, glow and shadow.
    • Insert → Object, as in Documents, and View → View Direction, which turns the window right to left.
    • Insert → SmartArt and Home → Convert to SmartArt (below).

    Worksheets

    • Insert → Equation. Typed in its linear form, set over the sheet as math, written as Excel writes one, and opened again by a double-click.
    • Insert → WordArt, and a double-click on a shape opens its words.
    • Draw tab. Pen and Highlighter, Add, the Eraser, the Lasso and Ink to Shape over the cells.
    • Insert → SmartArt (below).

    In more than one app

    • Insert → SmartArt (Documents, Worksheets, Presentations): Basic Block List, Vertical Box List, Basic Process, Basic Chevron Process, Basic Cycle and Hierarchy, drawn from lines typed in the text pane: a Tab in for a line under the one above. It goes in as one group of shapes in the theme's first accent holding their words, which Word, Excel and PowerPoint open and edit. It is not a SmartArt part, so Office's SmartArt tools do not act on it. In Presentations, Convert to SmartArt makes a box's lines a diagram where the box stood.

    Underneath

    • A shape holding words in a Word group (an oval, a rounded box, a chevron) is painted as its shape with its words over it, on the page and in print; a line in a group straight down or across is drawn whole, in Documents and Worksheets.
    • Check runs draw at a 100% display's scale whatever the machine's own, so a laptop's 125% panel no longer fails checks the code passes; the Zoom and Evaluate Formula checks wait for what they read.

    Proven, not promised

    • New engine tests: tests/smartart.test.js, tests/word-compare.test.js, tests/word-toa.test.js, tests/word-ink.test.js, tests/word-object.test.js, tests/word-signature.test.js, tests/deck-media.test.js, tests/deck-narration.test.js, tests/deck-transition-sound.test.js, tests/deck-ink.test.js, tests/deck-object.test.js, tests/deck-custom-shows.test.js, tests/deck-notes-master.test.js, tests/deck-insert-master.test.js, tests/deck-wordart.test.js, tests/sheet-equation.test.js, tests/sheet-ink.test.js, tests/sheet-wordart.test.js.
    • Window checks press each new button and read what it did: RUTBA_VERIFY_ONLY= wordtoa, wordcompare, wordsplit, wordobject, wordink, signature, wordsmartart, deckmedia, screenrec, narration, deckvideo, transitionsound, deckink, deckzoom, customshows, notesmaster, insertmaster, deckwordart, deckobject, viewdirection, decksmartart, sheetequation, sheetwordart, sheetink and sheetsmartart. The narration check records Chromium's stand-in microphone, never the machine's own, and the Screen Recording check records one of the suite's own windows and names no other.

    The release on GitHub, with its installers →

  21. 6 October 2026

    1.29.26 October 2026

    Seventeen more buttons work (Immersive Reader, Screenshot, Icons, Photo Album, Action, Trigger, Rehearse Timings and Design's themes in Documents among them), and a heading Word colours from its theme now takes the theme's colours here too.

    What changed

    • View → Immersive Reader
    • Design → Themes, Colours, Fonts and Effects
    • Design → Set as Default
    • Insert → Screenshot
    • Insert → Action
    • Insert → Photo Album

    and 5 more in the notes

    The full notes for 1.29.2

    Documents

    • View → Immersive Reader. A tab of its own that turns the pages into a column for reading: Column Width, Page Color in sepia or inverse, Line Focus on one, three or five lines that the arrow keys move the words through, Text Spacing, Syllables shown as dots in long words, and Read Aloud. Close puts the pages back; nothing is written to the file.
    • Design → Themes, Colours, Fonts and Effects. The document's theme part, rewritten as Word writes it, one undo step each. A colour named by theme slot (Word's headings are accent 1, darkened) is now drawn from the theme rather than from the hex written beside it, so headings take the new colours, and the styles take the new heading and body faces.
    • Design → Set as Default. After asking, new blank documents start in this document's theme and styles, as Word's Normal template makes them.
    • Insert → Screenshot and Insert → Icons (below).

    Presentations

    • Insert → Action. What a click on a shape does in the show: the next, previous, first or last slide, the end of the show, a slide of the deck or a web address. Kept on the shape as PowerPoint keeps it, and obeyed in the show, in a kiosk too. A slide is kept as a relationship, so the action follows it when slides move.
    • Insert → Photo Album. A new presentation of your pictures in a window of its own: a title slide, then the pictures one, two or four to a slide in the order you set, each fitted without stretching, captioned with its name when asked.
    • Animations → Trigger. An effect started by a click on a shape in the show (a quiz's answer, a hidden note), kept as PowerPoint keeps it, in a sequence of its own. The show keeps what it brings in hidden until the click, plays it then without moving on, and a click anywhere else still moves the show on. A trigger PowerPoint wrote is now read and played too.
    • Slide Show → Rehearse Timings. The show from its start with a clock in the corner; at the end it asks whether to keep each slide's time, and kept, each slide moves on by itself after it. Use Timings and Play Narrations set those flags of the show.
    • Insert → Screenshot and Insert → Icons (below).

    In more than one app

    • Insert → Screenshot (Documents, Presentations): Office's gallery of the other open windows, and the screens, each taken at its own size only when picked and put in like any picture. The window that asked is left out of the list.
    • Insert → Icons (Documents, Worksheets, Presentations): the suite's own icons (the set the ribbon draws with), found by name and put in as a picture in the colour chosen. Nothing is fetched.

    Underneath

    • One reader and one designer of a theme part serve Worksheets and Documents alike.
    • A slide's scene is read again when the deck's order changes, for a slide whose action goes to another slide.

    Proven, not promised

    • New engine tests: tests/deck-action.test.js, tests/deck-album.test.js, tests/deck-trigger.test.js, tests/doc-theme.test.js, tests/icons-insert.test.js.
    • Window checks press each new button and read what it did: RUTBA_VERIFY_ONLY= rehearse, deckaction, album, screenshot, icons, immersive, doctheme and trigger. The Screenshot check takes pictures of the suite's own windows only, and names no other window in what it reports.

    The release on GitHub, with its installers →

    1.29.16 October 2026

    Sixteen buttons that used to be greyed out work now (Language, Gridlines, Set Up Slide Show, Monitor and the Window group among them). Text with a dollar sign in it is written as typed everywhere, and the suite lets go of what it held for a window when the window closes.

    TouchedWorksheets

    What changed

    • Review → Language
    • View → Gridlines
    • Review → Delete
    • View → Arrange All
    • Review → Language
    • Slide Show → Set Up Slide Show

    and 8 more in the notes

    The full notes for 1.29.1

    Documents

    • Review → Language. Marks the selected words as a language, or as not to be checked at all, the way Word keeps it (w:lang, w:noProof), so Word proofs them in their own language too. A right-to-left or East Asian language fills its own slot as well, so Urdu marked as Urdu is proofed as Urdu. Set As Default writes the document's language into its stylesheet's defaults. Spelling reads past French words and words marked not to be checked, and the page stops underlining them.
    • View → Gridlines. A quarter-inch grid over the words' area of every page, inside the margins, to line drawings up by eye. It is on screen only, as in Word: it never prints and nothing of it is written to the file.
    • Review → Delete. Removes the comment on the caret's paragraph, every comment in the document, or one picked in the Comments list (each with its replies, its range marks and the entries Word keeps for it in three other parts) in one step that Undo puts back.
    • View → Arrange All stacks the open documents; Side by Side lays this one beside the one before it.

    Presentations

    • Review → Language. Marks the selected box's words as a language, or as not to be checked, on their runs as PowerPoint keeps them. An edit to a box's words used to write every run back as US English whatever it had been; each run now keeps its own language.
    • Slide Show → Set Up Slide Show. Who the show is for (a speaker, a window, a kiosk), whether it loops and plays its narration and animations, which slides it shows, how it advances and the pen's colour, written into the file where PowerPoint keeps them, and obeyed: the show starts on the range's first slide and loops inside it, a kiosk takes no click or key but Escape, and a show advanced by hand ignores its timings.
    • Slide Show → Monitor. The screen the show plays on: Automatic, the primary screen, or any screen by name, kept for this computer. The window moves there before it fills the screen and goes back when the show ends. On Automatic with Presenter View, the show takes another screen than the presenter's.
    • Record → Save as Show writes a copy as a .ppsx, which PowerPoint opens straight into the show. A file saved as a show, a template or a macro-enabled file is now labelled as one inside; Save As used to keep the label the file came with.
    • Insert → Symbol puts its character where the caret was in a text box.
    • View → Arrange All, Cascade, Switch Windows for the open decks, and Move Split: the arrow keys move the slide pane's edge and the top of the notes, Enter or Esc when done.
    • Mark All as Read stays greyed and now says why: a deck keeps its comments but not who has read them.

    Worksheets

    • View → Arrange All tiles the open workbooks; Hide puts a window away with its work kept, and a new Unhide brings it back. The last window on screen is never hidden.

    Underneath

    • Text with a dollar sign. 1.28.1 fixed a workbook cell holding $&, $', ` $ ` or $$`; the same mistake took apart a document's comments, a deck's sections, comments and names, and an automatic reply's subject in Mail. Every one of them is written as typed now, and a test reads every engine's sources so the mistake cannot come back unnoticed.
    • Memory. Every message opened in Mail held its pictures again, and every attachment saved or opened held the file again, until the suite quit. What the main process holds for a window is let go when the window closes, and the next message read replaces the last one's pictures.
    • Spelling never puts a word with no Latin letter in it (Arabic, Hebrew, Chinese, Greek) to the English dictionaries, which could only call it wrong.

    Proven, not promised

    • New engine tests: tests/word-language.test.js, tests/deck-language.test.js, tests/deck-show-settings.test.js, tests/dollar-text.test.js, tests/literal-splices.test.js and tests/blob-store.test.js, with more in the save-label and comment suites. tests/act-cases.test.js fails if an app names a command twice; the second would never run, as Worksheets' shape Arrange commands found out before this release did.
    • Window checks press each new button and read what it did: RUTBA_VERIFY_ONLY= gridlines, wordlanguage, decklanguage, setupshow, monitor, movesplit, saveshow, decksymbol, windowing and wordcomments.
    • A check run closes each block's windows when it is done. A full run used to hold every window to the end (about a hundred and forty renderers and fourteen gigabytes on a laptop) and now peaks under three. A check can answer the system's Open, Save and message dialogs, so the buttons that open one are checked too.

    The release on GitHub, with its installers →

    1.29.06 October 2026

    Rutba Word is now Documents, and Presentation is now Presentations (plurals, beside Worksheets, Contacts and Pictures), and an updated copy keeps its pins, its defaults and its files' icons.

    What changed

    • Documents and Presentations
    • Everything already set up keeps working
    • One list of names
    The full notes for 1.29.0

    Names

    • Documents and Presentations. The two apps take the names the others already have: the place where everything of a kind lives. Mail and Calendar stay as they are, each the one place for all of its kind, and so do Image and Video for now.
    • Everything already set up keeps working. A pinned Rutba Word on the taskbar opens Documents; .docx and .pptx still open in the same apps and wear the same icons; a window opened from a file is the same window. The names a person reads changed (the window titles, the launcher, the Apps menu, the taskbar's names, the installer's descriptions), and the keys the operating system files them under did not.
    • One list of names. The Apps menu and the sentence a window says when it is handed the wrong kind of file ("…Open it in Documents.") carried their own copies of the names; they read the suite's one list now, so a name cannot be changed in one place and stay old in another.
    • The launcher's New button names what it makes: "New document", "New workbook", "New presentation".

    Housekeeping

    • The gaps list in docs/GAPS.md says what is true now: encrypted Office files have been read and written since 1.27.0, Mail's search is indexed per account, Calendar and Contacts are built and only their sync with a server is missing, and 129 of the 257 unbuilt controls remain.
    • The steps before a release add the upgrade: the new installer run over the previous release, whose first start is the one a person gets after an update, where 1.28.0's window once stayed hidden.
    • The PDF writer's, drawing's, editing's and doc-view's notes no longer describe a dependency the suite does not have or repositories the code no longer lives in.

    Proven, not promised

    • tests/app-names.test.js pins the nine names, that each full name is the brand and its short name, and that the keys under them (word, slides, and the apps that own .docx, .xlsx and .pptx) have not moved.
    • A window check (RUTBA_VERIFY_ONLY=names) opens Documents and Presentations and reads their titles, the launcher's cards and its New button, and the Apps menu.
    • The install test now finds the Documents window under either name, so an older installer can still be put to it.

    The release on GitHub, with its installers →

    1.28.16 October 2026

    A release of fixes: a file dragged onto a window opens again, a save that cannot finish leaves the file as it was, Mail keeps a stranger's attachment in its folder and a password off an open line, Worksheets' formula bar amends what it shows, and an invitation that repeats on a day that never comes no longer freezes the suite.

    TouchedWorksheetsMailCalendar

    What changed

    • A file dragged onto a window opens again
    • A save that cannot finish leaves the file as it was
    • Closing with unsaved work always asks
    • A key does one thing
    • Ctrl+R no longer reloads the window
    • Save All keeps every attachment in the folder you chose

    and 7 more in the notes

    The full notes for 1.28.1

    Everywhere

    • A file dragged onto a window opens again. Electron 32 took away the way a window learnt where a dropped file lives, so every drop arrived with no path and nothing happened, in every app. A file dropped onto a message being written is attached to it, and is no longer also imported as a mail archive.
    • A save that cannot finish leaves the file as it was. Save wrote straight over the file, so a full disk, a network share that went away or a crash halfway left half a document where the last good one had been. The new bytes now go to a file beside it and take its place in one step; a file that is read-only is still refused in a sentence. Save As over an existing file works the same way, and so does saving as OpenDocument, RTF, CSV, Markdown or text.
    • Closing with unsaved work always asks. Choosing Save at the question, then cancelling the save or having it fail, left the question switched off, and the next close took the work with it.
    • A key does one thing. Delete on a picked picture or chart in Worksheets also cleared the cells under the selection, and an arrow that nudged a shape in Presentation also changed slide.
    • Ctrl+R no longer reloads the window. It sat in the View menu as Reload, where a Rutba Word user pressing it for Align Right reloaded the document from disk and left the edits behind. An installed copy no longer has Reload or Developer Tools at all.

    Mail

    • Save All keeps every attachment in the folder you chose. An attachment's name is the sender's to write, and a name that climbed out of the folder (..\..\Startup\run.bat) was saved where it pointed. Only the last part of the name is used now, with the characters no system accepts, trailing dots and Windows' device names made safe.
    • Opening an attachment that is a program asks first. One click on an .exe, a script, an installer, a shortcut or a disk image ran it. It is still yours to open; the window now says that opening it runs it.
    • A password is never sent over an open line. An account on a plain IMAP port upgraded to an encrypted connection only when the server offered to, and anybody between the two could take the offer out. The upgrade is now required, as it already was for sending, and testing an account no longer leaves a connection open when the test fails.

    Worksheets

    • The formula bar amends what it shows. A letter typed into the bar was taken as the start of a new entry and replaced the whole cell, so a value could not be corrected from the bar; Delete there cleared the cell, and Enter with nothing typed wrote an empty value over it. The bar keeps its keys now, as Excel's does.
    • Shift+F2 opens the note and nothing else, where it also began an edit in the cell underneath the note.
    • Reading a workbook does not ask to save it. Moving with Enter, Tab, Find Next or Go To marked the file as changed.
    • A dollar sign is saved as typed. A sheet named Sales $'000, or a cell or formula holding $&, $' or $$, was taken apart on its way into the file: the sheet name became Sales sheetId=, a cell kept its old value, a $$ b lost a dollar, and a formula's cached value nested a second cell inside the first.

    Calendar

    • An invitation that repeats on a day that never comes opens. The 30th of February, or every seventh day from a Tuesday but only on Mondays, is a rule a calendar can write, and the search for its next day never ended: one such invitation opened from Mail froze every window. It now shows no occurrences, at once.

    Proven, not promised

    • npm test runs the PDF writer's own suite too, 65 tests that sat outside the one folder the command looked in, so neither the gate nor a release had ever run them: 1,409 engine tests, six of which wait for pdfjs-dist to read the PDFs back.
    • New engine tests: a save that fills the disk halfway leaves the file byte for byte as it was (tests/document-service.test.js), with moving by Enter, Tab, Find Next and Go To leaving a workbook clean; a hostile attachment name comes out as run.bat (tests/mailbox.test.js); a server on the loopback address that offers no encryption never hears a login (tests/mail-imap-security.test.js); the dollar cases above, down to the saved cell's XML (tests/workbook-cells.test.js); four rules that never land answer nothing in milliseconds (tests/calendar.test.js).
    • New window checks: the formula bar amends "hello" to "hello!" and a bare Enter leaves it alone; a document dragged onto the launcher through Chromium's own drag, from the file on disk, opens in Rutba Word (RUTBA_VERIFY_ONLY=drop).
    • The checks draw their windows in the light theme whatever the machine is set to: on a computer in dark mode the Format as Table check read the plain cells as painted and failed. 785 application checks.

    Under the hood

    • The window bridge no longer offers the stored passwords and sign-in tokens, or renaming and copying files: nothing in a window used them, and a page that read a hostile document was one call away from them.
    • npm run dev runs the suite from source and rebuilds the renderer and the preload on every save; the script pointed at a file that had never been written.

    The release on GitHub, with its installers →

  22. 26 September 2026

    1.28.026 September 2026

    An index and a table of figures, and page numbers, dates and the file's name as fields anywhere in the text, in Rutba Word; a workbook dressed in a theme, its colours, fonts and effects, in Worksheets; and the first start after an update opens its window.

    TouchedRutba WordWorksheets

    What changed

    • References → Mark Entry (Alt+Shift+X)
    • References → Insert Index
    • References → Insert Table of Figures
    • Insert → Quick Parts → Field
    • Page Layout → Themes, Colours, Fonts and Effects
    • The first start after an update opens its window
    The full notes for 1.28.0

    Rutba Word

    • References → Mark Entry (Alt+Shift+X). A Mark Index Entry box that stays beside the page while you work. It takes the selected words as the main entry, with a subentry, a "See" cross-reference, a page range from a bookmark, and bold or italic page numbers; Mark All marks the words each time they begin a paragraph's mention of them. Each mark is Word's hidden XE field, shown when ¶ is on, and the paragraph stays editable around it.
    • References → Insert Index. A dialog that previews the index before it goes in (indented or run-in, columns, page numbers right-aligned behind a leader) and writes Word's INDEX field, grouped by letter, with the pages each entry lies on as this window lays them out. Update Index and F9 bring it up to date with the marks as they now stand. The column count is kept in the field for Word; this window and its printout lay the index in one column.
    • References → Insert Table of Figures. The captions of one label (Figure, Table, Equation), each linked to its caption with its page, with or without the label and number, page numbers right-aligned behind a leader. Update Table, beside Cross-reference in the Captions group as in Word, rebuilds it, and F9 does too. A table of contents and a table of figures no longer take each other's bookmarks away when either is rebuilt, and Insert Caption lands after the caret's paragraph when a table of contents sits above it.
    • Insert → Quick Parts → Field. A page number, the page count, the date or the time, the file's name, the author or the title, put into the text in a format of your choosing (Word's date and number formats and its case options), as the fields Word writes, with the result and the field code shown before OK. F9 works them out again from the pages as they now fall, and so does printing. Quick Parts also puts the author or the title in with one press.

    Worksheets

    • Page Layout → Themes, Colours, Fonts and Effects. A workbook dressed in one of the suite's eleven themes (the same ones Presentation offers), each gallery drawing a small sheet in every choice. Customise Colours and Customise Fonts save a theme of your own. Cells filled in theme colours, tables, charts, shapes and the default font follow the theme, the theme is written into the workbook as Excel writes one, and Undo puts the old one back. A chart or a shape keeps the suite's own colours while the workbook is on an Office theme, as before; on the dark themes the sheet keeps white paper.

    Everywhere

    • The first start after an update opens its window. A window is shown on its first painted frame, so nobody sees an empty white box; on the first start after an update had installed new files, that frame never came, and the window stayed hidden (built, loaded and titled) until the suite was started a second time. A window that has not painted in four seconds is now shown anyway. Found by installing 1.27.0 over 1.26.0, and 1.28.0 over 1.27.0, the way an update does.

    Proven, not promised

    • Six engine tests in tests/word-index.test.js: the XE and INDEX field codes as Word writes them; entries sorted under their letters, each page once, ranges and cross-references; a mark that survives typing and deleting beside it; Mark All; an INDEX field that follows new marks and keeps its page numbers when no fresh ones are given; run-in with a bookmark range. The window check wordindex marks, indexes, updates and saves through the ribbon and Alt+Shift+X.
    • Five in tests/word-figures.test.js: a TOC \c field with a bookmark and a PAGEREF for each caption; Update Table following a new caption while the table of contents keeps its own bookmarks; no page numbers and no right alignment kept through an update; Word's date and number formats; body fields that stay editable and that F9 works out again. The window check figures puts PAGE, NUMPAGES and DATE in from the Field dialog, lists and updates a table of figures, and watches F9 carry "Page 2 of 2" to "Page 3 of 3".
    • Four in tests/sheet-themes.test.js hold the workbook's theme1.xml, the theme colours of cells, tables, charts and shapes, and undo. The window check sheetthemes applies a theme, a colour set and a font set from the galleries and saves them, beside the deck's own themes check, which still passes on the theme data the two apps now share.
    • The update path, by hand before this release went out: 1.27.0 installed, 1.28.0 installed over it, and the first start timed. Before the fix the Word window was still hidden two minutes on; after it, it opened in under seven seconds.

    The release on GitHub, with its installers →

    1.27.026 September 2026

    Password-protected Word, Excel and PowerPoint files open and save, in all three document apps, which also gain an accessibility checker and a spelling pass with a dictionary of your own. In Rutba Word: text boxes, drawings put behind or in front of the words and arranged, hyphenation, citations and a bibliography, Restrict Editing, mail merge with envelopes and labels, equations, a table of contents that refreshes, tracked changes recorded as you type, and captions numbered by a field. In Worksheets: PivotCharts, slicers, a sheet's drawings arranged, workbook protection, Page Layout view, custom views, Consolidate and Forecast Sheet, an outline with subtotals, an advanced filter, Flash Fill, Evaluate Formula, manual calculation, comments as conversations, scatter charts, Page Break Preview, Split and a watch window. In Presentation: themes, the Slide Master, transitions and animations, undo, comments, equations, shapes aligned, grouped, turned and flipped, fills and effects, and find and replace across the deck. In Mail: a signature per account, send later, and automatic replies.

    TouchedRutba WordWorksheetsPresentationMail

    What changed

    • Insert → Text Box
    • Layout → Hyphenation
    • References → Citations & Bibliography
    • Review → Restrict Editing
    • Layout → Arrange for every drawing
    • Insert → Caption

    and 34 more in the notes

    The full notes for 1.27.0

    Password-protected files, in Word, Worksheets and Presentation

    A .docx, .xlsx or .pptx that Office protected with a password now opens. The window asks for the password in a small dialog that names the file. A wrong password is refused in place so you can try again. A file changed since its password was set is refused, with a sentence saying so, because the check written inside it no longer matches. Both kinds of encryption Office has written are read: Agile, from Office 2010 on, and Standard, from Office 2007. File → Info → Protect Document (Protect Workbook, Protect Presentation) → Encrypt with Password sets one, and every save after that is encrypted as Office 2013 and later do it: AES-256, SHA-512, 100,000 rounds, in the compound file Word, Excel and PowerPoint expect. Clearing the password saves the file plainly again. The password is kept only in memory for the open document. The autosave copy of a protected document is encrypted with the same password, so what is left on disk after a crash is never the document in the clear.

    Review, in Word, Worksheets and Presentation

    Review → Check Accessibility opens an Accessibility pane that sorts what makes a file hard to use with a screen reader or low vision into Errors, Warnings and Tips, under the rule names Office uses: missing alternative text, a table without a header row, a slide with no title or the same title as another, text too pale for its background, headings that skip a level, merged cells, link text that says nothing, a slide's reading order, empty paragraphs used for spacing, sheets still called Sheet1, and a file with no title. Each finding takes you to its picture, cell, paragraph or slide, says why it matters and how to fix it, and most have a one-click fix. With "Keep accessibility checker running" ticked, the status bar reads "Good to go" or "Investigate" as you edit. Alt Text, on the Review tab and the right-click menu, writes the description where Word, Excel and PowerPoint keep it, and Mark as decorative writes Office's own mark.

    Review → Spelling (F7) checks the whole file from the caret in an Editor pane. It shows the word in its sentence with suggestions and offers Change, Change All, Ignore Once, Ignore All and Add to Dictionary, then "Spelling check complete". It reads a document's body, tables, text boxes, notes, headers and footers; every text cell of every sheet; and every slide's shapes, tables and notes. Two dictionaries come with the suite, English (United Kingdom) and English (United States), and a check never goes to the network. The language is the document's own, or else the system's. A personal dictionary shared by the three apps is kept in the Custom Dictionary dialog, which edits, imports and exports it. In Word a right-click on a misspelt word offers its suggestions. A dictionary is read on its own thread the first time it is needed, so a window never waits for one.

    Rutba Word

    • Insert → Text Box. Simple Text Box, a sidebar, a pull quote, a WordArt box, or a box drawn by dragging on the page. It is written the way Word 2010 and later write one, and you type in it with the usual formatting. It moves by its edge and resizes by eight handles, as Word's does. A Shape Format tab sets its fill, outline, inner margins, text alignment and text direction, and its height and width.
    • Layout → Hyphenation. None, Automatic, Manual and Hyphenation Options. Manual walks the words a hyphen would pull back and puts an optional hyphen where you press Yes. The options set the zone, a limit on hyphens in a row, and whether words in capitals may be broken. They are saved in the file as Word saves them, and a paragraph can be left whole. The page and the printout break words at the same places. The suite carries its own English hyphenator, because Chromium on Windows has none.
    • References → Citations & Bibliography. Manage Sources keeps a master list in your profile and the document's own list inside the file, where Word keeps it. Create Source asks for the fields Word asks for a book, a book section, a journal article, conference proceedings, a report or a web site. Insert Citation writes a citation Word itself can update, and Add New Placeholder cites a source you will fill in later. The Style list gives APA (7th and 6th), MLA, Chicago, Harvard and IEEE, and changing it redraws every citation at once. Bibliography inserts a Bibliography, References or Works Cited list. Update Citations and Bibliography, or F9, rewrites both.
    • Review → Restrict Editing. Word's pane: formatting limited to styles, and editing limited to No changes, Tracked changes, Comments or Filling in forms. Paragraphs can be marked as exceptions anyone may edit. Yes, Start Enforcing Protection takes an optional password and writes it as Word does, and the window then keeps to it. Locked text refuses a keystroke with Word's own sentence. The regions anyone may edit are washed yellow between brackets, with Find Next Region I Can Edit. Protection for tracked changes keeps recording on. Stop Protection asks for the password. A document Word protected opens protected, with the pane open.
    • Layout → Arrange for every drawing. Behind Text and In Front of Text draw a picture or a box under or over the words, on screen and on paper. Bring Forward, Send Backward, Bring to Front and Send to Back set the drawing order. Align lines drawings up to the margin, the page or each other, and Distribute spaces them evenly. Rotate and Flip turn them, and Group and Ungroup join them into one. A Selection Pane beside the page lists them, picks them, hides and shows them, and renames them. Navigation and Selection panes now sit beside the page, not under it.
    • Insert → Caption. A dialog offers Figure, Table or Equation and a line of text, previews "Figure 3: …" before OK is pressed, and inserts a new paragraph after the caret's: styled "Caption" (written once, italic, 9pt, space after, the way Word writes one on a document that never had the style), the label, a SEQ field for its running number, then the words. The number is a COMPLEX field (w:fldChar begin/separate/end around SEQ Figure \* ARABIC , the shape Word itself writes for a caption, unlike a cross-reference's simpler w:fldSimple), shaded on the page exactly as a REF field is. Update Fields (F9, on the References tab) now renumbers every label's captions from where they sit in the document, the same pass that refreshes a REF: a caption inserted ahead of others with the same label, or one deleted, leaves the rest right once Update Fields runs. The button was greyed out ("A caption is a SEQ field; fields are not written yet").
    • Mailings → mail merge. The Mailings tab works. Start Mail Merge makes a document a letter, e-mail messages, envelopes, labels or a directory, kept in the file as Word keeps it, so a merge letter opens again attached to its list and on the record it was showing. Select Recipients reads a workbook's sheet, a .csv or .tsv, the suite's own Contacts, or a list typed into a new address list. Edit Recipient List ticks people in and out, sorts, filters and finds duplicates. Address Block (blank lines left out, the home country dropped), Greeting Line ("Dear Sir or Madam," when the name is missing), Insert Merge Field and Rules (If…Then…Else, Next Record, Skip Record If and more) write Word's own fields; Highlight Merge Fields shades them. Preview Results shows any record's words in their place, with a record box and Find Recipient. Finish & Merge makes Letters1 with a letter per record, prints them, or sends one e-mail per record through Mail from the account you choose, with progress and any failures named.
    • Mailings → Envelopes and Labels. Envelopes takes the delivery address from the selection or the address book and a remembered return address, on DL, C4, C5, C6, B5, No. 10, Monarch and other sizes, previewed to scale; Add to Document puts the envelope in front of the letter as a page of its own size. Labels prints one address on a full sheet or a single label, on fourteen common Avery sheets, and New Document builds the sheet as Word does; a labels merge fills each label with the next record. Along the way print and PDF learnt two things they lacked: each section prints on its own paper (a landscape section used to print portrait), and a line break inside a paragraph ends the line on paper (it used to be joined up).
    • Equations, read, drawn, written. A document's equations used to be missing from the page altogether: Word's own quadratic formula simply was not there. They now open drawn as Word draws them, in Cambria Math: a real fraction bar, a radical over its expression, limits stacked above and below a sum, brackets that grow, matrices, accents, italic variables and upright function names. Each is one character to the caret: the arrows step over it, a click selects it, Backspace takes it and Undo brings the same one back, and a save writes it back exactly as it came. Insert → Equation (or Alt+=) opens an editor that takes Word's linear format (x=(-b±√(b^2-4ac))/2a, \sum_(i=1)^n i, \alpha) with a live preview, Word's Structures (Fraction, Script, Radical, Integral, Large Operator, Bracket, Function, Matrix), a Symbols palette and the built-in equations (the area of a circle, the binomial theorem, the Pythagorean theorem, a Fourier series, the quadratic formula and more); it writes the OMML Word writes. A double-click on an equation opens it again. Printing and PDF draw each equation as the page shows it. Not yet: bold, font and size applied inside an equation, and equations in a deck.
    • References → Table of Contents, a field that refreshes. Until now the button typed the headings in as text, which went stale the moment a heading changed. It now writes the table Word writes: a building block holding a TOC field, one paragraph per heading at three levels, each entry a link to a bookmark placed on its heading, a dotted leader and the page number the heading lands on in this window's own page layout. Update Table, beside it, rebuilds the entries from the headings as they now stand (and F9 refreshes it with the other fields); Ctrl+click on an entry goes to its heading; Remove Table of Contents takes it away. A table written by Word itself is read as the same field and refreshes the same way.
    • Review → Track Changes records. Turning it on is kept in the file, so a document opens recording if it was saved that way. While it is on, words typed are kept as an insertion and words deleted as a deletion, each with its author and time, rather than simply appearing or going; deleting words you typed yourself since turning it on takes them straight back, as Word does. The Review tab shows it four ways: All Markup (insertions underlined and deletions struck through in the author's colour), Simple Markup (the finished words with a bar in the margin beside each changed paragraph; the default, as in Word), No Markup and Original. Accept and Reject act on the change at the caret or on every change; Previous and Next walk them. What is not recorded yet: a paragraph joined or split (Enter and Backspace across a paragraph's end happen for real), a paste, find and replace, and a sort. The buttons were greyed out ("recording them is not built yet").

    Worksheets

    • Insert → PivotChart. A chart bound to the PivotTable the cursor is in, or a PivotChart & PivotTable made together from the list around it. It is written as Excel writes one and redrawn whenever the pivot is refreshed or filtered.
    • Page Layout → Arrange. A sheet's pictures, shapes, charts and slicers can be picked (Ctrl+click adds), dragged, resized by eight handles, turned, and nudged with the arrow keys. Bring Forward, Send Backward, Bring to Front and Send to Back set the order. Align, Distribute, Rotate and Flip line them up and turn them. Group and Ungroup join them into one, and a Selection Pane lists them front first, to pick, hide, show and rename. Every drawing keeps its anchor to the cells as Excel keeps it.
    • Insert → Slicer. A panel of buttons for each field of a table or a pivot. Press one item, Ctrl+click or turn on Multi-Select for several, or Clear Filter. The table's rows or the pivot's items follow at once. A slicer is dragged and resized like any drawing, written as Excel 2010 and later write slicers, and read back from Excel's own files. The PivotTable dialog now picks its fields from the list.
    • Formulas → Watch Window. The button now opens a pane docked along the bottom of the grid (a table, one row per watched cell: Sheet, Cell, Value and Formula). Add Watch adds every cell of the current selection, not only the active one; a row's own × takes it off, and Delete Watch removes whichever row is selected; a double-click on a row goes to that cell, switching sheet first when it is on another one. Every row is live: read straight off the calculation on each frame, the same way Error Checking rereads its list, so editing a precedent anywhere in the workbook moves the watched value at once, with nothing telling the pane to refresh. The list is kept for as long as the workbook stays open (closing the pane or switching sheets never loses it), but it is never written to the file: Excel does not keep its own watch window in the workbook either, and this one follows suit. The button was greyed out.
    • Review → Protect Workbook and Allow Edit Ranges. Protect Workbook locks the workbook's structure, with an optional password hashed the way Excel hashes one (a file an older Excel locked with its short password still opens with it). While it is on, no sheet is added, deleted, renamed, moved, hidden or shown again (each refused in Excel's words), and the tab menu, the + and a padlock by the tabs say so. The tab menu now also hides, unhides and moves sheets. Allow Edit Ranges lists the ranges a protected sheet leaves open, each with a title, its cells and an optional password; typing into one asks for its password once, then the key you typed goes into the cell.
    • View → Page Layout, Custom Views, and a sheet background. Page Layout shows the sheet on the pages it prints on, cut exactly where the printer cuts it, with margins, rulers, the header and footer where they print ("Click to add header" writes one) and blank pages past the data to type onto. Custom Views keeps how a workbook looks (zoom, selection, hidden rows and columns, filter, print settings) under a name and shows it again, written as Excel writes them. Page Layout → Background tiles a picture behind the cells, left off the printout as Excel leaves it.
    • Data → Consolidate and Forecast Sheet. Consolidate sums, averages, counts or finds the largest of ranges from several sheets, by position or by the labels in their top row and left column; with links to the source it writes formulas over detail rows folded under an outline, as Excel does, and remembers what it last consolidated. Forecast Sheet previews, then makes a new sheet in front of the data with Excel's forecast table (FORECAST.ETS past the last point and the confidence bounds either side) and a chart that shades the band between them. FORECAST.ETS, FORECAST.ETS.CONFINT, FORECAST.ETS.SEASONALITY and FORECAST.LINEAR now calculate, by additive Holt-Winters smoothing; Microsoft does not publish how Excel picks its smoothing constants, so the figures are sound but will not always match Excel's to the last digit.
    • Formulas → Evaluate Formula. The active cell's formula with the part it will work out next underlined; Evaluate puts that part's value in its place, ranges shown as Excel shows arrays ({5;3}), IF, IFERROR and CHOOSE stepping only the branch they take. Step In opens the formula of the cell the underlined reference points at; Step Out brings its value back; at the end the button reads Restart.
    • Formulas → Calculation Options. Automatic, Automatic except for data tables, or Manual, kept in the workbook. In Manual what depends on an edit waits until F9 (Calculate Now, every sheet) or Shift+F9 (Calculate Sheet), and the status bar says Calculate meanwhile; press it to calculate. Saving calculates first, as Excel does.
    • Review → Comments, as conversations. New Comment (Ctrl+Alt+M) opens a card beside the cell signed with your name and the time, with replies, Resolve and Reopen, Edit and Delete; the cell carries Excel's purple corner, grey once resolved. Previous and Next walk the threads across sheets, and Show Comments lists them in a pane, open or resolved. They are written as Excel 365 writes threaded comments, with the plain copy older versions show, and Excel's own open as conversations. Before, only their plain copy showed.
    • Insert → Scatter. X against Y: markers only, straight lines or smooth lines, drawn with a numeric X axis and written as Excel's scatter chart.
    • View → Page Break Preview and Split. The sheet as the printer will cut it: what is not printed greyed, pages edged in blue and numbered, breaks the paper makes dashed and breaks put by hand solid; drag a break and it stays where it is dropped. Normal and Page Break Preview buttons sit beside the zoom. Split divides the window at the active cell into panes that scroll on their own, with bars to move the split. A 60,000-row sheet still draws a frame in about 20 ms in either.
    • Data → Group, Ungroup and the outline. Rows or columns grouped (Shift+Alt+Right) get the gutter Excel draws: a bracket in their level's lane, a − box at the summary row that folds them away and turns to +, and level buttons 1, 2, 3 in the corner. Groups nest seven deep; Show Detail, Hide Detail, Ungroup (Shift+Alt+Left) and Clear Outline act as Excel's do, and a selection that is neither whole rows nor whole columns is asked about. The file keeps what Excel keeps (each row's and column's level, hidden and collapsed marks, the sheet's depth), so an outline saved by Excel opens folded or open as it was left. Frozen panes and the gutter live together.
    • Data → Subtotal. At each change in a column, a row of SUBTOTAL formulas under every group for the columns ticked, a bold "East Total" label, a Grand Total and a three-level outline round them; all eleven of Excel's functions, page breaks between groups, summaries above or below, and Remove All to take it away. A SUBTOTAL now leaves out the SUBTOTAL cells in its own range, as Excel's does, so a Grand Total counts each row once. On a 60,000-row list Subtotal takes a few seconds and a frame still draws in about 6 ms.
    • Data → Advanced, and Clear. A list filtered by a criteria range read the way Excel reads one: headings name the fields, conditions on a row all hold, any one row is enough; >, <=, <> compare, *, ? and ~ are wildcards, and a formula under a heading of its own is tried on every row. In place, rows that fail are hidden and Clear brings them back; copied, the rows that pass go elsewhere under the headings, with Unique records only dropping repeats. The names Excel keeps for the list, the criteria and the extract are written too.
    • Data → Flash Fill (Ctrl+E). Type what you want once or twice beside a block ("Ada" next to "Lovelace, Ada", or "AL" for initials) and the rest of the column is filled. It finds one transformation that makes every example: a part cut at a delimiter, a word, digits, the first or last characters, initials, a change of case, part of a date, or pieces of several columns joined with words of your own. When nothing fits every example it says so and fills nothing.

    Presentation

    • Home → Find (Ctrl+F) and Replace (Ctrl+H). The ribbon's Find and Replace buttons now open a small pane at the stage's own top right, the way Word's find pane sits over the page rather than a dialog covering the slide. A word typed into it is found across every shape's paragraphs on every slide (text boxes, placeholders and table cells), read as "n of m", Next and Previous walking the hits in slide order and landing on the hit's own slide and shape each time; Match case narrows the search. Replace rewrites the current hit, Replace All every hit at once, each keeping its run's own look (bold, italic, colour, font, size), since only the words inside the run change. A match that would straddle two runs is not offered: the boundary between two runs is where their look can change, and rewriting across it would either lose the second run's formatting or have to invent a blend of the two, so only a match sitting inside a single run is one Replace can rewrite cleanly. The button was greyed out (docs/GAPS.md: "find and replace across a deck").
    • Design → Themes, Variants, Colours, Fonts, Effects. Eleven themes of our own (Rutba, Harbour, Meadow, Ember, Nightfall, Paper Kite, Basalt, Saffron, Tidewater, Orchard and Studio), each with four variants, light and dark. The gallery shows this slide drawn in each one by the deck's own renderer, not a stock picture. A pick rewrites the theme and the master's background, and every slide follows while keeping what it states itself. Colours offers our palettes and Customise Colours (the twelve slots, with a sample); Fonts offers heading and body pairs and Customise Fonts; Effects sets how theme-styled shapes are filled, outlined and lifted. Text now takes its size, colour and typeface from the master and the theme as PowerPoint draws it: a title in a deck made here is 44 pt, as its master says, where it used to come out at 32.
    • Undo and Redo in Presentation. Ctrl+Z and Ctrl+Y, one step per edit. Presentation had no undo at all until now.
    • View → Slide Master. The master and its layouts on the stage, with PowerPoint's prompts in dashed frames and the number of slides on each layout. Formatting the master's title or body sets the text style every slide inherits; shapes and backgrounds on the master or a layout sit under every slide on it. Insert Layout, Rename, Delete (an unused layout), Preserve, Title and Footers, Insert Placeholder and Hide Background Graphics work as in PowerPoint, and Close Master View goes back to the slides, redrawn. The handout and notes masters are not editable yet.
    • Review → Comments. New Comment on a shape or on the slide, replies, Resolve, Delete, Previous and Next across the deck, and a Comments pane, with markers on the slide and in the strip; written as PowerPoint 365 writes its modern comments and signed with your name. Comments from older PowerPoint are read and can be deleted.
    • Equations on a slide. Equations PowerPoint wrote are drawn (a sum with its limits, a real fraction bar) on the stage, in the strip, in the show and on paper, and saved back exactly as they came; before, they did not show at all. Insert → Equation opens the same editor as Rutba Word and writes Office Math with a picture beside it for older readers, as PowerPoint does; a double-click opens one again.
    • Transitions. The Transitions tab is live: None, Cut, Fade, Push, Wipe, Split, Uncover, Cover, Random Bars, Shape and Dissolve, each with a small picture of its own. A pick previews itself on the stage and Preview plays it again; Effect Options sets the direction, Duration the length, On Mouse Click and After how the slide moves on, and Apply To All puts it on every slide. A slide with a transition gets PowerPoint's star under its number in the strip. The show plays each one as it moves forward and moves on by itself when After says so. The file carries it as PowerPoint writes it, and a PowerPoint 2010 effect already in a deck (Prism, Gallery) is kept and plays as the fallback PowerPoint stored beside it.
    • Animations. Select a shape and pick Appear, Fade, Fly In, Float In, Split, Wipe or Zoom; More Effects and Add Animation add Pulse, Spin and Grow/Shrink and the exits. Effect Options, Start (On Click, With Previous, After Previous), Duration and Delay set each one, and Move Earlier and Later reorder them. The Animation Pane lists the slide's effects with their click numbers, how each starts and a star in its colour; rows are dragged, retimed from a right-click, removed or all played. Numbered tags sit beside each animated shape while the tab is open, and the Animation Painter copies one shape's effects onto another. In the show, shapes that enter start hidden and come in a click at a time; a click during an effect finishes it, and the click after the last one leaves the slide; the presenter view's Next plays the next effect too. Files keep PowerPoint's own timing tree and preset numbers, and what this does not write (motion paths, media, triggers) survives untouched. Not yet: an effect played by paragraph (the whole shape animates), a transition's sound and an animation's trigger.
    • Home → Arrange: align, distribute, rotate, flip, group. Shift+click or Ctrl+click gathers shapes into one selection, drawn as one frame; dragging any of them moves them all, and Delete and the arrow keys act on the lot. Align puts one shape against the slide's edge or centre, and several against the edge of the group they make (or of the slide, with Align to Slide ticked); Distribute spaces three or more evenly. Rotate Right and Left turn by a quarter, Flip Vertical and Horizontal mirror, a handle above a single shape turns it by hand (Shift for 15° steps), and Alt+Left and Alt+Right turn it by 15° from the keyboard. Group makes one shape of several, which moves, resizes, copies and deletes as one and sits as one row in the Selection pane; Ungroup puts every member back exactly where it now shows, however the group was moved, stretched, turned or flipped in between. A group that came in a file now draws its members stretched and flipped with it. Before, they were only moved.
    • Shape Fill and Shape Effects. The Format pane's fill is No fill, Solid (now with transparency), Gradient (a light or a dark variation of a colour, at any angle) or Picture (a picture from a file, filling the shape's outline, stretched or tiled). Shape Effects keeps its shadows and gains Glow (5, 8, 11 and 18 pt, PowerPoint's own sizes), Soft Edges and Reflection (tight, half, full), in any combination, drawn on the slide, in the show and in print, and written the way PowerPoint writes them.

    Mail

    • A signature per account. Set from that account's own settings (Folder → Signature), a signature is plain text, kept on the account alongside its name and its servers rather than in a preference every account shares. A new message carries it at the end, after a blank line and the "-- " line mail readers use to tell a signature from the words above it; a reply or forward puts the same block above the quoted or forwarded message instead, below the cursor rather than under it. Switching the From account in an open message swaps the block for the one that account keeps, but only when it is still exactly what was inserted; a signature already edited, or a body with nothing inserted to begin with, is left alone. An account with no signature has nothing added.
    • Send later, and an Outbox that is a real place. Send in a new message now offers Send later: later today, tomorrow morning at 8, Monday morning at 8, or a date and time of your own, all in the computer's own time zone. The message waits in an Outbox kept on this computer, listed in the folder list with each message's send time; opening one offers Edit (back into the message window), Send now, or Cancel, which puts it in Drafts rather than throwing it away. It is sent when its time comes while Rutba Office is running, and anything that fell due while it was closed goes the moment it opens again; the window says so. A send that fails stays in the Outbox with the server's answer beside it and is tried again every five minutes, or at once with Retry, where before it was moved to Drafts after three tries without a word.
    • Automatic replies, per account. Folder → Out of office turns them on for the account, with an optional start and end, a subject ("Automatic reply: " and the original subject unless you write your own), the message, and "only reply to people in my contacts". A banner across the window says which account is answering on its own, with Turn off beside it. A reply keeps the rules that stop two away messages mailing each other forever (RFC 3834): nothing already automatic, no bulk or list mail, no no-reply or mailer-daemon address and never the account's own address gets one, and each sender hears from it once while it is on. The reply says what it is (Auto-Submitted: auto-replied) and threads under the message it answers. Replies go out while Rutba Office is running: holding them on the server (Gmail's vacation responder, Microsoft 365's automatic replies) needs a sign-in permission this version does not ask for, and the dialog says so rather than promising more.

    Proven, not promised

    • Nine engine tests in tests/word-captions.test.js: a caption lands as its own paragraph, styled Caption, right after the caret's; three captions of the same label number themselves 1, 2, 3 in document order; two labels (Figure, Table) count independently; deleting the middle of three captions and calling Update Fields renumbers the one after it; the SEQ field's XML matches Word's own form byte-for-byte, and reads back through the same field-parsing path a REF uses, shaded the same way; the Caption style is written once however many captions follow; a caption survives a save and reopen with its field kept, not frozen as inert text: deleting one in the reopened copy and updating fields still renumbers what is left; a caption paragraph built by hand, the way one from Word itself would read, is read as a field and renumbered correctly alongside one this engine inserted; and undo after inserting a caption takes the whole paragraph back off. The new captions window check (RUTBA_VERIFY_ONLY=captions) places the caret in the fixture, inserts a Figure caption from the ribbon dialog, reads "Figure 1: …" on the page with its number shaded like any field, inserts a second and reads "Figure 2: …", then saves and reads the SEQ field's complex-field shape out of the file.
    • Fourteen engine tests in tests/word-mailmerge.test.js and eight in tests/word-envelopes-labels.test.js: the merge settings Word writes, read back and removed; the merge field's XML byte for byte; the Address Block and Greeting Line rules and fallback; a nested IF; preview keeping the field's formatting; a merged document with a section per record; .csv, .tsv, .xlsx and Contacts sources; ticks and sorting; e-mail through a stand-in sender that fails one message; Next Record and Skip Record If; the list reattached after save and reopen; Word's label table and page; a label PDF with every address inside its own label; the envelope section and its frame; the envelope PDF on DL paper before the letter on A4; merged labels and envelopes. Two window blocks: mailmerge (RUTBA_VERIFY_ONLY=mailmerge) runs Start Mail Merge, a .csv list, Edit Recipient List, the three fields at the caret, record 2 in preview, Letters1 in a window of its own with a section per record, and three messages sent through a stand-in transport; labels (RUTBA_VERIFY_ONLY=labels) makes an L7160 sheet and measures it on screen and in its PDF, then adds a DL envelope to a letter, reads its page on screen and on paper, and undoes it.
    • Forty-three engine tests in tests/word-equations.test.js and twelve in tests/word-equation-linear.test.js: the quadratic formula as Word writes it read as one display equation; every construct turned into the MathML expected; an unknown element drawn as its words; a save byte-identical whether the paragraph round it was edited or not; Enter, Backspace and Undo beside and over an equation; pagination giving it its measured height and moving it whole to the next page; the PDF drawing its picture; the typed quadratic building exactly Word's OMML; sums, integrals, scripts, radicals, functions, limits, matrices, keywords and accents parsed; mistakes reported with their position; linear to OMML and back stable across the gallery. Eighteen window checks in the new equations block (RUTBA_VERIFY_ONLY=equations): a document of equations opens and each is read as drawn MathML in Cambria Math, laid out as Word sets it; arrow, click, Backspace and Undo; the quadratic from Built-in; a double-click into the editor and an edit that updates it; Alt+= with a live preview and an unclosed bracket reported; Save writing Word's OMML; and a printed PDF drawing five equation pictures, no stand-ins. Found on the way: Enter beside an equation wrote it twice.
    • Twelve engine tests in tests/word-toc.test.js: the field and its building block written as Word writes them; a bookmark on each heading and the three levels kept apart; Update Table after a heading is added, removed or renamed; the page numbers the window hands over used, and the last ones kept when none are given; the table surviving a save and still refreshing after it; a table built the way Word builds one read as a field and refreshed; and undo taking it off. The toc window block (RUTBA_VERIFY_ONLY=toc) inserts a table from the ribbon, reads its entries on the page with page numbers that differ where the headings fall on different pages, adds a heading and presses Update Table, reads the field out of the saved file, and finds the window reporting nothing. One real fault turned up there and is fixed: the field reader pairs a field's start with the nearest end in its paragraph, so a table whose opening sat in the same paragraph as its first entry's page number broke that entry's link. The table's opening and closing now have paragraphs of their own, which shows as a blank line above and below it.
    • Thirteen engine tests in tests/word-track.test.js: the setting written and read back; a typed word recorded as an insertion with its author and time; a deleted word kept as a deletion; your own open insertion taken back rather than struck; Accept and Reject on one change and on all; Previous and Next in document order; a tracked paragraph still editable; changes surviving a save; insertions and deletions written by Word read, shown and accepted; and undo of a tracked edit. tests/doc-tracked.test.js was changed on purpose: it held that a paragraph with tracked changes could not be edited, which this replaces. The track window block (RUTBA_VERIFY_ONLY=track) turns recording on, types and reads the underlined insertion on the page, deletes a word and reads it struck through, accepts everything, reads the saved file, turns recording off, and finds the window reporting nothing.
    • Six engine tests in tests/sheet-watch.test.js: adding a cell already on the list, or twice in one call, leaves it once; new refs land after what was already there, in the order given; removing one watch leaves the rest in place, in order, and a ref nobody is watching changes nothing; a resolved row carries its sheet, reference, live value and formula text (null for a plain value); a precedent edited after a watch is added moves its value on the next read, with nothing telling it to refresh; and a watch on a sheet since removed from the workbook drops out of the resolved list rather than throwing. Five window checks in the new watch block (RUTBA_VERIFY_ONLY=watch): select a formula cell already in the sample workbook, open the pane, Add Watch, and read its row's sheet, value and formula; edit the precedent the formula reads through the ordinary engine ops and watch the row follow it live; take the watch off with the row's own × and see it go; and Close turns the pane off, the button lifting with it, and the window reports nothing throughout.
    • Forty engine tests. tests/sheet-workbook-protection.test.js (8): the SHA-512 hash against one computed separately, the short hash against Excel's own values, old and new passwords, every structural change refused, hiding, unhiding and moving with names following their sheet, edit ranges and a range's password asked once; fifteen across tests/sheet-page-layout-view.test.js, tests/sheet-custom-views.test.js and tests/sheet-background.test.js: pages cut where the printer cuts them, Excel's custom-view XML and hidden names, Show, the background not printed; seventeen across tests/formula-forecast.test.js, tests/sheet-consolidate.test.js and tests/sheet-forecast-sheet.test.js: position and labels, all eleven functions, links under an outline, Excel's refusals, straight lines, seasons, intervals, determinism, the forecast table and chart undone in one step. Three window blocks: protect, layoutviews and analysis. Found on the way: page setup copied into a custom view was read as the sheet's own, and undoing a new sheet could write it back into the file at the next save.
    • Forty-four engine tests. tests/formula-evaluate.test.js (11) and tests/sheet-calc-mode.test.js (7): the order of the steps, ranges as arrays, short-circuits, errors carried through, Step In and Out, the setting written in its place, Manual waiting, Calculate Now across sheets and Calculate Sheet, calculation before save; tests/sheet-threaded-comments.test.js (8): the parts, relationships and content types, replies, edit, resolve, delete, undo, a note refusing a comment, Previous and Next across sheets, save and reopen, a file written the way Excel writes one; tests/sheet-scatter.test.js (7), tests/sheet-pagebreak-view.test.js (5): the printer's own page count, numbering down then across, manual breaks and the print area; and tests/sheet-split.test.js (6). Three window blocks: evaluate steps a cell into the one it reads and out to its answer, then shows Manual waiting until F9; comments posts, replies, resolves, reopens, edits, lists, filters, walks and deletes, then reads the saved parts; views inserts a smooth scatter, drags a page break, scrolls one split pane alone, moves the split bar and times a frame of a 60,000-row sheet split and in the preview. Found on the way: a reply box kept the text just posted; the active cell's link and note went stale as the selection moved; and a workbook could be written with its calculation setting after the extension list, where Excel does not look.
    • Twenty-eight engine tests across tests/sheet-outline.test.js (8), tests/sheet-subtotals.test.js (6), tests/sheet-advanced-filter.test.js (6) and tests/sheet-flash-fill.test.js (8): levels written and taken off, nesting and the eighth level refused, folds writing hidden and collapsed, columns grouped, an outline in Excel's own XML read as groups; subtotal rows, formulas, labels and outline, nested SUBTOTALs left out, Replace against nesting, Remove All back to the list in one undo step; Excel's reading of each kind of criteria cell, OR'ed rows, AND'ed columns, unique records, formula criteria, the names written; and Flash Fill's first names, initials, case, delimiters, digits, joined columns, dates, a second example settling an ambiguity and no pattern meaning no fill. Two new window blocks: outline (RUTBA_VERIFY_ONLY=outline) groups rows under a frozen top row and measures the gutter against every heading to the pixel, folds by box and by level, groups columns, subtotals a list and reads 550, 400, 420 and 1370 off the grid, then removes it all and finds the saved file as it was; datatools (RUTBA_VERIFY_ONLY=datatools) filters in place by two OR'ed rows, clears, copies unique rows elsewhere, fills first names with Ctrl+E and initials from the ribbon, and undoes every step.
    • Nine engine tests in tests/deck-find.test.js: two cover the deck's existing shape-by-shape findText/replaceText; seven new ones cover find, replace and replaceAll: hits across two slides in slide, shape, paragraph and run order; case sensitivity on and off; no hits for a word the deck does not hold; a single replace keeping its run's bold, italic and size while the rest of the words are untouched; Replace All's count and the rewritten words surviving three hits inside one run without one replacement's length throwing off the offsets of the next; a hit inside a table cell, carrying its row and column, found and replaced there too; and find, replace and replaceAll all surviving a save. Seven window checks in the deckfind block (RUTBA_VERIFY_ONLY=deckfind, aliased from the existing find block): the pane opens from Ctrl+H or the ribbon's Replace button and reads "1 of 2" on typing a word, landing on its first hit's slide; Next moves to the next hit's slide, the count following it; Match case narrows the search to nothing for a query only case tells apart; Replace All rewrites both hits and reports the count; the saved file carries the replaced words; the deck is left exactly as the check found it; and the window reports nothing.
    • Thirty-one engine tests. tests/deck-themes.test.js (10): a theme part written in schema order with every slide left byte for byte, variants, colours, fonts and effects, undo and redo; tests/deck-master.test.js (8): the master's title style reaching every slide, a new layout's part, relationship, id and content type, delete refused while a layout is used; tests/deck-comments.test.js (8): the modern comment and authors parts and their relationships, replies, resolve, delete, older comments read; and tests/deck-equations.test.js (5): an equation and the picture beside it moved, copied and deleted as one, saved back exactly. Four window blocks drive the ribbon and panes and read both the engine and the saved file: themes, master, deckcomments and deckmath. Found on the way: one thumbnail's gradient could be drawn in another, since their ids were not unique; the master's placeholder ids clashed with the shape tree's own; body bullets hung outside their box; and a part of a file the deck did not understand drew nothing rather than the picture PowerPoint keeps for such readers.
    • Eight engine tests in tests/deck-transitions.test.js and ten in tests/deck-animations.test.js: every transition written and read with its direction and length, in the bare form or the p14:dur form as PowerPoint chooses, in its place after the colour map and before the timing, a Prism kept when only its timing changes; PowerPoint's own timing tree read, the showcase deck's included; every effect written with PowerPoint's preset class, id and subtype; With and After Previous grouped into the right clicks; reordering, removing, retiming; motion paths, triggers and media kept; and all of it through a save. Two window blocks: transitions (RUTBA_VERIFY_ONLY=transitions) picks Push, sets its direction and length, finds the star, previews, lets After move the show on while Push animates, and tries the other nine; animations (RUTBA_VERIFY_ONLY=animations) adds Fade and Fly In, reads the pane and the tags, reorders and sets With Previous, sees both shapes hidden in the show until a click, turns one into a timed Wipe, and leaves the deck byte for byte as found. Found on the way: every re-render rewrote the slide picture and each thumbnail (on every pointer move of a drag, and each second of the presenter's clock), and that wiped the shapes the show had hidden; a slide is now redrawn only when it changes. Leaving the show also put the zoom back to 100% rather than Fit.
    • Twelve engine tests in tests/deck-arrange.test.js: every edge aligned to the slide and to a selection, one shape always to the slide; a turned shape aligned by what it covers; even spacing across a selection and across the slide; rotation wrapping past 360° with each shape turning on its own centre; a flip surviving a save with its rotation untouched; a new group's own frame matching what it holds; a group inside a group; a moved and stretched group carrying its members; and group then ungroup leaving every member where it showed, through a move, a stretch, a turn and a flip together. The arrange window block (RUTBA_VERIFY_ONLY=arrange) adds two shapes, Shift+clicks the second into the selection, aligns them, groups them, moves the group from the keyboard, ungroups and finds the members where the group left them, turns and flips one and reads both back out of the saved file, and leaves the deck as it found it. It caught one fault, now fixed: one shape aligned to the other shapes' group whenever the ribbon said so outright, which it always does.
    • Twelve engine tests in tests/deck-fill-effects.test.js: a solid fill's transparency; a gradient's every stop and its angle read back; the light and dark variations; a picture fill's picture and its link to the slide surviving a save; tiling, and changing it without sending the picture again; a replaced picture leaving the old one unreferenced; glow, soft edges and each reflection written and read; all four effects together in the order the file format sets, and None clearing them; one more effect added without losing those already on. The deckfx window block (RUTBA_VERIFY_ONLY=deckfx) sets a gradient from the Format pane and turns it, finds the gradient drawn on the slide, switches to a see-through solid fill, adds glow, soft edges and reflection from the ribbon, checking each keeps the ones before it, finds the glow drawn, reads fill and effects out of the saved file, and leaves the deck as it was. It caught a fault no engine test could: adding a second effect reset the first to a default size, because the pane handed back sizes in pixels where the writer takes points.
    • Seven engine tests in tests/mail-signature.test.js: a new message gets the signature at the end after a blank line and the "-- " line, a reply puts it above the quote and below the cursor, an empty signature is a no-op for a new message and a reply alike, switching accounts swaps the block (at the end of a new message and above a reply's quote) when it is still exactly what was inserted, an edited signature is left alone on the next switch, and there is nothing to swap when the old account carried no signature. One window check in the new signature block (RUTBA_VERIFY_ONLY=signature) sets a signature from the seeded account's own Folder → Signature dialog, opens a new message and reads its plain-text body for the blank line, the "-- " line and the signature, then opens a reply and finds the same block above the quote, and the window reports nothing.
    • Eight engine tests in tests/mail-sendlater.test.js and eight in tests/mail-ooo.test.js. Send later: the choices fall where they say, Monday morning included across a weekend; the Outbox sends only what is due, oldest first, and leaves the rest; a failed send stays with its error and goes again on the next pass; Cancel takes it off the queue unsent; the queue survives a restart, and what fell due while closed goes at start-up. Automatic replies: each of the RFC 3834 skips, one reply per sender while it is on, the start and end honoured to the minute on either side, contacts-only, the reply's headers, and turning it on again starting the list of who has been answered afresh. The mail service now takes its clock and its sending transport as arguments, which is what lets all sixteen run with no timer and no network. Two new window blocks: sendlater (RUTBA_VERIFY_ONLY=sendlater) sends a message later from the message window, reads it in the Outbox with its time, presses Send now and finds it gone from the Outbox and in Sent; ooo (RUTBA_VERIFY_ONLY=ooo) turns automatic replies on from the account's dialog, reads the banner, delivers a message through a stand-in for new mail arriving (it refuses to run outside a check) and finds exactly one reply sent, with its headers, then a second message from the same sender and no second reply; both blocks read that the window reported nothing.
    • The whole gate is open on Windows on the branch as it stands (2026-09-25): 987 engine tests, the 12 editing checks, 498 application checks and every window painting in the smoke run. The first four blocks here (captions, watch, deckfind and signature) had passed under Xvfb in a Linux container before this. The Windows gate found one fault of the product's own, now fixed: Replace All's "Replaced 2 across the deck." gave way at once to the search that followed it, which, finding nothing left, said "No matches.". The rest were in the checks themselves, and are fixed there. The editing pass waits for each key to reach the document rather than sleeping a fixed time. A full run leaves its windows for Electron to close on the way out; destroying ninety of them just before made the run end on exit code 7014 whatever its verdict. Checks written before this version now expect the table of contents as a field and a shadow drawn by offset and blur.
    • Review. tests/accessibility-rules, -word, -sheet and -deck (14 tests) cover WCAG contrast, every rule, the alt-text and decorative XML in all three formats, and each fix as one undo step. tests/proofing-spelling (11 tests) covers the words a pass skips, both dictionaries, the choice of language, the .dic format, a pass that goes round from the caret, each app's text and Change All. The window checks a11y and spelling drive all three apps. A finding is fixed from the pane, and the status bar follows edits, undo and redo. A misspelling is found, changed and added to the dictionary, and the right-click offers suggestions. A second F7 finds nothing, and a word taken out of the dictionary is flagged again. Saving a slide's notes a second time used to add a second notes part, so the slide kept its old notes; that is fixed.
    • Word text boxes and Arrange. tests/word-textbox.test.js (8 tests) and tests/word-arrange.test.js (10) cover the text box's XML as Word writes it, its round trip, the drawing order, behind and in front of text on paper, alignment, rotation, flips and groups. The window checks textbox and wordarrange insert, type in, move, size and format a box. They send a picture behind the words and bring it in front, group two boxes, and hide and rename them from the Selection Pane. The older picture check now expects Word's eight handles.
    • PivotChart and slicers. tests/sheet-pivotchart.test.js and tests/sheet-slicers.test.js cover the chart's pivot source, its redraw on refresh, and slicer XML written and read. They also cover filtering a table's rows and a pivot's items, one item and several. The window check slicers makes a PivotChart, adds a slicer, presses items, and clears them.
    • A document's dictionary is read in the background a moment after its window opens. On a busy machine the first right-click on a misspelt word had outrun the dictionary's first build, so it showed the plain menu.
    • Password-protected files. tests/encrypted-package.test.js, tests/encrypted-cfb.test.js and tests/encrypted-service.test.js cover several cases. Each format round-trips through Agile Encryption. A wrong password is refused. One changed byte is caught by the HMAC. A Standard Encryption file built by the specification's own steps is read, with the known-answer values [MS-OFFCRYPTO] gives. The compound file we write is read back by our own reader. The autosave copy is encrypted. The window check encrypted opens a protected file and types a wrong password, then the right one, through the dialog. It sets a new password from Info, saves, and reopens the file with it.
    • Hyphenation, citations and Restrict Editing. tests/word-hyphenation.test.js (6 tests) covers the settings written in schema order, optional hyphens, and the printout breaking at the zone and the limit. tests/word-citations.test.js (13) covers each style's citation and bibliography entry, the sources part as Word writes it, and placeholders. tests/word-restrict.test.js (7) covers Word's password hash, the protection element placed and read back, exception regions surviving edits, each kind of protection, and the document service refusing a locked edit however it arrives. The window checks hyphen, citations and restrict drive each of these in Rutba Word, and sheetarrange with tests/sheet-drawing-arrange.test.js (5) does the same for a sheet's drawings.

    The release on GitHub, with its installers →

  23. 25 September 2026

    1.26.025 September 2026

    Slides gathered into sections, a hidden one left out of the show, a background style of its own, and a table and a chart put straight onto a slide, in Presentation; columns, cross-references, drop caps, text effects, bookmarks, and Delete and Paste over a selection in Rutba Word; error checking and sparklines in Worksheets; the zoom slider scaling the page alone, never the window, in Word, Worksheets and Mail; an account starting from a provider's tile, and a message written back to an mbox keeping its bytes, in Mail; a slideshow, with a clip's length on its tile, in Pictures; and a recent file renamed, or taken off the list, from the launcher.

    TouchedRutba WordWorksheetsPresentationMailPictures

    What changed

    • Home → Section
    • Slide Show → Hide Slide
    • Design → Background Styles
    • Insert → Table
    • Insert → Chart
    • Formulas → Error Checking

    and 14 more in the notes

    The full notes for 1.26.0

    Presentation

    • Home → Section. The button now opens a menu (Add Section, Rename Section…, Remove Section, Remove All Sections), as PowerPoint's does. Add Section starts a section at the selected slide and asks for its name at once, a "Rename section" dialog prefilled with "Untitled Section"; a deck with no sections first gets a "Default Section" for the slides before it, as PowerPoint does, since every slide of a sectioned deck is in some section, and a slide that already starts a section starts it still. Rename Section renames the section the current slide is in; Remove Section takes it away and its slides join the section before it, the first section's joining the one after; the last section standing takes the list with it; Remove All Sections takes every section out, the slides staying. Sections are drawn as headings above their first slide in the thumbnail strip and in Slide Sorter view, the name with the slide count beside it, and a double-click on a heading renames it. In the file the sections are PowerPoint 2010's p14:sectionLst in an extension list on the presentation part, written as PowerPoint writes it: one p:ext with PowerPoint's section-list URI, the p14 namespace on the list, each section a name, a GUID and its slide ids; a file with an extension list of its own keeps what is in it, and a list PowerPoint wrote is read as it comes, its GUIDs kept. Adding, duplicating, moving or deleting a slide keeps the sections in step: a new slide joins the section of the slide before it, a moved slide belongs to the section it lands in, a deleted slide leaves its section, and a section left with no slides stays, as PowerPoint keeps one, drawn after the last slide so it is not lost. The button was greyed out ("Sections are a presentation-part list the engine does not write yet").
    • Slide Show → Hide Slide. The button now marks the slide show="0" on its own root tag, as PowerPoint does, and takes the attribute off again to show it. The thumbnail strip and Slide Sorter still draw a hidden slide, dimmed with its number struck through; printing still prints it; only the show steps over it (from the keyboard, a click, the presenter window, and Home and End), and a show never opens on a hidden slide. The button was greyed out.
    • Design → Background Styles. The button now offers the theme's four backgrounds, an accent gradient, white, black, light grey and dark blue, a reset to the layout's own, and Apply to all slides. The background is written as PowerPoint writes it (p:bg with a bgPr holding the fill and an empty effect list, first in the slide's cSld), replacing a bgRef the file may carry; a solid colour, a theme colour with its luminance modifiers, or a two-stop linear gradient at an angle. The stage and the thumbnails redraw at once, and the ribbon ticks the choice a slide already carries. The button was greyed out.
    • Insert → Table. The button now offers 2 × 2, 3 × 3, 4 × 3 and 5 × 4, written as PowerPoint writes a table (a graphic frame holding a:tbl with its first-row and banded-row flags, the Medium Style 2 - Accent 1 table style, equal grid columns, and a cell with a text body and cell properties in every row), drawn as the reader and renderer already drew a table from a file. Each cell has a hit area on the stage: a double-click edits its words in place, Enter commits, Shift+Enter breaks a line, Tab commits and moves to the next cell as PowerPoint does; a right-click offers a row above or below, a column left or right, and deleting either, the frame growing and shrinking with the rows and the columns sharing its width. A run's look survives an edit. The button was greyed out.
    • Insert → Chart. The button now offers Column, Bar, Line and Pie, each a chart part written with the chart writer Word and Worksheets already use (a cached chart, no embedded workbook, which PowerPoint opens as it is), with its content type, a relationship from the slide and a graphic frame holding c:chart as PowerPoint frames one, drawn by the reader and renderer that drew charts from files. A sample chart goes in first (four quarters, Sales and Costs), and a double-click on the frame, or Edit Data on its menu, opens a small grid: the series along the top, the categories down the side, the values in between, rows and columns added or removed, the type and the title changed, Apply rewriting the part with the frame untouched. The button was greyed out.

    Worksheets

    • Formulas → Error Checking. The button now opens a pane over the grid listing every cell whose value is an error, across every sheet (#DIV/0!, #REF!, #NAME?, #VALUE!, #N/A, #NUM!, #NULL! and the engine's own #CIRCULAR! for a cell that refers to itself), each with its sheet when not the active one, its reference, the value in red, the formula and one plain sentence saying why. A click goes to the cell, Next and Previous walk them from the active cell, and the list is live: a cell fixed drops off it on the next frame. Nothing is recalculated to make the list; it reads the values the calculation already holds. Turning it on or off changes nothing in the file. The button was greyed out.
    • Insert → Sparklines. Line and Column now open a small dialog prefilled from the selection (the data range, and the cell past its last column), and write the sparklines as Excel writes them: the x14 sparkline groups in the worksheet's extension list, last on the sheet after any extension already there, one sparkline per row of the location with its data range and cell, Excel's own colours, blanks shown as gaps. Each is drawn in its cell in the cell layer (a line through the values or bars) under the cell's own words, and a cell that held nothing but a sparkline is still drawn. A right-click on a sparkline cell removes it, as does Delete on an empty one; an emptied group and an emptied extension go with it. A sheet the file already carries sparklines on shows them. The two buttons were greyed out.

    Rutba Word

    • Home → Text Effects. The "A" button opens a menu (Outline, Shadow, a glow in gold, blue, green or red, No glow, Clear effects) on the selected words. An outline and a shadow are the toggles Word has always had (w:outline, w:shadow, in schema order after strike and before the colour); a glow is Word 2010's w14:glow, its radius in EMU and its colour, at the end of the run's properties. On the page an outline is hollow letters, a shadow a soft dark offset and a glow a coloured halo; the format painter carries all three. In print an outline is stroked (the PDF writer gained a stroke render mode for text) and a shadow is the word drawn once more offset in grey; a glow is not drawn. A soft blur is not a thing this writer does. The button was greyed out.
    • Insert → Bookmark. A dialog lists the document's bookmarks and adds, deletes or goes to one: a name as Word allows it (letters, digits and underscores, starting with a letter, up to forty), the same name again replacing the old, the marks written as w:bookmarkStart after the paragraph's properties and w:bookmarkEnd before its close, over the selected paragraphs or the caret's. A bookmarked paragraph stays editable (typing, Enter and Backspace keep the bookmark), where before it made the paragraph read-only; a mark Word placed mid-paragraph widens to the paragraph's start on the first edit, the honest cost of keeping the paragraph editable. Go To is a cursor move and does not mark the file changed. The button was greyed out.
    • Insert → Cross-reference. A dialog lists the document's bookmarks and inserts a REF field at the caret (Word's own simple field, w:fldSimple with the instruction and the bookmark's words as its cached result, a hyperlink to the bookmark), drawn shaded on the page, Ctrl+click going to the bookmark. Update Fields (F9, on the References tab) refreshes every REF from its bookmark's words and says how many changed; a bookmark that has gone leaves Word's own "Error! Reference source not found.". A simple field used to make its paragraph read-only, because a rebuild would have lost it; a field is a run of its own now, written back as the element it came from and kept whole under editing (typing lands before or after it, a deletion that clips it takes it all), so a paragraph carrying one stays editable, and a run whose words merely contained "Reference" is read as words rather than a footnote mark. Complex fields (fldChar) stay as they were, preserved and read-only. Both buttons were greyed out.
    • Insert → Drop Cap. The button now offers None, Dropped, Dropped two lines and In margin, and does what Word does: the first letter becomes a paragraph of its own, framed with w:framePr (dropCap, lines, wrap around, anchored to the text) and its run sized to stand that many lines deep; the body paragraph is unchanged. On the page the letter floats at the left and the body wraps round it; in print the paginator lays it as a float (the lines beside it shorter, as beside a picture), and the PDF draws it once at its size, In margin hanging it in the left margin when the margin has the room. None merges the letter back and takes the size off. A paragraph that is empty, opens with a picture, sits in a table or is structural is refused with one sentence, and choosing another style on an existing drop cap restyles the pair rather than nesting a second split. The button was greyed out.
    • Layout → Columns. The button now offers One, Two, Three, Left and Right, and a line between, written as w:cols on the section in schema order (the count and the space, or explicit column widths for the unequal presets) and read back into the section's column boxes. In print and PDF the paginator fills the first column to the foot of the page, then the next, then a fresh page, each column with its own floats and its own footnotes at its foot, a table wider than its column scaled to fit, and a separator drawn down each gap when asked for; a one-column section paginates byte-identically to before. On screen the editable page is one flow, so in print layout it is laid exactly as wide as the first column (Word's own draft view does the same), with a status chip saying so and the ruler marking each column's edges; in the draft layout the browser flows the columns itself. The button was greyed out.
    • The page count holds when the layout pass stops early. The print layout's pass on screen can stop partway (a paragraph's continuation pulled back onto the page before leaves the rest to the next pass), and the page count used to be taken from the blocks the pass had reached, so an eleven-page report drew six sheets while the words below still sat where they were. It showed up as this on the fixture's own fonts on Linux, where one long paragraph sits on a knife-edge between two measurements and the passes alternate with it (Windows' metrics never land there), but the fix is not Linux-specific: the count now takes every block, the ones past the stop from their measured box, so it is right whatever made a pass stop early, anywhere.
    • Delete and Paste act on a selection that ends on the page itself. A selection dragged into the margin, a triple-click or Ctrl+A ends on the page element with a child index, not inside any paragraph, and the window read that as no position at all: the engine never learnt the range, so Delete took one character and a paste landed at the old caret with the selected words untouched. Such an end is now, since 2026-09-24, the start of the first paragraph at or after that index, or the end of the last one before it, so the range reaches the engine as the other selections do and Delete, Backspace, typing and a paste all replace it.

    Everywhere

    • The zoom slider scales the page, not the window. In Rutba Word and Worksheets, and the In and Out buttons in Mail, zoom used to scale the whole window: the ribbon, the status bar and the slider itself grew under the pointer, which made the slider unusable. Since 2026-09-24, Word scales the page with CSS zoom on the page element, Worksheets the grid's scroll container, and Mail the message in the reading pane; the window's chrome stays put and its own zoom factor is reset to 100% once on opening, in case an earlier build left it zoomed. Page Width and One Page fit the scroll area rather than the window. Presentation already scaled its stage alone.
    • A recent file can be renamed, or taken off the list, from the launcher. Right-click a row for Rename… and Remove from the list, press F2 or Delete on a focused row, or use the × that appears when the pointer is over it. Rename turns the name into a text box in the row, the name selected up to its extension; Enter renames the file on disk and points the entry at it, Escape leaves it. A rename is refused with a plain sentence (the name is empty or already taken, the file has gone, or the document is open in a window and has to close first), and the row stays as it was. Remove takes the entry off the list and leaves the file where it is.

    Mail

    • Adding an account starts from a tile. The dialog now opens with a row of tiles (Gmail; Outlook, Hotmail and Microsoft 365; Yahoo; iCloud; AOL; Zoho; Fastmail; Proton; Other), and a tile fills the incoming and outgoing servers with no network, sets the address field to that provider's domain, shows the browser sign-in where Google or Microsoft offer one, and for a provider that wants an app password says so with a button that opens the page where one is made. A typed address of a known provider gets the same line. The tiles fold away behind Change provider once a provider is settled. The table gains Mail.ru, QQ Mail, 163.com, Naver, Libero, La Poste, SFR, Bluewin, Cox, Telstra, Optus and Xtra, each with the servers the provider publishes.
    • A message written back to an mbox keeps its bytes. Writing an mbox went through TextDecoder('latin1'), which by the encoding standard is Windows-1252: it reads the bytes 0x80 to 0x9F as the euro sign, the curly quotes and their neighbours, whose code points do not come back to the byte they were, so an em dash in a UTF-8 message (E2 80 94) went out as E2 AC 1D and read back as mojibake. The reader and the writer now go byte for byte. A Subject line carrying raw UTF-8 (rather than an encoded word) is now read as UTF-8 when it is valid UTF-8.

    Pictures

    • View → Slideshow. F5 shows the folder's pictures full-window on black, in the grid's own order and filter, each fading into the next over six tenths of a second with the next decoded before it is shown, looping at the end; every 2, 4, 8 or 15 seconds as chosen beside the button and remembered; a clip plays through to its end before the show moves on, muted unless the show's sound is on. Space pauses, the arrows step, Escape or a click leaves, and leaving selects the picture the show stopped on.
    • A clip's length on its tile. A clip's tile and its filmstrip entry now carry its length as m:ss, read once from the clip's own metadata a few at a time and kept for the window's life, as the frames are.

    Proven, not promised

    • Three engine tests in tests/deck-sections.test.js: one adds a section before a slide, the slides before it falling into a Default Section, checks the XML written matches PowerPoint's form byte-for-byte at the end of the presentation part, reads it back through a save, refuses to double a section a slide already starts, splits a section, renames it (trimmed, an XML-hostile name escaped, a blank name becoming "Untitled Section"), removes one (folding its slides into the section before, or after for the first), removes the last one and finds the extLst gone, and removes them all; a second inserts, duplicates, moves (down, up, to the very front) and removes slides and finds the sections kept in step, an emptied section written as <p14:sldIdLst/>, and a presentation part with another extension already in its extLst keeping it before and after; a third reads a list written the way PowerPoint writes it, sets aside a slide id not in the show, gives an unlisted slide to the section before it on the next edit, keeps PowerPoint's own GUID, and adds a section at an unlisted slide. Five window checks in the new sections block (RUTBA_VERIFY_ONLY=sections): Home → Section → Add Section on the second slide starts a section there with the first slide in a Default Section and the name asked for; the typed name is the heading drawn in the strip with the slide count; the saved file carries the list as PowerPoint writes it; Remove Section folds it back and Remove All Sections takes the list out of the strip and the file; and the window reports nothing.
    • The engine test "a body with characters outside ASCII survives a write and a read" in tests/mailbox.test.js, which failed before this release, now passes: writing and reading an mbox go byte for byte, an em dash and a euro sign in a UTF-8 message coming back as themselves.
    • Four engine tests in tests/deck-hidden.test.js: the hidden attribute written and taken off with the rest of the slide byte-identical, survives a save, hiding twice is no change, a root already saying show="1" is corrected, a duplicate of a hidden slide is hidden, and a bad index throws. Six window checks in the new hidden block (RUTBA_VERIFY_ONLY=hidden) press the button, read the strip, the saved file and the show's stepping.
    • Eight engine tests in tests/word-effects.test.js write and read the three effects, hold their schema order, read a file that declares w14 itself, keep them through a save, drop them with Clear formatting and report them at the caret. Six window checks in the new effects block (RUTBA_VERIFY_ONLY=effects) put each on a selected word from the menu, read the span's stroke and shadow, the saved file's elements, and take them off.
    • Eleven engine tests in tests/word-bookmarks.test.js write and read a two-paragraph bookmark, number a second, replace by name, refuse bad names, remove, edit, split and merge the bookmarked paragraph with the marks kept, skip Word's own _GoBack, read a mid-paragraph mark, go to and undo. Six window checks in the new bookmarks block (RUTBA_VERIFY_ONLY=bookmarks) add one from the dialog, read the model, the saved file, Go To and Delete.
    • Six window checks in the new zoom block (RUTBA_VERIFY_ONLY=zoom) set the slider to 150% in Word and Worksheets and read the page and grid half as wide again, the ribbon and the slider unchanged, the window's own factor still at 1, the pages still falling where they did, a press on a cell at its zoomed place selecting it, and the percentage putting it back.
    • Three editing checks under npm run verify:edit: a selection from inside the first paragraph to past the second reaches the engine as a range, Delete takes the words and the paragraph mark between them, and a paste over a selected paragraph replaces it.
    • Five engine tests in tests/mail-discover.test.js hold every provider entry to an id, a label, real ports and a secure flag, every app-password page to https, the tiles to plain data that crosses the bridge, and the offline search to carrying the app-password page. Six window checks in the new providers block (RUTBA_VERIFY_ONLY=providers) open the dialog, pick Yahoo and read the servers, the button and the placeholder, then change to Gmail and find the sign-in card; the block passes under Xvfb.
    • Nine engine tests in tests/word-dropcap.test.js split, size and frame the letter in schema order, read it back, lay the body's first three lines shorter and the fourth full, print the letter once, merge back, refuse the empty paragraph and the cell, and undo. Six window checks in the new dropcap block (RUTBA_VERIFY_ONLY=dropcap) pick Dropped from the ribbon, read the float on the page and the frame in the saved file, and put it back with None; the block passes under Xvfb, which also found that None left the letter as a one-character run at the paragraph's head; the runs are joined again now.
    • Six engine tests in tests/deck-background.test.js write and read a solid colour, a scheme colour with modifiers and a gradient, draw each in the SVG, put the layout's background back, replace a bgRef, keep the other slides byte-identical and survive a save. Six window checks in the new background block (RUTBA_VERIFY_ONLY=background) pick Dark blue, read the stage, the thumbnail and the saved file, apply to all and reset; the block passes under Xvfb.
    • Four engine tests in tests/sheet-errors.test.js list a sheet's division by zero, unknown function, failed lookup, bad square root and circular pair in row order with their kinds and reasons, take in a second sheet, drop a fixed cell and give a clean sheet nothing. Seven window checks in the new errors block (RUTBA_VERIFY_ONLY=errors) type two bad formulas, open the pane, read the rows, click one, step to the next, fix one and close; the block passes under Xvfb.
    • Three engine tests in tests/pictures-show.test.js cover the looping step, the length as text and a clip's own time in the show. Six window checks in the new slideshow block (RUTBA_VERIFY_ONLY=slideshow) start the show on two fixture pictures, see it advance at two seconds, pause, leave on the right picture and read a clip's badge; the block passes under Xvfb.
    • Six engine tests in tests/word-columns.test.js write and remove the columns element in schema order, keep unequal widths through a save, hold a one-column document byte-identical, fill two columns of an eighty-paragraph document in fewer pages, draw the PDF from two x origins with a separator, and put a footnote at the foot of its own column. Seven window checks in the new columns block (RUTBA_VERIFY_ONLY=columns) set two columns on the long report, read the screen, the chip, the saved file and a printed PDF, and take them off; the block passes under Xvfb.
    • Eight engine tests in tests/deck-table.test.js hold the frame's XML to PowerPoint's shape, read the cells and their boxes, draw the table, edit one cell with the rest byte-identical, insert and remove rows and columns with the frame in step, keep the other slides untouched, survive a save, throw for a bad slide or shape, and still read the showcase deck's own table. Eight window checks in the new table block (RUTBA_VERIFY_ONLY=table) insert a table, edit a cell, add a row and delete the table, reading the model and the saved file; the block passes under Xvfb.
    • Nine engine tests in tests/deck-chart.test.js hold the part, the override, the relationship and the frame to PowerPoint's shape, read the data back, draw the bars, change the values and the type with the frame byte-identical, keep the other slides, survive a save, number two charts apart, throw for a bad slide or type, and still read the showcase deck's own charts. Seven window checks in the new chart block (RUTBA_VERIFY_ONLY=chart) insert a chart, edit a value, read the saved part and its relationship and delete it; the block passes under Xvfb.
    • Eleven engine tests in tests/word-xref.test.js write the field, list it, edit round it, delete it whole, refuse to type inside it, refresh it, write the error text, keep a complex field structural, round-trip a PAGE field, survive a save and undo. Six window checks in the new xref block (RUTBA_VERIFY_ONLY=xref) add a bookmark, insert the reference, read the page and the file, edit the source and update, delete the bookmark and update; the block passes under Xvfb.
    • Nine engine tests in tests/sheet-sparklines.test.js hold the XML to Excel's form, read the groups back, resolve a cell's values, merge a second group into the same extension, remove one cell's, a group's and the extension, keep another extension in place, survive a save, refuse mismatched ranges and read the showcase workbook's own. Ten window checks in the new sparklines block (RUTBA_VERIFY_ONLY=sparklines) insert a line and a column sparkline from the ribbon, read the drawing and the saved file, and remove one; the block passes under Xvfb.
    • The pages block now passes under Xvfb three runs out of three: the page count used to be taken from the blocks a stopped-early layout pass had reached, so a long report counted eleven pages one run and six the next on this fixture's fonts under Linux; the count now takes every block, whatever made the pass stop, and the fix is not Linux- specific. The float block now passes under Xvfb too, given the eight seconds the picture's first float measurement already gets, rather than five, for leaving a float's heavier reflow under software rendering; and the picture fixture, made from the application's own icon, is now found by a portable path rather than one only right on Windows, so the floating-picture blocks that needed it run under Xvfb as well.
    • Every block written for this release (columns, table, chart, xref and sparklines, alongside providers, dropcap, background, errors and slideshow, and sections, hidden, effects, bookmarks and zoom from earlier in it) has now passed once under Xvfb in a Linux container, and the twelve checks under npm run verify:edit pass there too; the Windows gate is run at release time.
    • Four engine tests in tests/recent-store.test.js rename and remove an entry of the recent list, and leave it alone for a path it does not hold. Three window checks in the new recent block (RUTBA_VERIFY_ONLY=recent) rename a file from the row's own text box and read the disk and the list, take a row off with its × and find the file still on disk, and have a rename to a name already taken refused with the launcher saying so; the block passes under Xvfb.
    • The whole gate has run under Xvfb in a Linux container on this release's code: 893 engine tests, the twelve editing checks, ten windows rendered clean, and 431 of the 434 application checks on the last full pass. Of the three left, one was the check's own (the slideshow's Escape check did not count a PDF's viewer, which the show reaches when another block has printed one into the folder), and it passes in its block since; the other two are the platform's, a folder's tiles from the operating system's thumbnail host and an account's password kept in the OS keystore, both Windows-shaped. The fill-handle drag, which drives the real mouse, passed on one run of two. The Windows gate is run at release time.

    The release on GitHub, with its installers →

  24. 21 September 2026

    1.25.021 September 2026

    A link on a slide's words; paragraphs sorted in Rutba Word; formatting cleared from a shape.

    TouchedRutba WordPresentation

    What changed

    • Insert → Link
    • Home → Clear all formatting
    • Home → Sort
    The full notes for 1.25.0

    Presentation

    • Insert → Link. A web address on the selected shape's words (every run, each keeping its look), written as PowerPoint writes one, an External relationship on the slide and hlinkClick on the runs; drawn underlined in Office's link blue; Ctrl+click on the shape follows it, and the shape says so when the pointer rests on it. Editing the words keeps the link, which an edit used to drop. Ctrl+K opens it. The button was greyed out.
    • Home → Clear all formatting. The selected shape's words keep only their links; bold, size, colour, font and the rest go, so the words fall back to what the placeholder and the theme give them. The paragraphs' own level, bullet and alignment stay. The button was greyed out.

    Rutba Word

    • Home → Sort. The selected paragraphs A to Z or Z to A (numbers in their order, case set aside), each moving whole with its look; the whole document when nothing is selected, as Word offers. A table's rows are the table's to sort. The button was greyed out.

    Proven, not promised

    • One engine test puts an address on a two-run box, finds every run pointing at the slide's External relationship with its look kept, reads the address back through a save, edits the words as the window does and finds the link kept, and takes it off. Two window checks put an address on the pasted box from the ribbon, find it drawn and offered to follow, and read the run and the relationship in the saved file (clip).
    • Two engine tests sort four paragraphs both ways with a heading keeping its style and 9 before 10, undo each step, sort the whole body from a collapsed caret, leave one paragraph alone, and refuse a run with a table in it. Two window checks sort the fixture's two paragraphs A to Z from the ribbon, read the order on the page and in the saved file, then put them back (look).
    • One engine test formats and links a two-paragraph box, clears it, and finds the words, the link and the paragraph properties kept with nothing else, in the model and in the file. Two window checks make the pasted box bold, clear it from the ribbon, and read the plain, linked runs in the saved file (clip).

    The release on GitHub, with its installers →

    1.24.021 September 2026

    A picture from a file shows and can be deleted; a multilevel list in Rutba Word; find and replace across a presentation.

    TouchedRutba WordPresentation

    What changed

    • Home → Multilevel list, and the indent buttons on a list
    • Insert → Pictures draws the picture, and Delete takes it out
    • Home → Find
    The full notes for 1.24.0

    Rutba Word

    • Home → Multilevel list, and the indent buttons on a list. The multilevel list numbers 1., 1.1., 1.1.1., each level carrying the numbers above it; Increase and Decrease indent move a list paragraph a level rather than a step, so a numbered list nests 1. a. i. and a bulleted one changes its bullet, as Word's do. New list definitions are written with Word's nine levels, so there is somewhere to go; a paragraph in no list still moves its own indent. The button was greyed out.
    • Insert → Pictures draws the picture, and Delete takes it out. A picture chosen from the file dialog was written as the digits of its byte array (the engine took a Buffer or base64 text and got neither), so it drew as nothing; it is written whole now, and .bmp and .webp are accepted along with png, jpeg and gif. A picked picture had no way out: Delete or Backspace now takes it, and its block when the block held nothing else, in one undo step.

    Presentation

    • Home → Find. The words typed, Find lists every shape they are on across the deck with a count; a match clicked goes to its slide and selects the shape; Replace all rewrites them everywhere, run by run so each keeps its look, a field's text left alone, and says how many. Ctrl+F opens it. The Editing group was greyed out.

    Proven, not promised

    • Two engine tests number five paragraphs, nest two of them to 2.1. and 2.1.1., read the nine-level definition and the level back from the file; then nest a numbered list to a. and i., a bulleted one to its hollow bullet, and move a plain paragraph's indent. Three window checks press Multilevel list on two paragraphs and Increase indent on the second, find 1. and 1.1. on the page, then read the saved paragraph and definition, and put the paragraphs out of the list again (look).
    • Two engine tests list every shape a word is on with counts, case aside or minded, then replace it across two slides and a footer, find a bold run and an italic one keeping their look, a slide-number field keeping its text, and the replacements in the saved file. Six window checks type a phrase, case-exact, find it with the title of slide 1 first while on slide 2, click the match and land on the title, replace it across the deck with the count said and the lower-case words left alone, read the saved file, and put the words back (find).
    • Two engine tests insert a picture as the byte array the dialog hands over and find the file's own bytes in the part and on the page, take it out with its block and undo; then accept bmp and webp, refuse tiff, and take a picture out of a paragraph of words leaving the words. Two window checks find the drawn picture decoded from the file's own bytes and delete it from the keyboard.

    The release on GitHub, with its installers →

    1.23.021 September 2026

    Word gets page borders, a watermark and line numbers; a slide gets the Format Painter, the footer band and shadows.

    TouchedRutba WordPresentation

    What changed

    • Design → Page Borders
    • Design → Watermark
    • Layout → Line Numbers
    • Home → Format Painter
    • Insert → Header & Footer, Date & Time, Slide Number
    • Shape Effects
    The full notes for 1.23.0

    Rutba Word

    • Design → Page Borders. A menu of boxes (a thin, thick, double or dashed line) and none. Written as w:pgBorders in the section, after the margins where the schema puts it, measured 24 pt in from the page edge as Word measures its own; drawn on every sheet in print layout and around the flow otherwise; printed by the PDF, where a double border is now two lines for paragraphs as well. The button was greyed out.
    • Design → Watermark. DRAFT, CONFIDENTIAL, SAMPLE, DO NOT COPY, URGENT, any words of your own, or none. Written as Word writes its own (a WordArt shape, silver, rising across the page, first in the header), so Word shows it; the page and the PDF already drew one that a file brought in, and now draw one the suite made. A header's own words stay under it and can still be changed. The button was greyed out.
    • Layout → Line Numbers. None, continuous, restarting on each page, or every fifth line: a number beside every line of the body down the left margin, as a contract or a manuscript wants. Written as w:lnNumType in the section after the page borders; drawn beside the lines the page actually has, so a paragraph split across pages counts right; printed by the PDF beside the lines the paginator laid. The button was greyed out.

    Presentation

    • Home → Format Painter. Click a shape, press it, click another: the second takes the first's fill, outline and font (the fill and outline into its own properties, the font onto every run of its words), and the painter is put down, as PowerPoint's is after one shape. Esc puts it down early; the button stays pressed while it is armed. It was greyed out.
    • Insert → Header & Footer, Date & Time, Slide Number. One dialog: the date (kept current, or fixed words), the slide number and the footer's words, on this slide with Apply or every slide with Apply to All. Written as PowerPoint writes them (the three footer placeholders, the number and an automatic date as fields), placed where the layout or master places them, or along the bottom where PowerPoint's own templates put them. The number follows the slide when slides move. All three buttons were greyed out.
    • Shape Effects. A shadow under the selected shape (bottom right, below, right, top left, all round) or none, from the ribbon's menu and the Format pane. Written after the outline in the shape's own properties as PowerPoint writes it, read back, and drawn on the stage and in every thumbnail. It was greyed out.

    Proven, not promised

    • Two engine tests write the box, find it after the margins, read the sides back, keep them through a save, print the four lines 24 pt in from the edges, clear and undo it; then write a heavier double frame measured from the text, find the printed line at the margin less the space, and read a side another program wrote as nil as no side. Two window checks pick Box (thin line) and find the frame 32 px in on the sheet, then read the saved section (look).
    • Two engine tests put a watermark on a document with no header and find the header, its reference and Word's shape made for it, read the words, colour and rotation back, keep them through a save, replace, escape, remove and undo; then put one over a header with words and change the words without losing the shape. Two window checks pick DRAFT and find it silver and turned on the page, then read the saved header (look).
    • Two window checks give a pasted box a fill and an outline, arm the Format Painter on it, click the slide's title, and find the look on the title and in the saved file (clip).
    • Two engine tests write the footer, the number and the date onto a slide with no layout to place them and find them along the bottom, the number a field saying the slide's place and following it when the slide moves, new words replacing old in the same placeholder and blanks taking it off; then a fixed date as plain words and the number on every slide through a save. Five window checks open the dialog from Slide Number with the number ticked, type the footer, Apply to All, find both on every slide and drawn on the stage, read the saved file, then reopen the dialog on slide 2 with its own settings and take the footer off that slide alone (footer).
    • One engine test writes a shadow after the outline, reads it back in pixels and degrees, keeps it under a fill write, and turns it off with the empty effect list that silences a style's shadow. Two window checks put a shadow under the pasted box from the ribbon, find it drawn, and read it after the outline in the saved file (clip).
    • One engine test writes the numbering after the page borders, reads it back, prints six numbered lines, changes it to every fifth line with a gap in twips, clears and undoes it, and reads Word's own default for a file that says nothing about restarting. Two window checks pick Continuous and find 1, 2, 3 down the margin with a gap before the text, then read the saved section (look).

    The release on GitHub, with its installers →

    1.22.021 September 2026

    Sheets come and go from the tabs, the Data and Formulas tabs fill in, a slide's text does everything the box can, and a Word paragraph takes shading, borders and a page colour.

    TouchedRutba WordWorksheetsPresentation

    What changed

    • Home → Layout and Reset
    • Strikethrough, character spacing, change case and highlight
    • Align text, Text direction and Columns
    • Home → Shading and Borders
    • Design → Page Colour
    • Sheets can be added, renamed and deleted

    and 4 more in the notes

    The full notes for 1.22.0

    Presentation

    • Home → Layout and Reset. Layout puts the slide on another of the deck's layouts from a menu, as the Designs pane does; Reset puts moved placeholders back where the layout has them. Both were greyed out.
    • Strikethrough, character spacing, change case and highlight. The four Font controls are live: Strikethrough toggles, AV offers very tight to very loose, Aa rewrites the letters (sentence, lower, UPPER, Each Word), and the highlight offers four colours or none. Written as PowerPoint keeps them and drawn on the stage: the line through the words, the colour behind them. Caps and super/subscript a slide already had survive an edit now too.
    • Align text, Text direction and Columns. The box's own three: the words sit at the top, middle or bottom of the box, run horizontally or turned up or down, and fill one, two or three columns, one to its foot before the next. Written on the body as PowerPoint keeps them, drawn on the stage the same way. The three buttons were greyed out.

    Rutba Word

    • Home → Shading and Borders. A colour behind the paragraph from six light shades or none, and a rule under, over, beside or all round it. Written as Word keeps them (the paragraph's own shading and borders, in schema order), painted at once, printed and exported to PDF the same way. The two buttons were greyed out; shading and borders in a file were drawn on screen only.
    • Design → Page Colour. A colour behind every page, from the same six light shades or none, on screen, in print and in the PDF, and kept as Word keeps it: before the body, with the setting that makes Word show it. The button was greyed out.

    Worksheets

    • Sheets can be added, renamed and deleted. A + at the end of the tabs adds a sheet, named the way Excel names one; a tab's menu renames it, with every formula and defined name that reads the sheet following the new name, or deletes it after asking, since that cannot be undone. Until now a workbook kept exactly the sheets it opened with.
    • Data → Text to Columns and Remove Duplicates. Text to Columns splits each cell of one selected column on a comma, tab, semicolon or space into the cells to its right, as Excel does (and refuses a wider selection with a sentence). Remove Duplicates takes the selection, or the block round the cell, drops every row that repeats an earlier one, leaves a header the block has alone and closes the rest up. Each is one undo step. Both buttons were greyed out.
    • Data → Sort by several columns. A dialog with up to three levels, each a column of the block and A to Z or Z to A; the first decides and the next break its ties, blanks last either way, stable, one undo step. The A→Z and Z→A buttons sort by the active column as before.
    • Formulas → Trace Precedents, Trace Dependents, Remove Arrows. Blue arrows on the grid from the cells a formula reads to it (a range as a box), or from a cell to every formula that reads it; references to other sheets or by name are counted in a note rather than drawn. Remove Arrows clears them. The three buttons were greyed out.
    • Formulas → Create from Selection. A name for each column of the block, from its header (spaces and punctuation to underscores, a leading digit and a cell-like name made valid the way Excel does) live in formulas at once and kept in the file. The button was greyed out.

    Proven, not promised

    • Three engine tests add a sheet (the part, its content type, the relationship, the entry with the next sheetId, undone part and all), rename one and find the formulas and names following, and remove one leaving no entry, relationship or part. Three window checks press +, rename the new tab through its menu, delete it after the dialog, and read the file after each step (links).
    • Two engine tests write strikethrough, spacing, caps, a superscript and a highlight and read them back after a save, and move a placeholder, reset the slide and find it back where the layout has it with no geometry of its own in the file. Two window checks press Strikethrough and read the line drawn, and put the slide on another layout from the Home tab (RUTBA_VERIFY_ONLY=bullets).
    • One engine test anchors, turns and splits a body and reads the three back after a save, finds the stage turning the words, and finds the twelfth line of a two-column body drawn in the second column. One window check picks Middle and Rotate all text 270° and reads both on the body and the turn on the stage (bullets).
    • Two engine tests write a paragraph's shading and two borders, find them in schema order, read them back after a save, take them off again and undo. Two window checks pick Light yellow and Bottom border on the first paragraph, read the paint, save, and read the paragraph properties back from the file (RUTBA_VERIFY_ONLY=look, capture word-look.png).
    • One engine test writes a page colour as the document's first child with the setting that shows it, reads it back after a save, clears it and undoes. Two window checks pick Light blue on the Design tab, read the page painted, save and read the element back before the body (look).
    • Three engine tests split a column and refuse two, remove repeated rows from a block with a header and from rows chosen by hand, and undo each in one step. Three window checks type a,b,c and a repeated row through the document ops, split the one from the Data tab, remove the other, read the block closed up, save and read both back (links).
    • One engine test sorts by two keys, the first descending, and finds the ties broken by the second and blanks last. One window check sorts the block by two columns through the dialog and reads the rows in order (links).
    • Two engine tests trace precedents (a cell each, a range as one box, a reference elsewhere counted) and dependents (through a range too). Two window checks type a formula, press Trace Precedents, read two arrows ending at the formula, and press Remove Arrows (links).
    • One engine test names five columns from a header row, finds the names made valid, live in a formula and kept through a save. One window check presses Create from Selection on the block, saves, and reads the names back from the file (links).

    The release on GitHub, with its installers →

    1.21.021 September 2026

    A cell's words move in and turn, the Page Layout tab writes the file, and a slide keeps its look.

    TouchedWorksheetsPresentation

    What changed

    • Home → Increase indent, Decrease indent
    • Home → Text orientation
    • Page Layout writes the file
    • Page Layout → Breaks
    • Insert → Header & Footer
    • Bullets, numbering, list levels and line spacing

    and 2 more in the notes

    The full notes for 1.21.0

    Worksheets

    • Home → Increase indent, Decrease indent. The two arrows move a cell's words in and out by one of Excel's indent units a press, each cell from its own indent, and never below none. Written as Excel keeps an indent: in the cell's alignment, beside a left alignment when the cell had none. Centring a cell drops its indent, as in Excel. The buttons were greyed out; an indent in a file was drawn and none could be given.
    • Home → Text orientation. Angle anticlockwise, Angle clockwise, Vertical text, Rotate text up, Rotate text down, and Horizontal text to put it back: the words turn on screen and on the printed page, the row growing to hold them, and the file carries Excel's own rotation so Excel shows the same. The button was greyed out before.
    • Page Layout writes the file. Margins, Orientation and Size on the Page Layout tab now write the sheet's own page setup (the one the print dialog and Excel start from), where until now they changed a note in the window that nothing read, so a landscape chosen there printed portrait. Print Titles repeats the top rows on every page (a row, two, three, or the selected rows from row 1), and Scale to Fit sets Width and Height to one page or automatic, and Scale to a percentage; all the rows down one page is new to the engine. The tab says what the file has now.
    • Page Layout → Breaks. Insert page break puts one above the row and left of the column of the cell (only one of them at the sheet's edge, as Excel does), Remove takes it off at the cell, Reset takes them all away; the tip counts them. The file keeps them as Excel does, and the print dialog's page count and the printed pages start a page at each. The Margins presets on the tab are the print dialog's own three now, so a Normal chosen on the tab is Normal in the dialog.
    • Insert → Header & Footer. What prints at the top and the foot of every page, with Excel's codes (&P page, &N pages, &A sheet, &F file, &D date, &T time; &L, &C and &R start the left, centre and right parts) and quick picks that add them. Kept in the file as Excel keeps them, so Excel prints the same; the three parts print left, centre and right. The button was greyed out, and the print dialog had no field for either.

    Presentation

    • Bullets, numbering, list levels and line spacing. The five Home tab controls are live: Bullets and Numbering give a paragraph its bullet or take it away, the arrows step its list level, and Line spacing offers 1, 1.15, 1.5 and 2. Written as PowerPoint keeps them, so it shows the same.
    • A slide keeps its look when edited. A format press used to rebuild every paragraph from its level and alignment alone, so a slide's own bullets, numbering and spacing vanished; and editing the words sent each line back plain, so a bulleted list edited once lost its bullets and its bold words. Now the writer keeps what the reader read, and each edited line keeps the paragraph it replaces and the look of its first run.
    • Cut, Copy and Paste move a shape between slides. A selected shape copies or cuts (the buttons, Ctrl+C, Ctrl+X) and pastes on whichever slide is on screen (Paste, Ctrl+V), a little right and down, with a fresh id and, for a picture, the slide pointed at the same bytes. The three buttons were greyed out.

    Proven, not promised

    • Ten engine tests set an indent and read it beside the left alignment, step two cells from their own indents and stop at zero, keep a right alignment's indent and drop a centred cell's, write each of the five orientations and read them back after a save, take a rotation off, and undo both with the style table.
    • Three window checks press Increase indent twice on A2 and read the words move in by nine pixels a press, pick Rotate text up and read the words standing on end with the row grown, save, and read the indent and the rotation back from the file (RUTBA_VERIFY_ONLY=links).
    • One engine test fits all the rows on one page down and reads that back from the file. Two window checks pick Landscape, Repeat row 1 and Width → 1 page from the Page Layout tab, read the page setup change each time, save, and read the three back from the file (links).
    • One engine test breaks a report at row 60 and counts a page more, writes a row break and a column break, reads them back in schema order, and resets them. Two window checks put a break at A3, read the sheet printing on two pages, save, and read the brk back from the file (links).
    • One engine test writes a header and a footer, reads them back in schema order, prints the three parts with the sheet name in the centre and the page count at the foot, and finds a footer-less file prints no foot. Two window checks type both into the dialog from the Insert tab, read them back from the page setup, save, and read them from the file (links).
    • One engine test writes a bulleted, a numbered and a bullet-less paragraph with spacing, finds them in the slide XML in schema order, reads them back, and rewrites them bold with the bullets intact. Four window checks press Bullets on a text box and read the glyph drawn, step the level and pick 1.5, save, and read all three back from the file (RUTBA_VERIFY_ONLY=bullets).
    • One engine test copies a title onto another slide and a picture whose media resolves there after a save. Four window checks copy a text box, paste it on slide 2 and read it back with the same words, cut it, paste again, save and read it from the file (clip).

    Under the hood

    • setFormat({ indent, indentBy, rotation }) in applyFormat beside align, valign and wrap; formatOf and the frame's cells carry indent and rotation; the grid and the print page turn the words alone, not the cell.

    The release on GitHub, with its installers →

    1.20.021 September 2026

    A picture goes into a worksheet, and the selection becomes the print area.

    TouchedWorksheets

    What changed

    • Page Layout → Print Area
    • Insert → Pictures
    The full notes for 1.20.0

    Worksheets

    • Page Layout → Print Area. Set print area makes the selection what prints, kept in the file as Excel keeps it (the sheet's own print-area name), so the print dialog, and Excel, start from it; Clear print area takes it away. The button was greyed out; the print dialog alone could set one.
    • Insert → Pictures. A picture from a file goes in at the cell, at its own proportions with its longer side no more than 320 px, drawn at once over the cells. The file carries it as Excel keeps a picture (a media part, the sheet's drawing part with a one-cell anchor at the cell and a relationship to the bytes), so Excel shows it too. One undo step, the parts going with it. The button was greyed out before; pictures in files were drawn and none could be added.

    Proven, not promised

    • Two engine tests put a picture at a cell and read the media part, the anchor at the cell at its size, the relationship, the content type and the frame's drawing, from the file as well; a second picture, the undo that takes one away with its part, and a refused type.
    • Three window checks put a picture at D6 through the op the button dispatches, read it drawn over the cell at its size from its own bytes, save, and read the media part and the anchor back from the file (RUTBA_VERIFY_ONLY=sheetpic). Two select B2:C3 with Shift and the arrows, set it as the print area from the Page Layout tab, read it back from the page setup, and clear it (links).

    Under the hood

    • SheetView.insertPicture({ name, contentType, data, widthPx, heightPx }) over ensureSheetDrawing/appendDrawingAnchor and the shared drawingAnchorXml picture anchor; op insertPicture; the window reads the picture's pixels to size it.

    The release on GitHub, with its installers →

    1.19.021 September 2026

    A floating text box prints beside the words, and a block of cells becomes a table.

    TouchedRutba WordWorksheets

    What changed

    • Format as Table
    • A floating text box prints beside the words
    The full notes for 1.19.0

    Worksheets

    • Format as Table. Home → Format as Table, or Insert → Table, makes the selection (or, from one cell, the block of data round it) a table: a header row, banded rows if you ask, and a style Excel knows by name (light, medium, dark). The header row and the banding are painted at once, in this window's own palette, as tables from files already were; a header cell with nothing in it is given its column's name, as Excel does. The file carries it as Excel keeps a table (the table part with its columns and autofilter, the sheet pointing at it), so Excel shows the table too. One undo step.

    Rutba Word

    • A floating text box prints beside the words, as it has shown on screen: a pull quote or a sidebar anchored at the left or the right is placed at its paragraph's top on that side, the lines beside it laid out shorter for as far down as it reaches, in print and PDF. It was drawn under its paragraph as a block. A box that would leave the lines no room stays under the words.

    Proven, not promised

    • Three engine tests make a table from one cell and from a selection, read the part, the rels, tableParts and the paint, name empty and repeated header cells, number a second table, refuse a clash and undo one.
    • Two window checks press Home → Format as Table, read the header row and the banding painted, save, and read the table back from the file (RUTBA_VERIFY_ONLY=links).
    • One engine test anchors a box at the right and at the left, reads it as a float with the lines beside it shorter and none running into it, and prints it.

    Under the hood

    • paginate.js places a floatbox fragment (side, top, size, fill, line, laid paragraphs) and adds it to the page's floats; pdf.js draws it through drawTextBox at the float's place.

    The release on GitHub, with its installers →

  25. 20 September 2026

    1.18.020 September 2026

    A footnote sits at the foot of its page on screen, and a sheet of pictures prints as it shows.

    TouchedRutba Word

    What changed

    • A paragraph of only pictures prints them side by side
    • A footnote sits at the foot of the page its reference lands on
    The full notes for 1.18.0

    Rutba Word

    • A paragraph of only pictures prints them side by side, as many to a row as fit the column, each row whole and placed by the paragraph's alignment, as the screen has drawn them since 1.17.1 and as Word does. A sheet of four scanned cards prints two by two on one page rather than one under another across two. Under words a picture is still a row of its own.
    • A footnote sits at the foot of the page its reference lands on, on screen as it has in print: under the body, above the bottom margin, under a short rule. The footnotes were one block at the end of the document, however many pages it ran to. The layout pass now reserves room at a page's foot for the notes referenced on it, so the body stops above them; a paragraph split across pages keeps each note with the line that references it; and a note whose reference moves follows it. In web, draft, read and outline layout the notes stay under the body; endnotes still end the document.

    Proven, not promised

    • The window check that inserts a footnote reads it at the foot of the page, and a new one reads it on the reference's sheet, below the body's last line, on the bottom margin, with the hidden measuring copy hidden.
    • An engine test prints four cards in a paragraph of their own two to a row on one page, and the same cards under words one to a row.

    Under the hood

    • pages.js measures .wd-notes-measure .wd-note[data-note], keeps a reserved height per page, answers notes (note id → page) and counts a change in it as a layout change; PageNotes draws each page's notes in .wd-pagenotes, a flex column aligned to the foot of the body area; a footnote reference carries data-kind and data-id.

    The release on GitHub, with its installers →

    1.17.120 September 2026

    A paragraph of pictures splits between its picture lines, and pictures in a paragraph of their own sit side by side.

    TouchedRutba WordWorksheets

    What changed

    • A paragraph of pictures no longer runs over the page's edge
    • Pictures in a paragraph of their own sit side by side
    • Print places the pictures a page at a time
    • A character typed briskly into a cell is never lost
    The full notes for 1.17.1

    Rutba Word

    • A paragraph of pictures no longer runs over the page's edge. A scanner writes its scans into one paragraph (four cards, two to a line), and a paragraph was split only at a line a character begins; a line of pictures has none, so the paragraph stayed whole and its second line was drawn across the gap between the sheets (owner, 2026-09-20, after 1.17.0: "it still is the same"). The pictures under a paragraph's words now continue its address space (the text's length, then a picture's index), so a split can land between two picture lines, the part on the next page drawing the pictures from that line on. The rule that never leaves one line alone on the next page gives way when the paragraph heads its page or is taller than one, where the alternative was running over the edge.
    • Pictures in a paragraph of their own sit side by side, as Word draws inline pictures: as many to a line as fit, placed by the paragraph's alignment. Under words a picture is still a block beneath them. The empty line that stood above a paragraph's pictures is gone.
    • Print places the pictures a page at a time: the ones that fit go down on the page and the rest head the next, each still whole.

    Worksheets

    • A character typed briskly into a cell is never lost. The first key starts the edit and the editor is drawn a frame before it takes focus; a character arriving in that frame went to the grid, which had no use for it. It is text now, like the ones that arrive while the edit is still beginning.

    Proven, not promised

    • One engine test prints a paragraph of four pictures two to a page, none scaled, none cut.
    • Two window checks open a paragraph of six scans of a card, read two to a line, the first two under the heading and the other four on the next page, none crossing a sheet's edge, and put the caret into the second part without an error (RUTBA_VERIFY_ONLY=cards). The real-input check that types "4321" into a cell at 60 ms a key is the one that caught the lost character.

    Under the hood

    • A part carries data-length and data-tail, each picture data-image; pages.js splits and pulls back through offsetAtLine; the caret in a part that holds only pictures goes to the end of the words.
    • paginate.js places images fragments in batches that fit the page.

    The release on GitHub, with its installers →

    1.17.020 September 2026

    Frozen panes stay on screen, a picture never crosses a sheet's edge, and a note goes on a cell.

    TouchedRutba WordWorksheets

    What changed

    • Frozen panes stay on screen
    • A note goes on a cell
    • A picture never crosses a sheet's edge
    The full notes for 1.17.0

    Worksheets

    • Frozen panes stay on screen. The frame has carried the frozen rows and columns in every viewport since panes could be frozen; the window drew them at their own place, so a frozen heading row scrolled away with the rest. Now the frozen rows sit under the column headings, the frozen columns beside the row headings, the corner at both, their headings with them: layers that stick, the way the headings already do. A press on a pinned cell selects it; the cell editor opens in whichever layer holds the cell.
    • A note goes on a cell. Shift+F2, the Review tab's Note button or the cell's menu open a dialog for the words and the author (remembered for the next note; an unsigned one is signed with your account's name). On a noted cell the same dialog shows the note and offers Delete. A note is one undo step, and the file carries it as Excel keeps one: the comments part, the VML box Excel draws the words in, and the sheet pointing at both. A box Excel drew for another note is left as it was.

    Rutba Word

    • A picture never crosses a sheet's edge, on screen or in print. A picture taller than the page's inside (a scanned card, portrait, at the column's width) was placed whole at the head of a page and the sheet's edge cut it; it is drawn to fit the inside now, its proportions kept. And a picture whose bytes arrived after the pass that placed its paragraph grew where the pass had left it, over the edge when the paragraph sat near the foot; its arrival now lays the pages out again.

    Proven, not promised

    • Three engine tests hold a note's parts, relationships, content types and box, a replaced note, a removed one and the undo; one holds the print paginator to a picture that fits the page.
    • Three window checks freeze at B2, scroll away and read the pinned row, column, corner and headings where they should be and nothing over them (RUTBA_VERIFY_ONLY=freeze); three put a note on through the dialog, save through the ribbon, read the file back and take the note off (links); two open a letter with a picture at a page's foot and one taller than a page and read each inside one sheet (fit).

    Under the hood

    • SheetPart.setLegacyDrawing, Workbook.comments/setComment/removeComment, parseComments/commentsXml; SheetView.setNote/removeNote, the frame's note; ops setNote/removeNote.
    • The grid's headings name both coordinates: an absolutely positioned heading with no top of its own took its static place, which the pinned wrapper in flow had moved down.

    The release on GitHub, with its installers →

    1.16.020 September 2026

    A large workbook scrolls at once, the launcher's recent list scrolls, and an update says so: before, during and after.

    TouchedWorksheetsLauncherUpdates

    What changed

    • A frame on a sixty-thousand-row sheet is 30 ms
    • The rows above stay where they are
    • A hidden row the file also gave a height
    • The recent list scrolls
    • A right-click on a recent file
    • After

    and 2 more in the notes

    The full notes for 1.16.0

    Worksheets: a large workbook scrolls

    • A frame on a sixty-thousand-row sheet is 30 ms, from a third of a second, and 50 ms where the file gave every row a height, from three seconds; the first frame after opening is 55 ms, from four. Three things paid for it. The frame grew Excel's "current region" round the cursor on every scroll step (a walk of every row of the table), and nothing in the window read it; it is asked for when wanted. Every row offset walked every custom height in the file for every cell of every frame; the exceptions are indexed once and an offset is one binary search. And the window asked for a frame on every animation frame of a scroll, a dozen queued behind the first; one is on its way at a time, and a scroll that arrives meanwhile asks once more when it lands.
    • The rows above stay where they are. Ten rows are drawn beyond the edge in both directions (a wheel notch is five), so scrolling up shows rows before the next frame lands, and the frame lands before the next notch.
    • A hidden row the file also gave a height took that height in the offsets while drawing at none, so every row below it sat too low. It takes nothing now.

    The launcher

    • The recent list scrolls. It was clipped to the room left under the tiles: a flex item that hides its overflow shrinks below its content, so the last row in reach was cut in half and there was nothing to scroll. It takes what is left of the window and scrolls inside it.
    • A right-click on a recent file offers Open, Show in folder, Remove from the list and Clear the list. Enter in the search opens the first match.

    An update says so

    The suite has found and installed its updates on its own since 1.13 and said so in a card; the owner's copy still updated in silence, because the install happens on quit and the next launch looked exactly like the last one.

    • After: the first window of a new version says which version it is now and which it was, and What's new opens the release's own notes, bundled with the build, so a copy with the network switched off reads the notes the release page carries. OK puts the card away in every window; the notes stay under the app menu.
    • During: every window's status bar counts the download ("Updating 42%") and says "Update ready" once it is downloaded; the chip brings back a card put away with Not now. On Windows the taskbar button shows the download's progress.
    • Before: unchanged. One request to GitHub's release feed every six hours, nothing about you or your files, and off means no request at all.

    Proven, not promised

    • Four engine tests hold the geometry index (sixty thousand heights, a hidden row with a height, the index dropped on a change) and the frame's speed on a twenty-thousand-row table; two read the notes into blocks.
    • The update block of the application checks drives the states by hand in a Rutba Word window and reads the status chip counting, the chip bringing a put-away prompt back, the arrival card naming both versions, What's new showing the bundled notes, and Close marking the arrival seen through the service (RUTBA_VERIFY_ONLY=update).

    Under the hood

    • SheetGeometry keeps its row and column exceptions in tracked collections and builds a sorted index with running corrections on first use after a change; viewport() takes overscanCols beside overscan.
    • SheetView.regionAround() replaces the frame's region.
    • The update service records updates.lastRun and updates.arrived, and the contract gains update.seen and app.removeRecent; the bundle writes whatsnew.json from docs/releases/v<version>.md.

    The release on GitHub, with its installers →

    1.15.020 September 2026

    A floating picture prints where it sits, a worksheet's links and notes come alive, and Help opens a page that exists.

    TouchedRutba WordWorksheetsMail

    What changed

    • A link is read with its target
    • Ctrl+K, the Link button on Insert, or the cell's menu
    • A cell with a note wears Excel's red corner
    • Get mail is F5
    • Help opens a page that exists
    The full notes for 1.15.0

    Rutba Word: print and PDF wrap round a floating picture

    A picture anchored at the left or the right has floated there on screen since 1.11, the words wrapping round it. Print and PDF drew it as a block under its paragraph. Now the paginator keeps the floats on each page with the band they take and the side they take it on, lays the lines beside a picture shorter (for as far down as it reaches, and into the paragraphs after it) and places the picture at the paragraph's top on its side; the PDF writer draws it there. A picture that will not fit goes whole onto the next page with its paragraph. A centred or right-aligned picture drawn as a block keeps its side. A floating text box still rides under its paragraph.

    The gaps document had said the print paginator ignored a table's grid; it has read the grid since the grid was parsed, and the document now says so.

    Worksheets: hyperlinks and notes

    • A link is read with its target (an address, or a place in the workbook), drawn in the accent and underlined, with a tip that says where it goes. Ctrl+click follows it: an address opens outside the suite, a place (C12, Sheet2!B4, a name) is gone to, the other sheet first if it names one.
    • Ctrl+K, the Link button on Insert, or the cell's menu puts a link on a cell: an address (a bare domain or an email is read as one) or a place, and a screen tip. On a linked cell the same dialog offers to change or remove it. A link is one undo step, and the file carries it as Excel writes one: an external relationship for an address.
    • A cell with a note wears Excel's red corner and tells the note on hover, author first; the status bar counts the sheet's notes and says where the active cell's link goes. A workbook that carried notes used to show "[object Object]" as their tooltip. Writing a note is still to come.

    Mail

    • Get mail is F5, the key every mail client fetches on. Ctrl+R was bound to both Get mail and Reply, and one key cannot do both.

    office.rutba.io

    • Help opens a page that exists. Every Help tab in the suite has opened office.rutba.io/help since the tabs existed; the site had no such page. It now says how the suite works and what to press: opening, saving and recovery; the keys every app shares and the ones each app binds; each app with its formats; how a release arrives; where to say when something is wrong.

    Proven, not promised

    • Three engine tests hold the hyperlinks block and its relationship through a save, a replace, a removal and an undo; one holds the floating picture's lines beside it and the picture in the PDF.
    • Six application checks open a workbook made for the run with a note and a link, read the corner, the tip and the underline, follow the link to the other sheet, put a link on a cell through the dialog, save and read the file back through the engine, and take the link off. The address link is never clicked under the checks (RUTBA_VERIFY_ONLY=links).
    • The viewer check's clips are now forty VP8 frames encoded with WebCodecs in one of the suite's own windows and muxed into a minimal WebM in the main process, the same on every machine; MediaRecorder captured nothing whenever another window was open, which failed the full run and passed alone. The Presentation fill check waits for the redraw it reads.

    Under the hood

    • wrapFirstLine in @rutba/drawing breaks one line at a time so a paragraph's lines can differ in width; the paginator's layoutAround uses it, and each line carries its offset and width to the PDF writer.
    • SheetPart.hyperlinks/setHyperlink/removeHyperlink and Workbook.hyperlinks/setHyperlink/removeHyperlink; OoxmlPackage.addRelationshipTo takes { external: true }.
    • The thumbnail queue no longer drops a job whose request was abandoned: a second request for the same file shared the job and inherited the abandonment.

    The release on GitHub, with its installers →

    1.14.020 September 2026

    Rutba Pictures on a large folder: instant, steady, and drawn only where you look.

    TouchedPictures

    What changed

    • A tile is a thumbnail now, never the file
    • A clip's tile is a frame of it, not a live player
    • Only what you can see is drawn
    • Moving on never shows an empty frame
    • Chips count the folder by kind
    The full notes for 1.14.0

    Pictures: a folder of thousands, at the speed of a folder of fifty

    The viewer crawled on a big folder with clips among the pictures, and stuttered as tiles came and went. Four causes, all gone:

    • A tile is a thumbnail now, never the file. The platform makes a small JPEG of each file once (the Windows shell, which knows videos, HEIC and whatever else the machine has a codec for), and Rutba Office keeps it on disk, keyed by the file's path, size and modification time. The second visit to a folder costs a directory read. A folder of five hundred photographs no longer decodes five hundred photographs to draw five hundred squares.
    • A clip's tile is a frame of it, not a live player. Every video tile was a <video> element holding a decoder, and Chromium suspended and resumed them as the grid scrolled (the stutter). The platform's frame is used when it has one; when it has none (a WebM on Windows without the codec pack, anything on Linux) the window draws a frame of the clip itself, one clip at a time, and hands it to the platform to keep.
    • Only what you can see is drawn. The grid and the filmstrip draw the rows in view and a little either side; the rest is held as empty room, so the scrollbar is the scrollbar of the whole folder and a folder of five thousand costs what a folder of fifty costs. Newest requests are answered first, so the tiles in front of you arrive before the ones you scrolled past.
    • Moving on never shows an empty frame. The picture on the stage stays until the next one has decoded, and the next two either way are decoded before you ask for them. The details panel stays where it is while the next file is read, so nothing on screen jumps.

    The folder has the whole window

    • With nothing open, the folder fills the window: pictures, clips, sounds, PDFs and the folders inside it, each folder a tile you click to enter, and Up (or Backspace) to come back. One click opens a file; Escape, or the folder button, goes back to the grid.
    • Chips count the folder by kind (All, Pictures, Videos, Audio, PDF), and pressing one shows only that kind. The order can be by name, newest or oldest first, largest first, or by kind. Tiles come in three sizes. All of it is remembered on this machine.
    • A picture opens on a dark stage whatever the theme, with a filmstrip under it and, if you want it, the folder's grid beside it. A zoomed picture is dragged about with the mouse.
    • A phone's sideways photograph is turned the right way up once, by the decoder, rather than by the decoder and then again by the viewer; a quarter of everyone's holiday was upside down.
    • Trash moves on to the next file rather than back to the grid, so a folder can be weeded in one pass.

    Proven, not promised

    • Fourteen application checks open a generated folder of three hundred pictures, two clips, a sound file, a PDF and a folder inside it, and read back what the window did: how many tiles were drawn of how many, that every tile is the platform's thumbnail and none a live video, that the frames arrive small, that a clip the platform has no thumbnail for gets one drawn by the window and kept, the chips, the order, the sizes, the folder inside, the sideways photograph turned once, sixteen samples across a Next with a decoded picture in every one, and a filmstrip drawn only where it can be seen. RUTBA_VERIFY_ONLY=viewer runs them alone.
    • Eight engine tests hold the viewer's arithmetic (the order, the counts, which rows are in view, which neighbours to fetch) and the thumbnail cache's key, its newest-first queue, and a frame handed in.

    Under the hood

    • rutba://thumb/<path>?s=256 is a fourth host on the scheme, answered by packages/office-shell/src/electron/thumbs.js; a window hands a frame in through thumbs.put, new in the contract.
    • The file host now says Access-Control-Allow-Origin: *, so a window may read back a canvas it drew from a file; the window can already read any file through the bridge, so nothing new is allowed.
    • The viewer's arithmetic lives in renderer/apps/pictures/library.js with no window in it; the frame grab in pictures/frames.js.
    • Pictures opened with a folder's path shows the folder.

    The release on GitHub, with its installers →

  26. 14 September 2026

    1.13.014 September 2026

    You are told when a release is waiting, in the window you are working in.

    TouchedUpdates

    What changed

    • A release the check finds is announced at once
    • Not now
    The full notes for 1.13.0

    Updates: found, announced, one click away

    An installed copy has looked for a newer release since 1.7 (shortly after it starts and every six hours, one request to GitHub's release feed carrying nothing about you) and downloaded it in the background to install when you quit. What it did not do was say so anywhere you would see: a small chip in the launcher, and nothing in the window you actually work in. A copy that updates in silence is a copy whose owner never learns what changed.

    • A release the check finds is announced at once, in every window: a card at the bottom right saying which version is available and how far the download has got. When it is downloaded the card says the release is ready to install and offers Restart and update, which quits, installs and comes back (the only way an update is ever applied while you are working, and only when you ask). If you carry on, it still installs when you quit.
    • Not now puts that version away: in the window at once, and everywhere for a day, after which it asks again, because a copy that is never quit never installs on quit. A newer release is a new question, whatever was put away before; and asking for a check yourself (About → Check now) always gets an answer.
    • The launcher's chip and the About panel say the same thing in the same words, so nothing on the screen contradicts anything else.

    Proven, not promised

    • Five application checks drive the prompt in a Rutba Word window with the states the service publishes: found and downloading with the percentage, ready with its button, put away and staying away, a newer release asked about anyway, and the prompt measured on screen rather than only found in the tree. RUTBA_VERIFY_ONLY=update runs them alone.
    • tools/update-test.ps1 (the fourth check before a release is called done) installs the previous release, launches it, waits for its own updater to find and download this one, reads the prompt through UI Automation and reads the version the installer leaves behind. 1.11.0 updated itself to 1.12.0 this way on the day 1.12.0 was published; 1.12.0 is proved against this release the same way.

    Under the hood

    • The update service publishes snoozed and snoozedVersion with its state and gained snooze({ version }); a manual check clears a snooze. The snooze itself (apps/desktop/main/update-snooze.js) is one version for one day, and is unit-tested.
    • The shared frame (renderer/shell.js) carries the prompt, so every app has it without knowing; the check harness receives the shell's broadcast and the update service so it can publish states without a network.

    The release on GitHub, with its installers →

    1.12.014 September 2026

    The ruler, and a table's borders, in Rutba Word, moved by hand.

    TouchedRutba Word

    What changed

    • The paragraph at the caret
    • Tab stops
    • The margins
    • Table columns
    • Grips on the borders
    The full notes for 1.12.0

    Rutba Word: a ruler that moves things

    The ruler above the page was a picture of the margins. It is now the one in Word: centimetres counted from the left margin, the margins shaded, and on it every marker a hand reaches for.

    • The paragraph at the caret shows its first-line indent (the top marker), its hanging indent (the bottom one), the left-indent box under it that moves both together, and the right indent. Drag any of them and a dashed guide runs down the page with a readout in centimetres; let go and the paragraph (or every paragraph in the selection) is written that way. The first line dragged left of the rest becomes a hanging indent, as it does in Word, and a left indent dragged to the margin is written as an explicit zero, so it beats a style that indents.
    • Tab stops. The paragraph's own stops, or its style's, sit on the ruler as the small left, centre, right and decimal marks. Click the ruler to add one of the type the box at the far left shows (click the box to change it); drag a stop to move it; drag it off the ruler to remove it. The last one removed cancels the style's stops too, so they do not come back.
    • The margins. Drag the edge of either shaded margin and the section's page margin follows, the same setting the Layout tab's Margins menu writes, to the pixel of where it was dropped.
    • Table columns. With the caret in a table the ruler shows its column edges as grey boxes; drag one and the two columns either side of it change, the table keeping its width (Word's own rule for an inside border), and the last edge widens the last column and the table with it. The file keeps the grid and every cell's width together, so Word, Excel and this suite measure the table the same.

    The ruler is on by default; the View tab's Ruler button puts it away.

    Rutba Word: tables drawn as the file draws them, and resized on the page

    • A table's columns were drawn as the browser saw fit, every table stretched to the text width. Each column now takes the share of the table the file's grid gives it, and the table the width the file gives it: a share of the text width, a fixed width, or the grid's own sum. A merged cell spans the columns it merges; a row the file sizes is drawn that tall.
    • Grips on the borders. With the caret in a table, rest on any column edge or row bottom and the pointer says it can be dragged. A column edge moves the two columns beside it as the ruler does; a row's bottom edge sets the row's height, written as a floor the way Word writes it, so a cell that needs more still gets it.

    Under the hood

    • The document reader hands the page each top-level table's grid, width, cell spans and row heights, carried by the paragraphs in it; the writer gained setTableColumnWidths (several columns at once, and a fixed table width brought up to date with the grid) and setTableRowHeight.
    • Paragraph formatting takes four absolute indents (leftTwips, firstLineTwips, hangingTwips, rightTwips) and the paragraph's tabs, each written into its schema slot; a paragraph that only clears stops reads back an empty list rather than its style's.
    • The fixture builder makes a table with columns of a given width.
    • Twelve application checks drive the ruler and the grips with real pointer events: the first-line marker dragged and the drawn text indent read back, a stop added by a click and removed by a drag off the ruler, a column border and a row border dragged on the page and the cell measured, the margin edge dragged and the page's padding read, and the file reopened with all of it. RUTBA_VERIFY_ONLY knows the block as ruler. Four engine tests cover the writers and the reader.

    The release on GitHub, with its installers →

    1.11.014 September 2026

    Shapes you move by hand, pictures the words wrap round, tooltips of our own and a zoom slider.

    TouchedRutba WordWorksheetsPresentationPictures

    What changed

    • Every shape on the slide can be taken hold of
    • A Format pane
    • Quick Styles
    • Tooltips of our own
    • A zoom slider
    The full notes for 1.11.0

    Presentation: shapes move, resize and recolour by hand

    • Every shape on the slide can be taken hold of. A click selects it and shows eight handles; a drag moves it; a handle resizes it (a corner keeps a picture's proportions, and Shift keeps any shape's); the arrow keys nudge it a pixel (ten with Shift) and Delete removes it. The box follows the pointer as a dashed outline and the engine is told once, on release, so the drawing never lags the hand. Until now only shapes with words had a hit area, and nothing moved except through the Arrange menu.
    • A Format pane on the right (from Shape Fill, Shape Outline, the right-click menu or the View tab) sets the fill from the theme's ten colours, a standard row or any colour, or takes it away; and the outline's colour, weight and dashes, or takes that away. Each press is one write into the shape's own properties, in the order the file format wants, so PowerPoint reads it back exactly.
    • Quick Styles on the Home tab: filled in an accent, outlined in the same accent darkened. The theme's own looks, six of them.
    • The right-click menu on a shape now offers Format, Bring to front and Send to back beside Edit text and Delete.

    Rutba Word: a picture floats where the file puts it

    A picture or a text box in the file's anchor sat in a paragraph of its own whatever the file said. It now floats where the file puts it and the words wrap round it: square, tight and through wrap at the left or right become a float inside the paragraph, top-and-bottom and centred sit between the words, behind and in front sit under or over them. The page layout counts a float that hangs below its paragraph. Click a picture to pick it, then on the Layout tab Wrap Text (in line, square, top and bottom, behind, in front) and Position (left, centre, right) move it, and the file keeps the answer; the picture itself is untouched.

    Print and PDF still draw a floating picture as a block under its paragraph; the engine's paginator wraps to one width. That is next.

    Rutba Word: pictures resize by hand

    Click a picture and it wears four corner handles; drag one and the picture grows or shrinks, keeping its proportions, the words re-wrapping round it as it goes. The engine writes the size into the file on release; the picture stays picked, so the next drag or Wrap Text choice needs no second click.

    Worksheets: the fill handle

    The small square at the bottom-right corner of the selection, as in Excel: drag it down or across and a dashed box follows; on release the cells it passed over are filled from the selection (a value copied, a formula's references moved) and become the selection. Ctrl+D and Ctrl+R did this already; the handle is how most people reach for it.

    The frame

    • Tooltips of our own. Rest on any ribbon button and a small chip says what it does and its shortcut, in the suite's look, in both themes. The browser's grey box no longer appears.
    • A zoom slider at the right of the status bar in Rutba Word, Worksheets and Presentation: minus, slider, plus, and the level as a button that puts it back to 100% (or, for a deck, fits the slide to the window again).

    Under the hood

    • The deck engine gained setShapeStyle; the document reader reads a wp:anchor in full (anchorLayout) and the writer moves a picture between wp:inline and wp:anchor (setImageLayout).
    • Twenty-five application checks were added: the first line measured against a floating picture after each move; a shape dragged, resized and nudged with real pointer and keyboard events and its geometry read back; the Format pane's swatches, No outline and a 3 pt weight read back and seen in the drawing; a picture's corner handle dragged and its size read from the file; the fill handle dragged two rows; a tooltip shown and hidden; the slider zooming the window and the slide. The harness reads a button's tip as well as its title. RUTBA_VERIFY_ONLY knows the new blocks: float, polish, shapes, fill, pics.

    The release on GitHub, with its installers →

  27. 10 September 2026

    1.10.010 September 2026

    Pages on screen in Rutba Word, layers and designs in Presentation, and a worksheet's columns you can drag.

    TouchedRutba WordWorksheetsPresentation

    What changed

    • The flow is laid onto sheets
    • Each sheet carries its own header and footer
    • The status bar says "Page 3 of 10"
    • Layers
    • Designs
    The full notes for 1.10.0

    Rutba Word lays its pages out

    A document was one endless sheet. A report of ten pages ran off the bottom of the first page and kept going over the desk, and a page break (the paragraph property, the Ctrl+Enter) did nothing anyone could see. That was the difference between a viewer and a word processor, and it is closed.

    • The flow is laid onto sheets. After every edit the drawn page is measured, and each block that would cross a page's bottom is moved to the top of the next page. A paragraph of many lines is split at the line that no longer fits and continues on the next page, with at least two lines on each side, which is Word's widow and orphan control. A table splits at a row. A heading goes over with the paragraph that follows it. An explicit page break heads a fresh page.
    • Each sheet carries its own header and footer, with its own page number: a PAGE field says which sheet it is on, and the count is the count. The first-page and even-page bands of a section go where the section says.
    • The status bar says "Page 3 of 10", following the caret.
    • The browser lays the lines out, so the browser is asked where they fell. That is the one answer that agrees with what is drawn; the engine's own paginator, which measures with a width table, still lays out print and PDF. A split paragraph is still one paragraph with one index; typing at the head of its second part lands where it should.

    This is the app the owner asked to be called by its full name: it is Rutba Word in the launcher, the title bar, the Apps menu and the messages, so nobody mistakes it for the other one.

    Presentation has a Layers pane and a Designs pane

    Two panes on the right, opened from the View tab (and from Arrange on the Home tab, and Layouts on the Design tab), closed with their own cross.

    • Layers lists the slide's shapes top-most first, the way a selection pane does. A click selects the shape on the stage; the arrows bring it forward or send it backward, Front and Back take it all the way; the eye hides it (it stays in the file, undrawn, as PowerPoint keeps hidden shapes); a double-click renames it, and the name is the one PowerPoint shows. The drawing order is the file's own: the shape's XML moves among its siblings and nothing else changes.
    • Designs shows the deck's own layouts as a gallery, each drawn as the boxes its placeholders make, with the current slide's layout marked. A click puts the slide on that layout (its placeholders then inherit that layout's geometry and text style wherever they state none of their own), and + New starts a slide on it, after the current one.

    Worksheets: drag a heading's edge

    Column resizing "did not work" because there was nothing to drag. The edge of a column heading is now a handle: drag it and a guide line follows the pointer, release and the column is that wide. Row headings likewise. A double-click on a column's edge fits it to its widest text; on a row's, puts the row back to the default height.

    Under the hood

    • The document engine's frame carries pageBreakBefore, keepNext and keepLines, read from the file; the builder can write all three.
    • The deck engine gained reorderShape, setShapeHidden, renameShape, layoutList, layoutOf and applyLayout, and insertSlide takes the layout it should use. A scene built on a slide's old layout is dropped when the layout changes.
    • The application checks grew by seventeen: six open a ten-page report and read the layout back (every block inside a page, the break heading a page, a paragraph split at a line and a table at a row, the page count, the caret in a split paragraph, a page break typed at the front adding a page); four drag headings with real pointer events; seven drive the two panes and read the deck back. RUTBA_VERIFY_ONLY=pages,grips,panes runs named blocks alone; RUTBA_VERIFY_CAPTURE=<dir> photographs them.

    Known limits

    • A block taller than a page's text area (one table row, one picture) runs into the gap between sheets rather than being cut.
    • Footnotes are drawn at the end of the document on screen; print and PDF put them at the foot of the page that refers to them.
    • The pages on screen and the pages in print can differ by a line here and there: two measurers, two answers. Print is the engine's.

    The release on GitHub, with its installers →

    1.9.010 September 2026

    The look: a header in the app's colour, a ribbon that fits, and a frame that reads as one product.

    What changed

    • The header wears the app's colour
    • Tabs are pills
    • The ribbon is a card
    • The ribbon fits
    • Calendar and Contacts have their colour
    The full notes for 1.9.0

    The frame

    Every window is drawn by the suite, not the platform, and the frame has been redrawn so that the nine apps read as one product and are told apart at a glance.

    • The header wears the app's colour. A wash of the accent (blue for Word, green for Worksheets, red for Presentation) sits behind the title bar and fades out by the middle, the way it does in the windows people spend their day in, without the saturated band. The app mark is a small tile of the same colour with a sheen and a shadow; the document's name is centred and weighted; the window controls are rounded chips.
    • Tabs are pills. The active tab is a raised white pill in the app's colour; the rest are quiet text. No underline, no box.
    • The ribbon is a card. The groups float in a rounded card under the tabs, with a hairline and a shadow, and nothing else on the row.
    • The ribbon fits. Word's Home tab was 2,372 pixels of groups laid out in a single row, with a scrollbar under it that read as a fault. The small buttons now stack in two rows beside the tall ones (Cut and Copy over Format Painter, the font boxes over Bold, Italic and Underline, bullets over alignment), as Office lays them out, and the Home tabs of Word, Worksheets and Presentation fit a normal window. Where a tab is still wider than the window, a chevron on that side says so and the wheel scrolls it sideways; there is no bar.
    • Calendar and Contacts have their colour. The theme had never named one for either, so their launcher tiles were blank and their windows wore Word's blue. Every app's colour is now named in one place, and the launcher tiles, template chips and recent-file marks all take it from there rather than from a list of their own.

    The rest of the window

    • A worksheet's formula bar is a bar: the name box and the formula field are boxes on the chrome, and the field lights up when it has the focus.
    • A document's page sits on a desk: a close shadow for the edge, a wide one for the lift.
    • Dialogs have a foot that reads as a foot, with the secondary buttons bordered and the primary one raised; menus have roomier rows and an accent tint under the pointer; the selected row of a list carries a short accent mark; empty states have a softer tile.
    • The launcher opens on a wash of the accent behind the welcome; the app tiles lift a little under the pointer.
    • All of it in the dark theme too, with the wash, the card and the pills tuned for it. RUTBA_SMOKE_THEME=dark npm run smoke photographs every window in the dark theme, which is how it was checked.

    Verified

    • 165 application checks unchanged: the buttons the checks press are the same buttons in the same groups, in rows.
    • 10 window captures, light and dark, read by eye before the release.

    The release on GitHub, with its installers →

    1.8.110 September 2026

    Files Office itself wrote, opened and judged; charts on slides; an .ods that keeps its names, merges and formats; the installer proven before it is published.

    TouchedWorksheetsPresentationMail

    What changed

    • SUBTOTAL
    • An .ods keeps what it says
    • Dates in the machine's order
    • Charts on slides are drawn
    • A password-protected file is refused as one
    The full notes for 1.8.1

    Judged against what Office writes

    The suite's fixtures were small and well formed. This release adds the other kind: a workbook, a document and a deck written by Excel, Word and PowerPoint themselves, through tools/make-rich-fixtures.ps1, as OOXML and as OpenDocument from the same content (charts, shapes, gradients, pictures, cross-sheet formulas, named ranges, every number format, conditional formats, sparklines, a table with a total row, a table of contents, three kinds of list, footnotes, endnotes, comments, fields, tracked changes, an equation, a landscape section, a watermark, WordArt, animations, speaker notes). tests/rich-fixtures.test.js opens each through the same service the windows use and holds the engine to Excel's own cached results. Eighty-one real files from two public sample sites went through the real windows as well: 84 of 87 shown, three refused in a sentence, none with a console error. What all that found is below.

    Worksheets

    • SUBTOTAL. Every table Excel writes ends in SUBTOTAL(109, …), and every such total row read #NAME? here. Function numbers 1 to 11 and 101 to 111 are all answered.
    • An .ods keeps what it says. A named range ($$GrandTotal in the file) reached the engine as #VALUE!; merged cells and number formats were dropped, so 7,518 showed as 7518 and 11.4% as 0.1138. Named ranges, merges, the number, percentage, currency, date and time styles, dates, times and booleans now all arrive.
    • Dates in the machine's order. Excel's built-in date format 14 is documented as mm-dd-yy and shows the system's short date; a British workbook's 10 September read as 09-10-26 here. It follows the machine now, as does format 22.
    • The Worksheets checks wait for a menu to open rather than pausing a fixed fifth of a second, which under load was not always enough.

    Presentation

    • Charts on slides are drawn. A chart frame was an unsupported graphic; a corpus deck with six chart slides showed six empty frames. The frame's chart part is read the way a worksheet's is and drawn by the same chart kit, on the slide and in its thumbnail.

    Opening files

    • A password-protected file is refused as one. An encrypted .docx opened as an empty page, and an encrypted .pptx was refused as "a document, not a presentation"; both are compound files holding the encrypted package, whatever their name. Each now says it is password-protected and what to do. A compound file that is none of Word, Excel or PowerPoint 97-2003 is refused too rather than shown empty.

    The installer, proven

    1.8.0's installer opened with "Cannot find package @rutba/contacts": the two new packages were not declared as the desktop application's dependencies, so the archive left them out, and every check passed because every check ran inside the repository, where Node finds them anyway. Both are declared, a test reads every import and requires a declaration, the install test lives in the repository and reads what an installed copy shows when it fails to open, and TESTING.md says the order: the packaged smoke from outside the repository, the install test, then the tag and the publish. The published 1.8.0 was rebuilt and proven before it went out.

    Mail

    • A file of accounts sets them up at once: from the Add account and Import mail dialogs, or --import-accounts=<file> on the command line with --accounts=a,b, --sync and --quit. Set up against five real mailboxes on three domains, every one signed in on both servers and fetched its inbox.

    Known, and named in docs/GAPS.md

    The fixtures also showed what is still not read: an .ods's charts and shapes and an .odp's pictures, shapes and tables (OpenDocument drawings), Office Math equations, and tracked changes shown as changes rather than in their accepted form.

    Verified

    • 696 engine tests, with the rich fixtures, SUBTOTAL, the OpenDocument names and formats, the machine's short date and the encrypted-file refusal pinned.
    • 165 application checks, 9 editing checks, 10 window captures; the gate in under three minutes, run alone.
    • The packaged smoke from a copy outside the repository, and the install test, before publishing.

    The release on GitHub, with its installers →

    1.8.010 September 2026

    Calendar and Contacts, two more apps on the shell; a meeting in a message answered from the message; twenty accounts set up from one file.

    TouchedMailCalendarContacts

    What changed

    • Month, week, day and agenda
    • .ics in and out
    • @rutba/calendar
    • A book
    • @rutba/contacts
    • An invitation in a message is answered from it

    and 3 more in the notes

    The full notes for 1.8.0

    Calendar

    Mail was here and a calendar was not: a meeting arrived as an attachment nothing opened, and there was nowhere to keep it. There is a Calendar now, on the same shell as the rest, with its own tile, its own window and its own icon on .ics.

    • Month, week, day and agenda, a small month beside them for moving about, and the calendars in the sidebar with a colour each, shown or hidden. An event is a title, a start and an end or an all-day date, a place, a repeat and notes; an edit to a repeating event says whether it means this one or all of them.
    • .ics in and out. A file opened in the app shows its events and offers to keep them (nothing is added until it is asked), and a calendar is exported as one. An invitation (METHOD:REQUEST) is recognised as one, kept as an event, and answered with a reply in the file's own form.
    • @rutba/calendar, the engine behind it: iCalendar read and written (folding, escaping, durations, date-times with and without a zone); recurrence rules expanded into occurrences (daily, weekly, monthly and yearly with INTERVAL, COUNT and UNTIL, BYDAY with and without ordinals, BYMONTHDAY, BYMONTH and BYSETPOS, EXDATE removing instances, RDATE adding them and a RECURRENCE-ID replacing one), with a sentence that says what a rule means; and time zones, including the Windows names Outlook writes, resolved to offsets.

    Contacts

    • A book, kept in the profile: a list, a card, an editor, search. A .vcf or a CSV opened in the app shows its cards and offers them; Add keeps them, and an address already in the book is merged rather than doubled. Export writes vCards.
    • @rutba/contacts: vCard 2.1, 3.0 and 4.0 read and written (quoted-printable soft breaks joined only where the property says so, so a base64 photo no longer swallows the line after it), and the CSV shapes Outlook and Google export.

    Mail, with both

    • An invitation in a message is answered from it. A message carrying a calendar part shows the meeting in the reading pane (the title, when, who is asking) with Accept, Tentative and Decline. The answer keeps the event and opens a reply to the organizer with the answer attached, so the sender's calendar learns it the way it would from any other client. A reply that arrives shows what the attendee said; any other calendar part offers Add to calendar.
    • Addresses complete from the book. To, Cc and Bcc complete from Contacts first and then from the people mail has seen, with the keyboard.
    • A sender is kept in one click, from the reading pane.
    • Mail opens with a message to write when Contacts or the calendar asks it to: Send mail on a card, or the reply to an invitation with the file attached.

    Accounts from a file

    Adding an account has been an address and a password since 1.7.1. Adding twenty is a file now. A JSON file of accounts, the loose way other clients write one (address, password, host and ports, or imap and smtp objects) is read by the app: each entry is tried before it is kept, as the dialog does; an address already set up is left alone; the ports decide the security when nothing says. Add account and Import mail both offer the file. On the command line, --import-accounts=<file> sets them up before the first window, --accounts=a,b picks addresses from it, --sync fetches each new inbox and --quit leaves without opening a window. That is how an administrator's file becomes a working Mail without a dialog per address. The answer names addresses and outcomes and never a password, and the file is not changed.

    Set up this way against five real mailboxes on three domains, every one signed in on both servers and fetched its inbox.

    The shell

    • .ics opens in Calendar and .vcf in Contacts (from the launcher, from a double-click, from the command line), each with an icon of its own; the installer registers both.
    • Two more tiles on the launcher, two more windows the smoke photographs, two more taskbar identities.
    • A check run's mail seed used to be imported into the developer's own profile by an early runner; fifteen copies were found there this release and taken out. Every run has had a profile of its own since 1.7.0.

    Verified

    • 688 engine tests, with iCalendar, recurrence, time zones, vCard and CSV pinned.
    • 165 application checks, off the desktop, now including a .vcf opened as its cards and kept, a card typed in and shown, an invitation shown and accepted with the reply addressed and attached, Compose completing an address, a sender kept, and a file of accounts set up once and not twice.
    • 10 window captures, Calendar and Contacts among them. The whole gate in about two and a half minutes.

    The release on GitHub, with its installers →

  28. 9 September 2026

    1.7.19 September 2026

    Adding a mail account is an address and a password; OpenDocument written back; a grid that keeps up with the keys, and more than one selection.

    TouchedWorksheetsMail

    What changed

    • Every open Worksheets window kept the main process busy, for as long as it lived
    • More than one selection
    • The selection keeps up with the keys
    • TEXT() speaks every format code the grid does
    • 29 February 1900
    The full notes for 1.7.1

    Mail: an address and a password

    Adding an account asked for the incoming server, the outgoing server and two ports, and guessed them from the domain when it could. Now it asks for the address and the password, and finds the rest the way every mail program people find easy does, in every way there is, at once, in a few seconds:

    • a table of the providers most people use;
    • the domain's MX records, which name Google, Microsoft 365, Yahoo, Zoho, Fastmail or iCloud when a company's mail is hosted there;
    • the SRV records a domain publishes for its own servers (RFC 6186);
    • autoconfig: the domain's own, its .well-known path, then Mozilla's public database;
    • Microsoft's autodiscover, which answers for any mailbox on Microsoft 365;
    • and a knock on the conventional names (imap., mail., smtp., the bare domain) on each port that matters, to hear whether something answers and says IMAP or SMTP. A name that answers outranks a name that is guessed, whatever its source; nothing is sent to any of them but the one line that asks for an upgrade, so no server sees a password from here.

    The dialog shows what it found and whether it answered, opens "What was checked" to the step-by-step account, and offers the browser sign-in when the provider wants one (the moment a Gmail or Outlook.com address is typed, before the search has run), including a company domain hosted at Google or Microsoft 365, which no address pattern can know. Advanced is always one click away, never the only way in, and its fields carry the answer: the username when it is not the address, the two servers, the ports, and the security of each as TLS, STARTTLS or none, so a wrong guess is a correction rather than a form from scratch. Add account signs in before it keeps anything; an account that cannot sign in is not added, and the failure opens the fields it needs. An account imported from another program on the computer goes through the same checks, so what was carried over is confirmed rather than trusted. A check run asks only the table, never the network; the search is pinned with every lookup injected.

    A plain port is upgraded with STARTTLS before a password is sent, on the test and on every message sent, or not used.

    OpenDocument, written

    The installer had told Windows for a year that this suite was the editor of .odt, .ods and .odp, and Ctrl+S on any of them refused. They are written now. A file that came in as OpenDocument goes out as OpenDocument, holding what this suite models: a document's headings, paragraphs, lists, tables and run formatting; a workbook's values, formulas and the value types a cell needs to stay a date, a percentage or a boolean; a deck's text boxes, pictures and speaker notes, in place. Formulas cross into the file's own spelling and back (=SUM(Sheet2!A1:B2, 3) is of:=SUM([$Sheet2.A1:.B2]; 3) on disk), and a formula read from somebody else's .ods now reaches the engine in the engine's dialect rather than the file's. The archive starts with a stored mimetype, as readers check. Save as offers all three.

    Worksheets

    • Every open Worksheets window kept the main process busy, for as long as it lived. The grid stretched to its own canvas, the canvas was sized to cover the grid plus a margin, and the size observer asked for a wider frame each time: eight times a second, 1,088 pixels wider every time, with an idle window and nobody touching it. Each frame drew more columns than the last. With several sheets open the main process was never idle again, every window's replies queued behind it, and the whole suite felt slow; a profile of the main process over a full check run showed ninety-nine percent of its time drawing Worksheets frames. Two words of CSS (a zero minimum width on the flex items) end it: an idle window now makes no request at all. A check opens a workbook, waits, and requires the grid to stay inside the window and stop growing.
    • More than one selection. Ctrl+click adds a cell, a range, a column or a row to what is selected; Shift grows the current rectangle and keeps the others; a plain click or arrow drops them, as a spreadsheet does. The name box reads A1:B2,D4:D5, the status strip counts across all of them, formatting and clearing apply to all of them, and typing goes where the last click was. Ctrl+A selects everything.
    • The selection keeps up with the keys. An arrow key used to be its own round trip and its own full frame (a hundred milliseconds and a quarter of a megabyte on an eighteen-million-cell workbook), and a held key queued one per repeat, so the grid fell behind the key and caught up seconds after it was released. Two changes: a move that scrolls nothing is answered with the selection and the active cell's fields, not the frame (3 ms and a kilobyte on the same workbook); and moves that arrive while a frame is on its way are sent together when it lands, one frame per reply however fast the keys.

    The formula language

    • TEXT() speaks every format code the grid does. It handled thousands separators and fixed decimals and gave anything else back as a plain number, so TEXT(A1,"dd/mm/yyyy") (one of the most common formulas in a real workbook) showed a serial. The grid's formatter moved in beside the engine, where TEXT can reach it: dates, times, percentages, fractions, currency, exponents, colour and sign sections. Two of those the grid itself had never drawn: a cell formatted as a fraction showed digits round a slash, and one in scientific notation showed the number twice round a literal E. Both draw as Excel draws them now, padding spaces and engineering exponents included.
    • 29 February 1900. Excel's calendar has a day that never happened (serial 60), and every file Excel wrote counts it. DATE(1900,2,29) answered 61 here and DAY(60) answered 1; they answer 60 and 29 now, and WEEKDAY uses Excel's arithmetic rather than the almanac, so a workbook's weekdays agree with Excel's for every serial, not only from March 1900 on.

    Verified

    • 673 engine tests, with the OpenDocument round trips, the multi-range selection, the selection-only reply, the mail-server search, the phantom day and every format code pinned.
    • 151 application checks, off the desktop, now including Ctrl+click adding a selection with Bold painting both, the account dialog finding a provider and carrying it into Advanced, a Save as .odt that reopens as OpenDocument, and an idle Worksheets window that settles.
    • The whole gate in two minutes; the same gate took thirty-one minutes before the frame loop was found, and the main process is now idle ninety-four percent of the time through the checks.

    The release on GitHub, with its installers →

    1.7.09 September 2026

    Beta, said plainly; every real file opened for real; and the opening problems that found.

    What changed

    • Every document ever opened stayed in memory
    • A truncated deck showed a blank window for as long as you waited
    • A tender with 274 tabs took seven seconds to answer
    • A fifteen-megabyte deck took five seconds to show its first slide
    • A refusal said "not a zip archive: no end-of-central-directory record"
    • An Office owner file was called a stopped download

    and 22 more in the notes

    The full notes for 1.7.0

    The owner used the suite on their own files and found problems opening documents and problems of usability that none of the checks had caught. This release is the answer to that: the suite is marked beta, a new check opens every file in a folder in the real application, and what that check found in the first two hundred files is fixed here.

    Beta

    Every release is now published as a pre-release, the window title says "(beta)", the launcher says so beside the version, and the README says so above the downloads. An installed copy follows the beta releases. Nothing about the software changed by being called beta; what changed is that the name now matches the state.

    The corpus check

    npm run verify:corpus opens every file in the folders it is pointed at in the real application, one window at a time (the same main process, the same service, the same bundle) and records for each: shown (and how long it took), refused with the application's own reason, hung, crashed, or skipped. Console errors are kept with the file even when it opened. The report names the failures, the files that opened but complained, the slowest twenty, and the numbers per format. It runs in a profile of its own, so a thousand files do not become a thousand recent entries. TESTING.md says where it sits among the other checks and what each can and cannot see.

    The first run, over 1,532 files of public tenders, found the following.

    What it found, and what was done

    • Every document ever opened stayed in memory. Nothing closed a document session when its window closed, so a session of many files grew without end; a hundred and forty files in, the main process stalled for two minutes on a small JPEG. A session now belongs to the window that opened it and goes when the window does.
    • A truncated deck showed a blank window for as long as you waited. The Presentation window's error return sat above one of its hooks, so a file the engine refused made React throw instead of drawing the message. The return is below the last hook now, and a check opens a file of junk in each document app and expects the sentence.
    • A tender with 274 tabs took seven seconds to answer. Each tab stop was measured on its own, and each measurement forced the browser to lay the thousand-paragraph page out again. The measurements are batched: one reset, one layout, one write per commit. 1.8 seconds, and typing no longer re-measures the page.
    • A fifteen-megabyte deck took five seconds to show its first slide. The outline parsed every slide with its layout and master to find the titles, then every thumbnail was drawn, all before the window could paint. The outline now reads titles off the XML; the open model draws the five thumbnails nearest the slide shown and the window asks for the rest after its first paint; and a thumbnail leaves out a vector map with a hundred thousand points. One second.
    • A refusal said "not a zip archive: no end-of-central-directory record". It now says the file is not a complete .pptx and may be a download that stopped early, with the engine's message in brackets for a bug report.
    • An Office owner file was called a stopped download. Word, Excel and PowerPoint keep a 162-byte file beside every open document, named after it with ~$ in front, and leave it behind after a crash; a Downloads folder began with four. Opening one now says what it is and names the document to open instead.
    • Closing a deck's editor left its presenter window up, failing every call it made. The presenter shows the deck its editor holds open; with the editor gone, so is the deck. The show now ends with its editor.
    • The photo viewer read a whole picture to learn its size. It reads the first quarter megabyte, where the size and the EXIF live.

    Across the first two hundred files of the second run the median time to first paint fell from three seconds to one, and the slowest file from 7.6 seconds to 2.5. The full run (1,532 files) then showed 1,390 of 1,394 opening, the four that did not being one zero-byte document, one text file sniffed as an email (fixed below), and two copies of the workbook below.

    The big files, which the owner asked for by name

    • A 46 MB workbook of eighteen million plain values took 135 seconds and 2.7 GB, and then gave up. Two causes. The calculation model copied every cell into itself for a sheet with not one formula; a formula-free sheet past twenty thousand rows now stays in its part and is read through on demand (an edit overlays it, a cleared cell stays cleared, a formula on another sheet still sums it). And the sheet view kept a map of every cell's style, which a JavaScript map cannot hold past 16.7 million entries; past a size the styles are read as cells are asked for. The workbook opens in eight seconds.
    • A specification of 3,200 paragraphs and 2,400 table cells took eight seconds to paint though the engine had it in half a second: the window mounted every block before the first paint. The first screens mount at once and the rest follows in idle slices while the person reads.
    • The 31.8 MB manual, the 20 MB decks and the 6.5 MB Barbican workbook open in one to six seconds; the many-page documents in the corpus (up to 3,211 blocks) in under two.
    • A second corpus, the owner's own Downloads folder of 1,008 files (278 PDFs, 605 photographs, 52 workbooks, 32 CSVs, decks, documents, videos and sound) showed every file but the four owner files above, with no console error: a median of 0.9 seconds, nine in ten inside 1.5, and the slowest, a workbook, in 4.2.

    Usability, from the owner's own report

    • In Worksheets, after Enter in the formula bar the arrow keys moved the caret in the bar and the selection did not move. Enter, Tab and Escape now finish with the bar and hand the keys back to the grid, as Excel does.
    • In Word, typing faster than the engine answered put the letters out of order. Every keystroke is cancelled in the browser and sent to the engine with the caret read from the page. Until the engine's answer was painted, that caret was stale (the browser never made the insertion), so the next letter landed before the last: "Typed." came back "ye.dpT" at sixty milliseconds a letter on a loaded machine, and in a long document a slower pace does it. That is what "the editor did not respond properly" looks like from the keyboard. A caret exactly where the editor last sent or placed it is not resent now; the engine's own caret, already past whatever is in flight, is used. tests/word-caret.test.js pins the rule and the reversal it prevents.
    • The application checks now drive the windows with real mouse and keyboard input (a click aimed by the column and row headers, a drag across text, a click on a ribbon button) and read the engine to see where it landed, instead of clicking elements from inside the page. That is how the formula-bar fault was found, and it is what will find the next one.
    • A text file that begins like an email opens as a text file.
    • A refusal from the engine itself is now the plain sentence too.

    Every kind of file wears its own icon

    After "make Rutba Office the default", every document, workbook and deck wore the suite's one mark, and a folder of mixed files read as one kind of file. Each family now has its own icon (the app's colour and the app's own glyph on a page, the arrangement people know from Office), so a document looks like a document and a workbook like a grid before the name is read. Word, Worksheets, Presentation, Pictures, Video and Mail each have one, and PDF has its own.

    The windows follow. On Windows every app window now carries its app's tile and its own taskbar identity, so a Word window and a Worksheets window sit under different icons, each app can be pinned to the taskbar on its own, and a pinned entry opens that app. Before, every window wore the suite's one mark and they all grouped together. The launcher keeps the suite's mark.

    The application checks, broadened

    • A broken file in each document app: the sentence, the reason, no spinner, no exception.
    • Journeys: Escape closes the Go To dialog and moves nothing; Escape closes the Speaker Notes dialog and keeps the notes; Ctrl+F1 folds the ribbon and folds it back; each window at its minimum size shows its content without a sideways scroll and keeps its status bar; the launcher lists the files the run opened.
    • Real input, in Worksheets: a click selects the cell it lands on, the arrows move the selection, typing fills the cell, Enter moves down, Bold from the ribbon paints the cell, and Enter in the formula bar hands the keys back to the grid. In Word: a click into the page and typing, Ctrl+B on a selection, a real drag across a paragraph and a real click on Italic, each read back from the engine.
    • The run's windows sit off the desktop: to the right of every display, out of the taskbar, never activated. Two runs had been ended by hand, and a run must never take the keyboard from whoever is working. A window closed by anything but the run is reported as such, with the time.
    • A ribbon button is waited for rather than expected after a fixed pause, and the mail strip likewise; both had missed on a loaded machine.
    • The Bold check clicks a shape that has text; the border check accepts any border on a scaled display; the mail block waits for its rows.

    Built alongside: printing, page setup, rich text, recovery

    The gap list (GAPS.md) was written from the code the same day, and its first entries were built before this release closed.

    • Printing. Nothing here could print: Word's button called a command that was never defined, Worksheets' asked for a PDF and was refused. Now every window has Ctrl+P and a dialog that says how many pages before it prints anything (and how much it had to shrink them), with the printers this machine can reach, copies, paper, orientation and margins. Where the pages are cut is worked out beside the engines and tested there; the page itself is Chromium's. Worksheets adds the sheet or the workbook, fit-to-width or fit-to-page, the print area, repeated rows, gridlines and headings; Presentation adds full-page slides, notes pages, or a handout of one to nine. Export as PDF goes through the same door for all three, so a workbook and a deck can be exported at all, and what is printed and what is exported cannot drift apart.
    • Page setup lives in the workbook. Paper, orientation, margins, scaling, the print area, the repeated rows, gridlines, headings and centring are read from and written to the file where Excel keeps them, so they reach whoever opens it next. Writing them right needed the sheet's tail written in the order the schema gives, and print areas matched by sheet as well as by name.
    • Rich text, written. The installer had claimed the suite edits .rtf while Ctrl+S refused. Words, font, size, weight, slant, underline, strike, colour, alignment, list level and tables go out and come back.
    • Unsaved work outlives a crash. A changed document is copied into the profile (every half minute, or every few minutes for a workbook that takes seconds to serialise, since the interval follows what the last copy cost), and the launcher offers what a crash took back by name, with the time and where it belonged. Saving or closing removes the copy.
    • The formula language: array constants ({1,2;3,4}), LET, and a reference to an empty cell that is nothing rather than a zero: COUNT of a blank is 0 and AVERAGE of one is #DIV/0!, as in Excel.
    • Worksheets' Enter commits what was typed, not what the last render saw: a keystroke sixty milliseconds before Enter used to be lost.

    What reviewing this release found

    The work above was read back through, run, and then run against files made to be awkward. What that found is fixed here too.

    Two of them stopped the release outright. Window creation used Electron's app object without importing it, and the reference sat outside the try that guards it, so every window but the launcher threw: the first gate run over this work passed 3 of its 35 blocks. And the association list carries the owning app so the installer can give each type that app's icon; electron-builder validates every association against its own schema and refuses a property it does not know, so npm run dist could not start.

    The rest were older than this release:

    • Export as PDF threw, every time. The document PDF writer answers an object (the buffer and the page count), and the service handed the object itself to Buffer.from. The unit tests destructure the answer, so they never saw it, and no window check exports. Worksheets and Presentation have no PDF writer at all; their buttons said the export "is done from the window", and nothing in any window does it. They now say what they can write instead.
    • The HTML export wrote the document's own characters as markup. A paragraph reading "5 < 6 & 7 > 4" came back as "5 4", and a document containing a script tag produced a page that runs it. The reader was the other half: one replace of every tag with a space, so a page arrived as a single paragraph with its entities spelled out and its stylesheet in the text.
    • A range past the last used cell answered with the last row that holds something. Ranges are clipped to the used area so a whole-column reference does not walk a million rows; the clip pulled the end of a range back before its start, and the rule that normalises a backwards range then landed it on the boundary. On a sheet ending at row 5, =SUM(D7:D9) returned D5. Wrong numbers, quietly.
    • A reference to an empty cell counted as a zero. =COUNT(A1) on a blank answered 1, and =AVERAGE(A1) answered 0 where Excel answers #DIV/0!.
    • A UTF-16 text file was refused as an MP3. FF FE is the mark Notepad writes for "Unicode" and PowerShell writes whenever it redirects; it is also a valid MPEG frame sync. Every UTF-16 text file on Windows was unopenable.
    • A document under a workbook's name hung the window: thirty seconds of blank, then nothing. The window now says which kind it edits, and a file of another kind is refused by name in a third of a second.
    • A file the decoder refuses left the media window empty for ever, and a picture that would not decode showed a frame with nothing in it and a toast that fades. All three picture and media windows say what happened now.
    • The disk failing reached people as error codes. Saving over a file Word still had open said "EPERM: operation not permitted".
    • The first letter typed into the formula bar was dropped. Beginning an edit is a round trip, and until it returned the bar fell back to the cell's old contents, so "hello" arrived as "ello" whenever the machine was busy enough. The same race the grid had already been given a flag for.
    • A workbook with no sheets, and a relationship with no target, each threw from inside an engine rather than being refused: found by tools/fuzz-open.js, which damages good files at random and opens them until something answers with anything other than a sentence. Four and a half thousand damaged files now do.

    And the checks that missed them: the corpus run counted a picture that never decoded as shown; the editing run used the developer's own profile; the smoke run photographed the machine's real pictures folder; a check run that threw before its first window hung for ever instead of failing; and all three window harnesses read a console-message shape Electron has deprecated, so the day it is dropped they would go quietly blind.

    Verified

    • 654 engine tests.
    • 145 application checks, off the desktop, with real mouse and keyboard input.
    • The corpus: 1,532 public-tender files, then a 1,008-file Downloads folder of the owner's own; the numbers are above, the file names stay on the machine.

    The release on GitHub, with its installers →

  29. 8 September 2026

    1.6.18 September 2026

    One copy of Rutba Office on a machine, whichever way it was installed.

    The full notes for 1.6.1

    The installer replaces, never sits beside

    The Windows installer now keeps one copy of the suite on a machine. Before it installs, it finds every registered copy (installed for this user or for all users, in whichever directory it went to) and runs that copy's own uninstaller silently, keeping documents and settings where they are. Then it installs. The same happens when an installed copy updates itself.

    Before this, the installer replaced the previous copy in the scope it was installing to and only that one: a per-user install could land beside an all-users install from an earlier day, and Windows listed two.

    Two smaller things came with it:

    • An entry whose uninstaller has gone (the folder deleted by hand) is removed from Apps & Features rather than left there, in either scope.
    • A copy that cannot be removed (the suite still running, a cancelled elevation) stops the install with a message, rather than installing beside it. The one promise is that it never ends with two.

    The portable build installs nothing and is not counted.

    Verified

    • On a machine with 1.4.0 installed for this user, the 1.6.1 installer run silently left one entry in Apps & Features, 1.6.1, in the same directory, and the installed copy opened all eight windows clean.
    • With the installed folder removed by hand and the entry left behind, the installer forgot the entry and installed afresh into the same directory.
    • Engine tests and application checks unchanged from 1.6.0 (609 and 119); the release gate was run again before this went out.

    The release on GitHub, with its installers →

    1.6.08 September 2026

    Pictures and shapes on a slide, drawings on a sheet, and the suite keeps itself current.

    TouchedRutba WordWorksheetsPresentationPicturesUpdates

    What changed

    • Insert → Pictures
    • Sized from its own header
    • Shapes
    • Connectors
    • Braces and brackets
    • Letter spacing

    and 3 more in the notes

    The full notes for 1.6.0

    1.5.0 gave Presentation PowerPoint's ribbon and left two of its buttons honest and grey: Pictures, and Shapes. Both are live now. And a second company's files (a profile deck, a product document, a pricing sheet, a delivery diagram) were opened beside Microsoft's own rendering of each, and what differed was fixed, engine by engine.

    Automatic updates, on

    An installed copy now checks GitHub's release feed on its own: twenty-five seconds after launch and every six hours, one request carrying nothing about the person or the machine. A newer release downloads in the background and installs the next time the suite is quit; nothing is installed while anyone is working. About → Check for updates automatically turns it off, and off means no request at all. A suite that ships a release a day and never says so leaves every installed copy on the version it came with, defects and all; this is the fix for that.

    Pictures on a slide

    • Insert → Pictures puts a picture from this device onto the current slide: PNG, JPEG, GIF or BMP. The bytes go into the package as a media part, the slide gets a relationship to it, and the slide gets a p:pic whose blip names the relationship (the three things PowerPoint insists on), with the extension's content type declared once, as Office declares it, not as an override per picture.
    • Sized from its own header. The service reads the width and height out of the first bytes, as the photo viewer does for a folder of two thousand, and fits the picture to the slide keeping its aspect. A small picture keeps its own size; a tiny one gets a hand's width to resize from.
    • Selected as soon as it lands, in the thumbnail and the sorter at once.

    Shapes on a slide

    • Shapes, on Home and on Insert, is a menu of fifteen preset geometries in PowerPoint's own names (Rectangle, Rectangle: Rounded Corners, Oval, Isosceles Triangle, Right Triangle, Diamond, Parallelogram, Trapezoid, Pentagon, Hexagon, Octagon, Star: 5 Points, Arrow: Right, Chevron, Line), each drawn as its geometry.
    • Written the way PowerPoint writes a shape it has just drawn: preset geometry, a solid fill in the theme's first accent, a line in the same accent darkened by half, a text body anchored to the middle. A theme change recolours it. It lands in the middle of the slide, selected; the Font and Paragraph groups act on its text, Arrange nudges and deletes it.

    Drawings on a sheet

    A diagram drawn in Excel (boxes, arrows, braces, connectors) opened as an empty grid with its captions. The engine had read the drawing part since charts were built; the window never painted it.

    • Every shape, picture and chart on a sheet is now drawn over the cells, in the cells' own coordinates, at the size its author drew. (A connector one pixel wide and a column tall was being widened to eighty and drawn as a diagonal.)
    • Connectors are read (they were "unknown") and run corner to corner of their box, flipped as the box says; a bent connector turns half way.
    • Braces and brackets are drawn as strokes with no body.
    • A shape that states no fill and no line of its own takes them from the theme through its style references, as Excel does: an arrow Excel filled in the first accent was transparent here. A scheme colour with a shade child no longer reads the shade's number as the colour.
    • A rotated shape turns about its centre; a brace laid on its side under a box is drawn on its side.

    Worksheets

    • CEILING.MATH and FLOOR.MATH, and the _xlfn. prefix Excel writes in front of any function newer than 2007 is the file's, not the function's: a pricing sheet that showed #NAME? in four cells shows its numbers.

    Presentation, measured against PowerPoint

    • Letter spacing on a run is drawn; a site address set wide is wide.
    • Faces with no lowercase (Bebas Neue is on every second deck) set their text in capitals, and fall back to a condensed face on a machine without them. The capitals are the design.
    • Bullets stored for Wingdings or Symbol are drawn as the character they look like: "§" in Wingdings is a small square, and was a "§".
    • A wrapped line is matched back onto its source word by word, so a line with a double space in it keeps its last character: "7LP UK" ended "U", and "Info@zeptosystems.com" ended "Info@ze".

    Word, measured against Word

    • A run that says colour auto is black, whatever colour its style says: a pasted heading was blue here and black in Word.
    • Contextual spacing ("don't add space between paragraphs of the same style") is honoured: a list sits tight while it keeps its space from the prose around it.
    • A list's marker hangs to the left of the text by the level's hanging indent: the bullet at a quarter inch, the text at a half, as Word draws it. And the bullet is the character the numbering stored, mapped through the same symbol-font table as the slides.

    The checks

    • Nine engine tests: a picture round-trips with its bytes, its part, a default content type and no override; a shape round-trips with the theme accent, its line, centred text and its geometry; CEILING.MATH the 2013 way; a connector's flips, a brace's path, a style reference's fill, a rotation; colour auto, contextual spacing and the hanging marker on a page; the symbol-font bullets.
    • Two application checks: a picture sent through the document service lands on the slide, drawn and in its thumbnail; Home → Shapes → Oval puts an oval on the slide, filled, selected, drawn as an ellipse.
    • The harness itself: its windows open on a second display when there is one, because twenty windows on the display somebody is working at get closed by hand, and closing them takes the checks with them; the border check accepts any border, since Chromium floors a 1px border to 0.571px on a 175% display; the mail block waits for its rows instead of pausing a fixed time that was enough only on an idle machine; the Bold check clicks a shape that has text.

    Verified

    • 609 engine tests.
    • 119 application checks.

    The release on GitHub, with its installers →

    1.5.08 September 2026

    Presentation gets PowerPoint's ribbon, and opens the decks people actually send.

    TouchedPresentationPictures

    What changed

    • Custom geometry
    • Fit to window
    • Thumbnails
    • A 15 MB deck opens at once
    • Home
    • Slide Show

    and 2 more in the notes

    The full notes for 1.5.0

    1.4.0 gave Worksheets Excel's ribbon; this release does the same for Presentation: Home, Insert, Draw, Design, Transitions, Animations, Slide Show, Record, Review, View and Help, every group PowerPoint has, with a PDF tab where PowerPoint has Acrobat. And, as with Word, the page was measured against the real thing: a company's own decks (45 files, up to 15 MB) opened beside the PDFs PowerPoint had exported of them.

    What the slide shows now

    • Custom geometry. A shape drawn with its own outline (a banner with a diagonal cut, a slash, a swoosh) is read into a path and drawn as one, scaled onto the shape. Every such shape was a rectangle before.
    • Fit to window. The slide is drawn at its own size and scaled to fit the stage; a 1280-px slide in a 1000-px stage used to run off the right edge, logo and all. View → Zoom sets a level, Fit to Window returns.
    • Thumbnails. The slide pane shows a picture of every slide, and the new Slide Sorter shows them all at once.
    • A 15 MB deck opens at once and stays quick: a slide is parsed once per version of its XML, its pictures are held once per session, and a keystroke on one slide redraws that slide and nothing else. Before, every operation parsed all nineteen slides three times over.

    The Presentation ribbon

    • Home. New Slide by layout, Duplicate, Delete; the Font group works on the selected text box: click one, then Bold, Italic, Underline, size, the size steps, font, colour; the Paragraph group's alignments; Arrange (delete, nudge).
    • Slide Show. From Beginning, From Current Slide, Use Presenter View.
    • View. Normal, Outline View, Slide Sorter, Notes Page (the notes editable under the slide), Reading View (the show in the window); Ruler, Gridlines, Guides and the notes strip; Zoom levels and Fit to Window; Colour, Greyscale and Black and White; New Window; Full Screen.
    • Review. Speaker Notes. Help. Help, Feedback, Show Training, What's New, Keyboard Shortcuts. PDF. Export as PDF.
    • Everything else PowerPoint has (Pictures, Shapes, Tables, Charts, Links, Comments, Header & Footer, Themes and variants, every transition and animation, Record, ink, master views, Macros) is drawn where PowerPoint draws it, disabled, with a title that says why. Transitions and animations already in a deck survive a round trip untouched; authoring them is not built, and the ribbon says so instead of pretending.

    The ribbon collapses, and Pictures gives the picture the room

    Every ribbon now has the chevron Office has at the strip's end (or Ctrl+F1): it folds the ribbon to its tabs alone, and while folded a tab click peeks the groups over the content (the content does not move) until a command is pressed or the pointer goes down elsewhere. Pictures uses it: with a picture open the ribbon is folded and the stage keeps almost nothing back, so the picture has the height of the window, the top especially. Opening the ribbon back out is remembered.

    Honest about the rest

    Legacy .ppt (the binary format) is not read; Word reads .doc, and the audit now records the gap. Pictures on a slide are the next thing the deck writer needs, and the highest on its list.

    Verified

    • 599 engine tests (two new: a custom path scaled onto its shape, an arcTo turned into an arc).
    • Application checks for every PowerPoint tab, the disabled controls' explanations, Slide Sorter, Gridlines, and Bold on a selected text box reaching the file.

    The release on GitHub, with its installers →

    1.4.08 September 2026

    Worksheets gets Excel's ribbon.

    TouchedWorksheets

    What changed

    • Home
    • Insert
    • Formulas
    • Data
    • Review
    • View

    and 2 more in the notes

    The full notes for 1.4.0

    1.3.x gave Word every tab Microsoft Word has. This release does the same for Worksheets: Home, Insert, Draw, Page Layout, Formulas, Data, Review, View, Automate and Help, every group Excel has in each, laid out where Excel lays it out. What the engine can do is wired; what it cannot is drawn in its place, disabled, with a title that says exactly why, so a person arriving from Excel finds every button where they expect it and is never left guessing whether a feature exists.

    What is new on the ribbon

    • Home. Format Painter, font size up and down, eleven border presets, Merge & Centre, Increase and Decrease Decimal (General becomes 0.0, 0.00 becomes 0.000), Cell Styles (Excel's own: Heading 1 to 3, Title, Total, Good, Bad, Neutral, Input, Calculation, Check Cell, Note, Warning Text, Currency, Percent, Comma), Insert/Delete/Format menus (row height, column width, AutoFit, protect, lock), Fill Down and Fill Right (Ctrl+D, Ctrl+R), Clear Contents / Clear Formats, Sort & Filter, Find & Select with Go To (Ctrl+G) by cell reference or defined name.
    • Insert. PivotTable, shapes, six chart kinds, the filter, Text Box, Symbol, Define Name.
    • Formulas. Insert Function: every function the engine has, in Excel's categories (Financial, Logical, Text, Date & Time, Lookup & Reference, Math & Trig, Statistical, Information) with a search; picking one starts =NAME( in the cell. The list is the engine's own catalogue, held in lock-step with the functions by a test, so nothing offered can evaluate to #NAME?. Three functions are new for it: IRR, RATE and DATEDIF (all six of Excel's units). Use in Formula lists the workbook's names. Show Formulas (Ctrl+`) shows every formula instead of its result. Calculate Now.
    • Data. From Text/CSV, Refresh All, sort, filter, Data Validation, What-If Analysis (Goal Seek, Data Table), the CSV/TSV/PDF exports.
    • Review. Workbook Statistics, Protect Sheet, lock and unlock cells, conditional formatting and validation.
    • View. Gridlines, Headings and Formula Bar toggles; Zoom levels; New Window; Freeze Panes as a menu (at the selection, top row, first column, unfreeze); Full Screen.
    • Page Layout. Margins, Orientation and Size (kept for the PDF export), gridlines and headings.
    • Help. Help, Feedback, Keyboard Shortcuts, About.

    A workbook that would not open

    A tender's requirements workbook (24 sheets, 2.44 million cells, all but a few thousand of them formatted blanks) took eleven minutes to open. Building the calculation model asked the file for every cell by reference, and each ask re-parsed the cell's whole row: quadratic in a sheet's width. The model is now built by walking each row once, skipping a blank before its attributes are looked at; the same workbook opens in six seconds and holds a third of the memory. Workbook.cells(sheet) is the walk, and a unit test keeps a 24,000-cell sheet under a second.

    Text spills, as it does in Excel

    Text wider than its cell now spills into empty neighbours (right for left-aligned text, left for right-aligned, both ways for centred) and stops at the first cell with something in it. Numbers never spill, nor wrapped or merged text. The same tender's instruction sheet is centred text over empty columns, and it read as clipped fragments before.

    Honest about the rest

    Draw (ink), Themes, Print Area and print titles, Scale to Fit, Sparklines, Slicers, cell comments, cell hyperlinks, Text to Columns, Flash Fill, Remove Duplicates, Consolidate, outlining and subtotals, formula auditing arrows, Page Break Preview, Automate scripts and Macros are all drawn where Excel draws them, disabled, each with its reason. Macros will stay that way: a spreadsheet that runs code it received in an email is how ransomware starts.

    Verified

    • 590 engine tests.
    • 108 application checks: every Excel tab draws its groups and every disabled control explains itself; Gridlines, Headings and Formula Bar toggle what they name; Freeze top row freezes it; Cell Styles → Good paints the cell Excel-green (rgb 198, 239, 206); Increase Decimal turns General into 0.0; Go To moves the selection; Insert Function starts =SUM(.

    The release on GitHub, with its installers →

    1.3.18 September 2026

    Footnotes and endnotes: inserted, reworded, deleted, undone.

    What changed

    • References → Insert Footnote / Insert Endnote
    • Rewording
    • Deleting
    • Undo
    The full notes for 1.3.1

    1.3.0 showed a document's footnotes. This release lets you write them: the second most common reason (after track changes) a document had to go back to Word.

    What is new

    • References → Insert Footnote / Insert Endnote. A dialog takes the words; a raised number appears at the caret and the note under the body (an endnote at the end), numbered by where its reference falls: insert one earlier and every later number moves, as in Word.
    • Rewording. Double-click a note to change its words; the number and the reference stay where they are.
    • Deleting. The reference is one character of the text, the way Word counts it, so Backspace removes it and the note leaves the page with it.
    • Undo steps back through all of that, notes part included: undoing the first footnote a document ever had restores an empty part, not an orphan.
    • The paragraph carrying a reference stays editable; type around the number freely. Before, a paragraph with a footnote was read-only, because the rebuild could not carry the reference; now the reference is a run of its own and the rebuild writes it back.
    • A document with no footnotes part gets one written the way Word writes it, with the separator entries Word expects at ids −1 and 0, its content type and its relationship.

    Verified

    • 590 engine tests (one new, walking the whole lifecycle: insert, type beside, reword, delete, undo four steps, endnote part creation).
    • 100 application checks: the References button, the dialog, the number on the page and the words under the body.

    The release on GitHub, with its installers →

    1.3.08 September 2026

    The release where Word opens the documents people actually send.

    TouchedRutba Word

    What changed

    • The document's own fonts, sizes and colours
    • Tabs
    • Cover pages and tables of contents
    • Text boxes
    • Headers and footers
    • Footnotes and endnotes

    and 3 more in the notes

    The full notes for 1.3.0

    1.2.0 made every button work. This release is about what is on the page when a real document is opened (a tender, a contract, a questionnaire), measured the only honest way: the same file opened in Microsoft Word and in Rutba, both photographed, the differences fixed one at a time. The corpus behind it is 474 .docx files from public procurement: 473 open now (the last one is not a zip archive), none takes longer than five seconds, and a 32 MB manual that used to take 92 seconds opens in three.

    What was missing from the page, and is drawn now

    • The document's own fonts, sizes and colours. Every document was drawn in Calibri, black, one size, because the stylesheet was read for pagination and never for painting, and fonts named through the theme (which is how Word names nearly all of them) were not read at all. The page now paints each paragraph from its resolved style: face, size, colour, bold, italic, caps, alignment, spacing before and after, line spacing, indents, shading, tab stops, with the theme's heading and body faces resolved, and direct formatting on a paragraph or run beating the style, as in Word.
    • Tabs. No tab had ever reached the page: the text reader kept only what sat inside <w:t>, and a tab never does. Form lines ran their label into their value ("DATED[dd/mm/yyyy]"). Tabs are read, sized to the paragraph's own stops or its style's (left, centre, right and decimal, with dot, hyphen and underscore leaders), and a tab typed into a paragraph is written back as the element Word expects. Line breaks inside a paragraph are kept too, and a run of spaces is a run of spaces.
    • Cover pages and tables of contents. Word puts both in a content control at the top of the body, and the reader treated every control as opaque, so the Leicestershire LMS tender opened on its second page. A body-level control's paragraphs are on the page now, read-only (the engine cannot rebuild a control, so the caret is kept out of one rather than allowed to make edits that vanish).
    • Text boxes. A cover page is mostly text boxes: the title block, the contact details, the abstract. They are drawn in flow under the paragraph that anchors them, at the file's size, with the shape's fill (theme colours included, tints applied) and outline, their paragraphs painted exactly like the body's. Before, a text box's words were sometimes shown as body paragraphs and the paragraph carrying the box was lost.
    • Headers and footers are drawn in the page margins, greyed the way Word greys them, with the page-number field resolved; double-click one to edit it. A title page shows the first-page band, and nothing at all when the file defines none, which is how a cover page has no running header.
    • Footnotes and endnotes. The reference is drawn as a raised number in the body, numbered by where it falls, and the notes sit under the body with their own numbers. Paragraphs carrying a reference are read-only, so an edit can never orphan a note.
    • Paragraph shading and borders, including a style's: the shaded title band, the rule under a heading.
    • Hyperlinks are blue and underlined; superscript and subscript are painted (and can now be applied from the ribbon: x² and x₂ are buttons, not promises).
    • Watermarks. "DRAFT" across every page is the header's WordArt; its words are read and drawn behind the body.

    What the page shows that print does not, yet

    The printed pages and the PDF export are laid out by the paginator, which places pictures and tables but not, yet, text boxes, footnotes or the watermark. Those are on the screen and not on paper. Inserting a footnote, editing inside a content control or a text box, and a table of contents that updates itself are not built; the ribbon says so on each button.

    Performance

    • Opening a 3,000-paragraph contract took 25 seconds per frame: the frame asked the file for each paragraph's alignment again, per paragraph, per keystroke. It reads what the paragraph already carries; the frame takes 380 ms.
    • A table whose header row repeats on every page sent the paginator into a loop that ran the machine out of memory (4 GB) on an 81 KB document. It lays the table out in 144 ms now, and a runaway guard means no document can do that again.
    • The document service no longer paginates on every keystroke; the editor draws from blocks and never read the pages.

    The Word ribbon

    Every tab Microsoft Word has (Home, Insert, Draw, Design, Layout, References, Mailings, Review, View, Help), with every group. What is wired is wired to the engine; what is not is disabled with a title that says why, so the ribbon never pretends. New this release: the Navigation Pane, the ruler, formatting marks, the five view modes, Focus mode, zoom, Symbol, Date & Time, Change Case, the Format Painter, Cover Page, Blank Page, Table of Contents from the headings, Next/Previous Footnote and Show Notes, Document Properties, keyboard shortcuts, the tracked-changes list, and x²/x₂.

    How this is verified now

    • 589 engine tests (12 new, on a purpose-built fixture with a cover page in a content control, a themed text box, tab stops, shading, a border, theme fonts, character styles, footnotes out of id order, a first-page header and a watermark).
    • 99 application checks that press the real buttons (every Word tab, the navigation pane, the marks, the view modes, Symbol, Date & Time, Change Case, the style box, the table of contents, superscript), and one that measures the page is centred in the window, because it was not: the app's one grid column grew to the ribbon's 2,372 px and the page was centred in that.
    • Two tools for the comparison itself: tools/compare-word.ps1 asks Microsoft Word to export a document as PDF (one Word per document, three minutes each, an unblocked copy so Protected View cannot wedge it), and tools/pdf-pages.ps1 rasterises PDF pages with Windows' own renderer, so a page of Word's can be put beside a page of ours with nothing installed.

    The release on GitHub, with its installers →

    1.2.08 September 2026

    The release where every button was pressed.

    What changed

    • Insert → Picture
    The full notes for 1.2.0

    1.1.0 shipped ribbons whose buttons did not work. Not "worked badly": Word's font, size, colour, indent and style controls each sent a key the engine does not listen for, so they pressed and did nothing. Worksheets could not be formatted from its toolbar, and a click on an empty cell selected nothing. The checks did not catch any of it, because they drove the engines through operations and never clicked a button. This release fixes what was broken and changes how the suite is verified so it cannot ship that way again.

    What was wrong, and is fixed

    Word

    • Every font, size, colour, highlight, indent, spacing and style control now reaches the engine, and the page paints the result. A colour never showed before (the painter read a key the engine does not send); 12 pt drew at two-thirds size (pixels for points); centred, justified and indented paragraphs applied to the file and painted nowhere.
    • Pressing Bulleted list crashed the page. It makes a list now.
    • A table inserted from the ribbon looked like a stack of plain lines. It is drawn as a table, every cell still editable.
    • Insert → Picture called a command that no longer existed. It opens a file, puts the picture in the document, and (the part that was also missing) draws it on the page. Charts and shapes ride the same path and are drawn too.
    • Page size, orientation and margins use the engine's own names, so they work.

    Worksheets

    • Clicking an empty cell selects it. The engine deliberately does not emit empty cells (a sheet is mostly empty), so a click on blank grid landed on nothing; the grid now finds the cell under the pointer from its geometry.
    • Bold, italic, underline, font, size, colour, fill, borders, alignment, wrap and number formats all paint. The cell painter read flat keys the engine never sends; it reads the engine's own shape now.
    • Borders send edges; the chart menu offers only kinds the engine draws; the shape menu offers only shapes that exist.

    Everything else

    • A toolbar press no longer takes focus from the editor, so the selection a button acts on is still the active one. Dropdowns still take focus, because a dropdown that cannot take focus cannot open.
    • Video: the scrubber set the playhead and then read it straight back from the media element before the seek had landed, so Split and Trim cut at 0, which is no cut. Fixed, with the playhead no longer snapping back mid-drag.
    • Presentation: a "Shape" that inserted a text box is gone; the Design tab holds the deck's real size and the three layouts instead of disabled placeholders.

    How this is verified now

    npm run gate still runs 577 engine tests, 9 editing checks and 8 window captures, and now 86 application checks, 35 of which select words on the real page, press the real ribbon buttons and menus, fill in the real dialogs, and read what the page paints:

    • bold drawn at weight 700, 18 pt drawn at 24 px, red drawn as rgb(224, 49, 49)
    • a paragraph centred, a list made, a heading applied, a table inserted and drawn as one, a page turned landscape, a picture inserted and drawn, undone and redone
    • a click on empty C7 selecting C7, typing filling it, bold painting bold, a fill painting amber, borders painting a border, the Freeze dialog freezing the top row
    • a slide added from the menu, a text box placed, notes saved, the slide deleted; the picture viewer rotated and advanced; the image editor's rotate, flip and reset; a clip split at the playhead
    • a message composed, sent to the outbox with an undo, taken back and reopened

    Each of those found something on its first run. None of them can be passed by an engine that works behind a button that does not.

    Also in this release

    Everything from 1.1.0: the mail client that names the trackers in a message, sign-in to Gmail and Outlook.com, rules that show their working, a search index, a Markdown editor that gives a README back unchanged, presenter view, and the one honest request outward. See the 1.1.0 notes.

    Downloads

    | File | For | |---|---| | Rutba-Office-1.2.0-win-x64.exe | Windows installer | | Rutba-Office-1.2.0-portable.exe | Windows, no installation |

    macOS and Linux builds are produced by the same configuration and will follow.

    The Windows builds are not code-signed, so SmartScreen will warn on first run. That warning is telling you the truth: the publisher is unverified. Check the file against this page, or build it yourself. The source is here.

    The packaged installer in this release was smoke-tested as a packaged installer, not as a development tree. Free, and licensed AGPL-3.0-or-later with a commercial option.

    The release on GitHub, with its installers →

    1.1.08 September 2026

    Everything in 1.0.0, and the parts that were built but had no button.

    TouchedMail

    What changed

    • Hyperlinks and tables
    The full notes for 1.1.0

    Mail is a mail client now

    It tells you who is watching. Every client blocks remote images. None of them say what was blocked or whose it was. This one names the tracking networks in a message, counts the pixels, and tells a 1×1 beacon apart from the sender's own logo. All of it is computed from the message already on your disk, with no network call of any kind. It shows SPF, DKIM and DMARC as the receiving server recorded them, so a forged bank mail is visibly forged before you read it. And where a sender offers RFC 8058 one-click unsubscribe, leaving the list is a button.

    Sign in to Gmail and Outlook.com. Both stopped accepting passwords for mail programs (Google in 2022, Microsoft in 2024), so a client without this cannot add the two mailboxes most people have. The sign-in happens in your browser, never in a window this application draws, with PKCE and a loopback redirect. Only a refresh token is kept, in the operating system's keystore.

    Conversations, a unified inbox across every account, multi-select with the actions that only make sense in bulk, quick filters, a reading pane that moves, and two views a client that owns its own store can offer and a thin IMAP front end cannot: every attachment in one place, and everyone who writes to you.

    Rules, and unlike anyone else's, they show what they would do to the folder in front of you, live, before they do anything.

    Search is an index rather than a scan: from:, subject:, has:attachment, is:unread and quoted phrases. 20,000 messages searched in under 10 ms.

    Undo send and scheduled send. Every message waits a few seconds before it leaves, and those seconds are yours. The queue survives a restart, and three failed attempts put your words back in Drafts rather than losing them.

    It finds the mail you already have: Outlook, Thunderbird, Apple Mail and Windows Mail stores on this computer, offered with their account settings, not just their messages.

    A Markdown editor you can point at a repository

    Word opens GitHub-flavoured Markdown and gives it back unharmed. Front matter, task lists, table alignment, reference links, footnotes, setext headings and fenced code all survive. 264 of 268 real .md files round-trip byte for byte; the four exceptions have genuinely unbalanced emphasis. Word cannot open Markdown at all, and LibreOffice loses the structure.

    .md and .markdown are claimed as file types, so Rutba Office can be the program they open with.

    The ribbons caught up with the engines

    Worksheets could not make a cell bold, not because the engine could not, but because nothing called it. The same was true of freeze panes, sheet protection, conditional formatting, data validation, goal seek, what-if tables, named ranges, filters, find-and-replace and pivot tables. All built, all unreachable. Now: Home, Insert, Formulas, Data, Review, View.

    Word gained Home, Insert, Layout, References, Review, View: hyperlinks, comments, headers and footers, page size, orientation, margins, a style list read from the document, and a word count that reports reading time honestly.

    Presentation gained Home, Insert, Design, Slide Show, View, and two things it simply could not do: add a slide (a new deck could not grow past its first one) and write speaker notes.

    Presenter view

    A second window for the other screen: your notes, the next slide, how long you have been talking and what the time is. B blanks the audience screen. The two windows agree through one place in the application, so they cannot drift apart mid-talk.

    Other things

    • A full-screen button in every window, and F11.
    • A "open files with Rutba Office" panel that says honestly what each platform will and will not let an application do, rather than claiming success and changing nothing.
    • The image viewer plays video and animated images in the same surface, with an auto-advance navigator that waits for a video to finish.
    • Hyperlinks and tables in generated documents.

    One request outward, and it is stated

    An update check against GitHub, and one announcement check a day against office.rutba.io. The announcement carries the version and the operating system and no identifier of any kind. What is counted at the other end is "a copy opened somewhere", never you. Both are listed in About and both switch off in one press. There is deliberately no setting that reports without showing you something back.

    Your documents, your mail, and what you do with them never leave this computer.

    Downloads

    | File | For | |---|---| | Rutba-Office-1.1.0-win-x64.exe | Windows installer | | Rutba-Office-1.1.0-portable.exe | Windows, no installation |

    macOS and Linux builds are produced by the same configuration and will follow.

    The Windows builds are not code-signed, so SmartScreen will warn on first run. That warning is telling you the truth: the publisher is unverified. Check the file against this page, or build it yourself. The source is here.

    Verified

    npm run gate: 577 engine tests, 9 editing checks, 53 application checks and 8 window captures: 73 seconds, all green. The application checks run against a generated mailbox in a profile of their own, so they pass or fail on the code rather than on whatever happened to be on the machine. The packaged installer in this release was smoke-tested as a packaged installer, not as a development tree.

    Free, and licensed AGPL-3.0-or-later with a commercial option.

    The release on GitHub, with its installers →

    1.0.08 September 2026

    The first release: seven apps in one download, working with the network switched off.

    The full notes for 1.0.0

    Mail reads Outlook .pst and .ost, .olm, mbox, .eml and .msg alongside live IMAP. Word, Worksheets and Presentation run on an OOXML engine that rewrites only the parts of a file it deliberately edited. Pictures, Image and Video carry no ffmpeg and no native binaries.

    577 engine tests, 18 application checks and 9 editing checks, all run against the real windows and the packaged binary.

    The release on GitHub, with its installers →

The next one arrives on its own

Install it once. Every release after that is found, downloaded and offered to you by the copy you already have.

One family

The rest of Rutba

One account across all of it. Sign in once and the products know each other.

OFFICE-TIMELINE · 9ca36b0