Skip to content

Releases: nyblnet/bento

bento/slides v1.0.18

Choose a tag to compare

@nyblnet nyblnet released this 15 Aug 19:49
92db85b

Download the single file below and open it in any modern browser — it's the document, the viewer and the editor in one. Shipped files self-update through the signed release channel.

  • Security: offline mode did not block everything it promised. The switch
    says "nothing leaves this computer", and five things still went out with it
    on: a manual Check for updates called the release server, Manage
    languages…
    downloaded the pack index and any pack you added, a deck's video
    or image pointing at a web address still loaded from it, requests already
    running were left to finish, and a second tab that was already in a live
    session kept syncing edits.

    The last two matter most. A remote image or video in a document is the
    cheapest tracking beacon there is — it tells whoever hosts it that you opened
    the file, and when — and offline mode is exactly what you would turn on
    before opening a deck you did not write. The second tab was worse: real
    document content kept moving.

    Separately, where a browser blocks site data — a private window, or a
    locked-down setup — the checkbox showed the switch on while nothing had been
    stored, so it did nothing at all. It now holds for the session regardless and
    says plainly that it will not survive a reload.

    Offline mode now covers all of it: the network is reachable from exactly one
    place in the code, flipping the switch cuts requests and connections that are
    already open rather than only the next one, and a deck's remote images and
    video are left unloaded. Reported privately, with a reproduction — and found
    by watching real traffic after reading the code twice suggested there was
    nothing wrong.

  • Updating a file no longer interrupts you. With Bento Tray installed and a
    folder granted, "Update this file" now finishes without a single dialog. The
    backup it leaves behind is saved beside your document instead of being
    downloaded — so the copy you would roll back to sits next to the thing it
    backs up, rather than in your downloads folder. Without the extension it is
    still a download, exactly as before.

    Two things caused the prompt. The backup was handed to the browser's download
    machinery, which asks where to put things if you have told Chrome to; and an
    update of a double-clicked file described itself to the extension as an
    export, so the extension — correctly — refused to write it for you.

  • Fix: Share opened cut in half on a narrow window. Once the window is
    narrow enough to fold the toolbar into ⋯, opening Share from that menu
    drew the popover sliced down its left edge, with the properties panel showing
    through the gap where the rest of it should have been. Share and Language now
    open as a section of the ⋯ list itself — full width, scrolling with it,
    nothing hanging over an edge to be cut off.

    The ⋯ menu scrolls when it has more in it than fits on screen, and a box that
    scrolls in one direction quietly clips the other whether you asked for that or
    not. Anything floating inside it was always going to be trimmed. Wide windows
    were never affected: the fold only happens when the toolbar runs out of room.

  • The update card drops its peach stripe. The "Version X is available" card
    in About carried a thick accent rule down its leading edge — the only stripe
    of its kind anywhere in the app, and a hard-coded colour, so it stayed peach
    while everything around it moved into dark mode. It now has the same quiet
    1px border as every other surface in the dialog and themes along with them.
    The accent stays where it earns its place: on the button you press.

bento/slides v1.0.17

Choose a tag to compare

@nyblnet nyblnet released this 10 Aug 18:23
efc0fab
  • Security: update this file. A deck could run code hidden in its own
    content.
    Ordinary-looking document content — an image, a shape, an embedded
    drawing — could carry script that ran when the slide was drawn, or quietly
    send the reader somewhere else. No unusual file was needed and nothing looked
    wrong on screen.

    That matters more here than in most applications, because a Bento file is not
    a passive document: the page holding it also holds the live-session keys, the
    local autosave copy, and — where the browser allows it — permission to write
    back to the file on disk. Anything running inside the page inherits all of it.

    Every path that turns author content into a page is now sanitised: the
    renderer, the still image written for file-manager thumbnails, and the PDF
    export. The iOS host no longer trusts a filename a document supplies, blob
    fetches verify what they received, and new password-protected files use a
    stronger key derivation.

    Two exports were also leaking. "Copy document JSON" carried the live
    room's private keys — while suggesting you paste the result into an AI chat —
    and "Save as template…" wrote readable content out of a password-protected
    deck. A third case kept a key in an invite copy that should not have had one.
    All three now strip, through one list in one place rather than three
    independent decisions.

    If you have already shared a live deck — its JSON, or the file itself, to
    a chat, a ticket or an agent — updating does not retract that. Use Share →
    Rotate keys
    , which mints a new room and revokes the old one, then re-share
    the new copy. If you published a template made from a password-protected
    deck, treat its contents as disclosed: rotation cannot take back what the
    template already wrote in the clear.

    Found by auditing this repository rather than by a report, with an
    independent adversarial review on each round, and every fix was checked to
    fail against the previous build before being kept. The collaboration relay is
    deliberately not part of this release — a relay deployment cannot be
    undone by a file update, so it ships separately once its own regression is
    resolved.

  • A dark interface, if you want one. About → Appearance offers Match my
    system, Light or Dark. It follows your machine by default and changes as your
    machine does, so a laptop that dims at sunset takes the editor with it.

    Your deck does not invert. Dark dims the chrome around the slide; the
    slide itself stays exactly as authored, because its background is your data
    and someone proofing at midnight still needs to see what will be projected.
    The presenter window stays dark in both themes — you present in a dark room.

    The theme is a viewer preference, stored on your machine and never written
    into the file, so it never travels to whoever you send a deck to. Same rule
    the interface language and reduced motion already follow.

  • Hide a slide from the show. Toggle Hide slide in the Slide panel and it
    stays in the deck, fully editable, but drops out of the walk: arrow keys pass
    over it, PDF export leaves it out, and it is never picked as the file's
    thumbnail. An element link still reaches it, which is the point — backup
    numbers, an appendix, the detail slide you only open if somebody asks.

    Hidden slides do not take a page number, so {{page}}/{{pages}} stay
    contiguous for the audience: the same rule interactive states already follow,
    rather than a second one to remember. If you prefer the office-suite
    behaviour, where a hidden slide keeps its number so the visible ones do not
    renumber while you toggle slides during rehearsal, turn on Number hidden
    slides
    under Slideshow.

    The sidebar shows what the audience would count — a hidden slide's number is
    struck through, or replaced by a dash when it has none — because a slide you
    have forgotten you hid is a slide you find out about mid-presentation.

  • A deck that is being shared now says so before an agent reads it. A file
    with live collaboration switched on carries the keys to its own session —
    that is what makes sharing work without accounts, and it means anything
    receiving the file receives the room: a chat, a ticket, an agent harness.
    Nothing about a document looks like a credential, so this was easy to do by
    accident.

    The agent guide and the packaged skill now open by checking for it and
    saying so, and window.bento.validate() reports it as
    collab-secrets-present — only when private key material is actually there,
    so a read-only copy stays quiet. Removing the keys afterwards does not
    retract them; if a shared deck has already gone somewhere, Share → Rotate
    keys
    is the remedy.

  • Fix: a live session could crash when two people created the same element at
    the same moment.
    Sharing an element id across slides is the morph idiom —
    it is what id continuity is for — so two collaborators inserting one
    concurrently is ordinary, not a collision. If one copy carried a property the
    other did not (a shadow, a gradient fill, an outline, a group, a link), the
    replica receiving the other's insert threw and the session stopped. Nothing
    was lost from the file; the tab simply stopped keeping up. Same one-line
    defect as the two before it in this engine — a debug string built eagerly
    around a value that can legitimately be absent — and it is now pinned by a
    test with a deterministic trigger rather than left to a random rig's depth.

  • Fix: the end of the toolbar could be cut off the right edge. Between
    roughly 1200 and 1250 pixels wide, the buttons on the right ran past the
    window while their labels were still showing — the bar collapsed to icons at
    1200px, but it actually needed 1250px to fit. A fixed width was never going
    to be right, because the same buttons need a different amount of room
    depending on browser zoom, system text size, the language the interface is
    in, and whether the update chip is showing. The bar now measures itself and
    steps down through its tiers until it fits, whatever is in it.

  • Fix: on a narrow window, the ⋯ menu could not be clicked. With the
    properties panel open, the menu opened and drew in full, but every click on
    it landed on the panel behind instead. The toolbar sits in its own painting
    layer, and that layer was ranked below the panel — so nothing the menu itself
    could do would bring it forward. The toolbar now sits above the panels, where
    a menu that escapes it belongs.

  • Fix: choosing a custom slide size now reveals its width and height. The
    page-size picker rebuilt the properties panel before recording any custom
    state, so a preset-sized deck immediately snapped back to its preset and the
    two inputs never appeared. Custom mode now reveals the existing controls
    without changing the document until a dimension is actually edited.

  • Fix: the toolbar keeps its height as you resize the window. Narrowing
    past 760px used to shave 4px off it and then, below 700px, add 14px back for
    touch-sized buttons — so the bar shrank and then grew while a window was
    being dragged. It now narrows horizontally only, which is where the room was
    needed anyway, and has two heights with a reason each: normal, and taller on
    a phone where every button is a 44px target.

bento/slides v1.0.16

Choose a tag to compare

@nyblnet nyblnet released this 03 Aug 16:47
27bce23

Download the single file below and open it in any modern browser — it's the document, the viewer and the editor in one. Shipped files self-update through the signed release channel.

  • Fix: the slide could open off-centre, pushed to one side and clipped.
    Most likely on a deck whose page is larger than the default — a 1600×900 deck
    outgrows the editing canvas at zoom levels where a 1280×720 one still fits.
    The canvas gained room to pan past the slide's edges in 1.0.14, and turning
    that room on moved the slide within the scrollable area without moving the
    view with it, so you were left looking at the empty margin beside your slide.
    Clicking the zoom percentage snapped it back, because that was the one action
    that re-centred. The view now stays put across any re-layout.

bento/slides v1.0.15

Choose a tag to compare

@nyblnet nyblnet released this 03 Aug 00:29
073928c

Download the single file below and open it in any modern browser — it's the document, the viewer and the editor in one. Shipped files self-update through the signed release channel.

  • Fix: removing a formatting option no longer disconnects the people you are
    working with.
    While a live session was running, taking something away
    switching a gradient fill back to solid, turning an outline off, ungrouping,
    unlinking a chart from its table, clearing a click target — crashed everyone
    else's copy of the deck. The person doing it saw nothing wrong; their
    collaborators' sessions stopped applying changes.

    Removing a property is sent as an instruction with no value attached, and one
    line of diagnostic code assumed a value was always there. Adding things was
    always safe, which is why this survived: the convergence tests only ever
    added, so an op that takes a property away had never once occurred in 45,000
    checks. They generate removals now.

  • "Save a copy…" and share exports remember their own folder. The save
    picker used one identity for every kind of save, so it opened wherever you
    last put a view-only copy even when you were saving your working file.
    In-place saves, copies and share exports now each remember their own last
    location.

    Underneath, this makes the intent of a save visible to anything hosting
    Bento — tray/ios, and browser hosts — which previously could not tell ⌘S
    from "Save a copy…" at all, because both arrived with identical arguments.

  • Fix: the topbar came back in the wrong order after the window narrowed and
    widened again.
    Below 700px the bar folds its buttons into two menus, and
    unfolding put them back by a rule rather than by memory — everything except
    Redo went into the right-hand group, immediately before Format. So Comment
    migrated out of the insert tools it belongs to, and Save ended up sitting
    after Help. Each button now returns to the group it was authored into, in the
    order the bar was built with.

  • Fix: a deck opens where the browser refuses it storage. With site data
    blocked, inside some embedded webviews, or in any sandboxed frame, a Bento
    file showed "This file could not start" and nothing else — because reading
    the localStorage property (not calling a method on it, merely reading it)
    throws in those contexts, and the very first thing the app did was read your
    saved language. One unreadable preference cost you the whole document.

    Preferences now fall back to their defaults instead: the deck opens and
    behaves as it would for a first-time visitor. Anything you change during the
    session works normally; it just is not remembered.

bento/slides v1.0.14

Choose a tag to compare

@nyblnet nyblnet released this 02 Aug 15:41
94e064f

Download the single file below and open it in any modern browser — it's the document, the viewer and the editor in one. Shipped files self-update through the signed release channel.

  • Pan the canvas by dragging, and past the slide's edges. The scrollbars
    were the only way to move a zoomed slide, which puts the control at the edge
    of the screen while the work is in the middle of it. Hold space and drag
    to pan — the gesture nearly every canvas tool uses — or drag with the middle
    mouse button if yours has one. On a trackpad a two-finger scroll already
    panned once you were zoomed in, and still does.

    Scrolling also used to stop dead at the slide's edges, so at high zoom a
    corner element could never be moved off the corner of the screen to work on
    it. There is now half a screen of room beyond every edge once you zoom past
    fit — enough for any point on the slide to reach the middle — and none at all
    while the whole slide fits, so a view that needs no scrollbars still has
    none. Asked for by gcgbarbosa.

  • Fit a text box to its text, in one click. A box that is too short lets its
    content spill over whatever sits below it, and one that is too tall throws off
    its alignment against everything beside it — neither is visible in the numbers.
    The Typography panel now has a button that sets the box to exactly the height
    its text needs, and tells you what that is before you press it.

    Underneath is window.bento.measure(), which answers the question the format
    could not: how tall is this string at this width, in this font? Ask it with a
    spec and you can size a box before creating the element, which is what turns
    generating a deck from guess-then-correct into laying it out right the first
    time. Requested by thinkbig1979.

  • Entrances and count-ups now run on morph slides. Both were skipped
    wholesale on any slide reached by transition:"morph", which the authoring
    guide actively encourages — so a headline statistic rendered as a static
    number, and an element told to sweep in from the right got a small upward
    nudge instead.

    The rule is now per element. One that morphs in from the previous slide is
    already in motion and still ignores both. One that is new to the slide has
    nothing to fight, so it counts up, and enters the way you asked — direction,
    duration and order included. Elements with no fx.enter keep the automatic
    fade-and-rise, so nothing changes in a deck that did not ask for it.

  • Fix: the built-in layouts fit the slide. They were drawn for a 1600×900
    stage while the default deck is 1280×720, so applying Title put the title
    box 160 px off the right edge and Title + content overflowed the bottom by
    88 px. They are now scaled to the deck's own page size, which also makes them
    correct for the custom sizes the slide panel offers.

  • Check a deck for what the runtime silently swallows. Almost everything
    that goes wrong in a generated deck fails quietly: a typo'd property is
    ignored, a dash-march loop on a solid stroke animates nothing, a typeface
    the file never carried falls back to something else, and text overflows its
    box while the JSON looks perfect. window.bento.validate() reports all of it
    in one structured pass, including text overflow measured against the real
    renderer. It only reads — it never changes the document.

    Its first run found dead configuration in our own starter deck: three charts
    carrying a chart option the renderer has never read, and two entrance
    animations that could never play. Requested by thinkbig1979.

  • Fix: two gallery templates asked for a typeface they did not carry. The
    Orbital and Pixel Picnic templates set their text in Instrument Sans but
    embedded no font at all, so every viewer without that typeface installed
    silently got Helvetica Neue instead. They now carry the face — and only the
    face they use, rather than every font the gallery has. The failure was
    invisible to us for the worst possible reason: whoever builds a template is
    the person most likely to have its typeface installed.

  • The agent authoring guide describes what the runtime actually does.
    agents.md gained the download URL, the real fx.loop parameters (and the
    strokeStyle a dash-march needs to be visible), the chart option keys
    charts-lite honours, morphId, layouts and role, column arithmetic for the
    1280×720 canvas, and an accurate account of embedded fonts. Every gap here
    was found by an agent authoring a deck from the guide alone, and every one of
    them failed silently. Reported in detail by thinkbig1979.

bento/slides v1.0.13

Choose a tag to compare

@nyblnet nyblnet released this 02 Aug 00:24
aa6baef

Download the single file below and open it in any modern browser — it's the document, the viewer and the editor in one. Shipped files self-update through the signed release channel.

  • Fix: fade, slide and zoom transitions animate again. They had been
    instant cuts. Reveal only mounts slides within viewDistance, which was set
    to 1 — so the slide being moved to was not in the page, and a CSS
    transition had nothing to animate into. Morph was unaffected, because that
    is Bento's own animation rather than Reveal's. Found and fixed by James
    London.

  • Copy and paste keeps embedded typefaces intact. Pasting elements into
    another deck used to lose their embedded font entirely, and pasting slides
    carried every face in the source deck while omitting the bytes they pointed
    at. Both now carry exactly the faces in use, and a name collision keeps the
    recipient's own bytes. Fixed by Kushida.

  • Update notes now cover every version you skipped. The About dialog
    described only the newest release, so upgrading across two versions told you
    nothing about the one in between — and 1.0.12 was barely a day old when this
    release became necessary. It now spans the releases you missed.

bento/slides v1.0.12

Choose a tag to compare

@nyblnet nyblnet released this 01 Aug 22:08
fb9ecb5

Download the single file below and open it in any modern browser — it's the document, the viewer and the editor in one. Shipped files self-update through the signed release channel.

  • A laser pointer while you present. Press L in the slideshow and the
    cursor becomes a red dot trailing a short comet tail, for pointing at the
    thing you are talking about. Press L again to put it away. It is presenter
    equipment, not deck content: nothing about it is written into the file, so a
    deck you point at is byte-identical to one you did not.

  • Decks thumbnail properly on iPhone and iPad. 1.0.11 taught files to draw
    a picture of page one in Finder, and it worked everywhere except the platform
    most likely to need it — iOS renders neither a page's JavaScript nor its
    <noscript>, so a deck in Files stayed the same dark box. The preview is now
    ordinary markup followed by a script that removes it before the browser paints
    a frame, which the thumbnailer keeps and every reader never sees. Existing
    decks pick this up the next time you save.

  • Count-up numbers keep their thousands separators. A number written
    1,234 counted up to 1.234 and stayed wrong once the animation finished;
    1,234,567 became 1.2340000. Numbers now settle exactly as you typed them,
    in your own convention — 1,234.5 and 1.234,5 both survive, and a sentence
    ending in a number keeps its full stop.

  • The tab tells you which file you are editing. A deck's title and its file
    name drift apart constantly — rename the deck and the file on disk keeps its
    old name — and only one of them answers what does ⌘S overwrite? The tab and
    a small chip beside the title now show the file, whenever the two differ.

  • Save offers the file you are looking at. Opening Q3-board.bento.html
    and pressing ⌘S used to propose saving Bento_Slides_Showcase.bento.html
    the name was built from the deck's title, so an ordinary save quietly
    suggested a second file beside the real one. It now offers the file you
    actually opened. (Exports — share copies, templates — still name themselves;
    those are deliberately new files.)

  • Drop a deck onto an open editor to switch to it. With a deck already open,
    dragging another .bento.html in from Finder opens it in place of the current
    one. On Chrome and Edge it arrives with permission to write back, so ⌘S saves
    it without a dialog — which a deck opened by double-clicking cannot do, since
    the browser gives such a page no way to write to its own file.

  • Release notes in the About dialog get room to be read. An available
    update is now one card — version, what changed, and the two ways to take it —
    and the notes are a real list inside their own scroll region rather than a
    140px porthole in a dialog that was itself scrolling. The dialog is 440px
    wide instead of 360 (capped to the viewport, so a 375px phone keeps its
    gutters), which is enough that the five bullets a release carries fit whole
    at any normal window height.

  • Turkmen, taking the language packs to 22. Contributed and reviewed by a
    native speaker (Mekan Soltanov), and the only pack currently complete against
    the whole interface. Install it from the globe menu → Manage languages.

  • Save a copy, set a password or reach version history from a phone. The
    Save button's caret does not fit beside a 44px target, which left every file
    operation behind it unreachable on a phone — save a copy, duplicate as a new
    deck, the password actions, version history and the JSON round-trip. They now
    sit at the bottom of the ⋯ menu.

  • Fix: the current slide's thumbnail stays visible. Walking a long deck with
    the arrow keys scrolled the canvas but not the sidebar, so the highlighted
    thumbnail wandered off-screen. Contributed by Yishen Tu.

  • Fix: the auto-save tip pointed at the wrong menu. It said version history
    lived in About; it moved to the Save menu several releases ago.

bento/slides v1.0.11

Choose a tag to compare

@nyblnet nyblnet released this 27 Jul 08:25
b61580f

Download the single file below and open it in any modern browser — it's the document, the viewer and the editor in one. Shipped files self-update through the signed release channel.

  • LaTeX maths in any text box, rendered as MathML. Type $E=mc^2$ and it
    renders as a formula — $$…$$ for a display equation on its own line. The
    document stores exactly what you typed, so a deck with maths still opens in
    an older copy of Bento: you'll see the plain $E=mc^2$ rather than a broken
    slide.

  • Symbol-level formula morphing. On a morph transition, a term that
    crosses the equals sign is seen to travel there instead of the whole
    formula crossfading. Give the element the same id on both slides and $a + b = c$ becomes $a = c - b$ with the b moving across. The starter deck
    demonstrates it.

  • Twenty-one installable language packs, each hash-signed. The globe menu
    gains Manage languages… — install a language from the release channel or
    remove one you don't need. Arabic, Hebrew, Hindi, Korean, Russian,
    Ukrainian, Vietnamese and fourteen others are available without adding a
    byte to files that don't use them. Each pack's fingerprint is signed
    alongside the release, so installing a language is verified exactly like an
    update.

    Your choice lives in the browser, never in the document — a deck written in
    Tokyo opens in French chrome for a French reader, and the deck itself is
    unchanged either way.

  • The editor is usable at 402px — the topbar folds instead of overflowing.
    The toolbar used to need about 680px of a 402px screen: it ran off the edge,
    took the Save button with it, and because nothing clipped it, swiping the
    toolbar dragged the whole canvas sideways. On a phone it now folds into two
    menus — + for inserting and ⋯ for everything occasional — leaving slides,
    insert, undo, format, save and more, at proper touch size. The side panels
    slide over the canvas instead of squeezing it, so the slide you're editing
    is no longer the smallest thing on screen. Nothing changes on a laptop.

    Known gap: the save-as menu (copy, new deck, template, password) doesn't fit
    on a phone yet and is unreachable there for now.

  • Decks carry a page-one preview, so Finder and Files thumbnail them
    properly.
    Every Bento file used to thumbnail as the same dark box, because
    thumbnails are drawn without running a page's JavaScript and, until Bento
    boots, every deck genuinely is the same bytes plus the same boot splash.
    Saving now writes a still picture of page one into the file, which is what
    those previews draw instead — so a folder of decks is finally something you
    can read. It costs about 14 KB on a typical deck (under 2% of the file),
    never more than 64 KB: a page with a big photograph keeps its layout and its
    words and drops the photograph rather than carrying it twice. Nothing
    changes when you open a deck normally — the picture is written for software
    that can't run the file, and is never shown to a reader.

    A password-protected deck gets no preview at all. A readable picture of
    the title page sitting next to the encrypted document would give away exactly
    what the password is there to protect, so encrypted decks keep the plain dark
    thumbnail — and a deck that had a preview loses it the moment you set a
    password.

  • Deck-level toggles for slide number, progress bar and corner arrows.
    They live in a new Slideshow section of the slide panel. They're
    deck-wide and travel in the file, so a deck you hand to someone else
    presents the way you designed it.

  • Release notes ride in the signed manifest, shown before and after
    updating.
    When an update is available the About dialog now lists the
    headlines from that release inline, instead of only a version number and a
    link off to GitHub — and because they travel in the signed manifest, they
    can't be tampered with. After the update lands and you reload, Bento says
    once which version you're now on, with a link to the full notes. It only
    says it if you actually upgraded: someone opening a deck you sent them never
    sees it.

  • A Screen Wake Lock is held for the length of a presentation. Phones and
    laptops used to dim and lock partway through a talk if you left a slide up
    for a couple of minutes. Bento now holds the screen on for the length of the
    show and lets go when you exit — and takes the lock again if you switch away
    and come back.

  • Honest save messaging where the File System Access API is missing. Those
    browsers (and every browser on iPhone and iPad) can't rewrite a file in
    place — Bento hands back an updated copy instead. The editor used to say the
    opposite in its tooltips and only admit it in a passing message after the
    first save. It now says what will actually happen before any work is at
    stake, once per browser, and the Save button describes the real behaviour.

    Those browsers also now show that your work is being kept safe. Bento has
    always snapshotted the deck into the browser as you edit and offered it back
    when you reopen, but on Safari and Firefox nothing ever said so — the only
    signal was an amber dot that never cleared. It now reports when it last
    backed up, while still showing the file itself as out of date, because it is.
    (A password-protected deck is never snapshotted, so it stays quiet rather
    than promise a safety net it doesn't have.)

  • The update save dialog pre-fills the open file's own name. It offers the
    name of the deck you have open rather than one derived from its title — so a
    file called Q3-board.bento.html no longer offers to save itself as
    Q3_Board_Review.bento.html. The backup written alongside an in-place
    update follows the same name. Where the save dialog opens is set by the
    browser and can't be pointed at a folder by the page, but it now remembers
    the last place you saved, so the second update onwards starts in the right
    directory.

  • The starter deck is called “Bento Slides Showcase” again. The lowercase
    rebrand swept the deck's own title along with the app's, but a deck title is
    a document name — it shows in the window title and becomes the suggested
    filename — so it reads better in title case. The bento/slides wordmark is
    unchanged.

  • Charts honour axis and legend text styles, and measure CJK correctly.
    The lightweight chart renderer applies configured font sizes and weights to
    axis labels and legends, respects legend spacing and placement, and measures
    CJK legend text correctly so localized series names no longer overlap.

  • Fix: a formula you opened but didn't change now redraws when you finish.
    Editing a formula (or a {{page}}-style field) shows its raw source; leaving
    without typing anything used to leave that source on the slide until
    something else happened to repaint.

  • Fix: Reveal's scroll view no longer activates below 435px. Below about
    435px wide, the presentation was quietly switching to a scrolling reading
    layout instead of a slideshow — so swipe navigation stopped working and
    hidden interactive slides became scrollable content.

  • Fix: saves no longer accumulate an uncompressed copy of the stylesheet.
    Each save wrote a fresh, uncompressed copy of the app's stylesheet into the
    file, which the next save then copied again — a deck saved ten times carried
    ten of them and had put on a megabyte for nothing. The stylesheet belongs in
    the compressed runtime payload, where it takes 27 KB and is written exactly
    once; a file that already accumulated copies drops all of them the next time
    you save it.

  • Fix: the cartesian grid reserves room for the legend's real height.
    Charts that don't set their own margins now leave room for the legend at
    whatever size it's set to, instead of assuming the default one.

  • Fix: starter-deck axis labels back above the WCAG AA contrast floor.
    They were being drawn half-transparent against a dark panel.

  • Fix: the About dialog's update section no longer overlaps the controls
    below.
    Once an update was found, the extra heading and buttons collapsed
    into a sliver and drew on top of the auto-check and offline switches. It now
    takes the room it needs and the dialog scrolls.

bento/slides v1.0.10

Choose a tag to compare

@nyblnet nyblnet released this 25 Jul 22:54
030a81a

Download the single file below and open it in any modern browser — it's the document, the viewer and the editor in one. Shipped files self-update through the signed release channel.

  • Table defaults can follow the deck theme. A deck may now define table
    colours, typography, spacing, borders, and corner radius in theme.table.
    Tables inserted from the toolbar inherit those defaults, and switching back
    from the Minimal preset restores the themed header treatment. Existing decks
    without table defaults keep the same built-in appearance.

  • Fix: deleting a slide could empty the deck entirely. The "a deck needs at
    least one slide" guard counted the slides you had rather than the ones that
    would be left — and deleting a slide also deletes its interactive states. So
    a deck holding one slide plus one state of it passed the check, lost both,
    and left the editor with nothing to show. Deletion then appeared stuck. The
    guard now checks what survives.

  • Fix: setting a morph id by hand did nothing. Pairing two elements across
    slides via the Morph panel silently failed — the element matched up but never
    animated, so morphing only worked through the duplicate-a-slide route. Both
    ways work now.

  • Photos and video now work in live collaboration. This finishes what
    1.0.9 could only warn you about: previously anything past about half a
    megabyte was simply too big to send to your collaborators. Now a large image
    is uploaded once, encrypted, and everyone else pulls it down in the
    background — so you can drop a full-resolution photo into a shared deck the
    same way you would in a deck you're editing alone. A 3MB photo used to
    produce a message the relay refused outright; it now travels as a reference
    of about a hundred bytes.

    As always the server never sees the picture: it is encrypted before it
    leaves your machine, and the relay stores bytes it cannot read. Collaborators
    on the same computer don't involve the relay at all. Small images are still
    carried inside the document exactly as before, so nothing changes for
    ordinary decks, and a self-hosted relay without blob storage keeps working —
    it just falls back to the old inline-only behaviour.

bento/slides v1.0.9

Choose a tag to compare

@nyblnet nyblnet released this 25 Jul 09:32

Download the single file below and open it in any modern browser — it's the document, the viewer and the editor in one. Shipped files self-update through the signed release channel.

Fixed

  • Large text could silently kill live collaboration. A text box of ~200KB or more crashed the change-differ, and because that runs on every edit, nothing synced afterwards — on any slide, with no error shown. Collaboration simply stopped.
  • A failed diff can no longer wedge a session. It now recovers by sending a full snapshot, so a future bug of that shape degrades instead of silently breaking.
  • Adding a large image while collaborating failed silently. Images over ~½ MB were dropped on the way to collaborators — they saw a broken picture while your editor retried forever. Bento now tells you when something is too large to share live, once, instead of looping. The limit itself roughly doubled.

Changed

  • The wordmark is lowercasebento/slides, matching what the file has always called itself internally. The website now uses the bento/. platform mark.
  • Relay hardening: per-room storage caps and byte-based rate limits, and refusals now say why instead of dropping frames silently.

Under the hood

Shared machinery — saving, encryption, auto-save, updates, animation, charts, translations — moved into a common kernel, so the apps coming next use exactly the same document lifecycle as slides. No behaviour change.

Known limitation: media larger than ~1MB still can't be added during a live session. Media already in the file works normally. The fix needs content-addressed blob storage and is next up.