Repository navigation
2.9.2
- 976a918 chore: bump version to 2.9.2
- 9426663 chore: raise combined build budget to 10852456/505014 bytes: 2.9.2: changelog tests independent of load, deleting or moving a connection's root folder stops sync
- c8d47a5 test(sync): give the source-tree conformance walks a stated timeout so a busy machine cannot fail them
- af17f17 test(sync): register the Excalidraw migrator and adapter as non-sync filesystem users
- ce1c0ab fix(sync): stop a connection when its root folder is deleted, moved or renamed, resume only on explicit Follow, and recover server renames without moving local files
- 98e0a7c test(release): the changelog boundary tests do the git work once and allow real git processes their time
- 9af9f64 chore: raise combined build budget to 10802371/505014 bytes: 2.9.2: Excalidraw drawings migrate to canvases
- ff08fbd docs(canvas): describe the Excalidraw migration commands in the agent reference
- defc51d test(canvas): the drawing migration e2e closes the canvases it opened and restores both layouts
- 9be0a0c test(canvas): the Excalidraw migration e2e probes return JSON
- f919247 feat(canvas): migrating an Excalidraw drawing rewrites its links and embeds across the vault to the new canvas
- 9c59765 fix(canvas): a failed Excalidraw migration removes only the pictures it created
- 5d6a0d5 feat(canvas): migrate Excalidraw drawings through tools and vault commands
- a5cb69c feat(canvas): expose Excalidraw migration through tools and vault commands
- c59d5f0 fix(canvas): an Excalidraw picture id never shapes a folder, a compressed drawing is bounded, and its texts are read line by line
- 02d152e feat(canvas): convert Excalidraw drawings into Abele canvases, counting what does not carry over
- 559fe04 chore: raise combined build budget to 10772103/504832 bytes: 2.9.2: sync server 0.3.3, folders as items, Unicode-safe names, link guard, safe recovery
- d6972a4 fix(sync): batch parent identity refreshes so a small pull stays within its bridge bound and dismiss native sheets after phone downloads
- 92e7c9e fix(sync): validate the folder root chain once per connection and skip redundant sibling stats
- ffac203 fix(sync): validate the folder connection root's symlink chain without opening its parents to the scoped adapter
- ac97537 test(sync): wait for the external embed preview button before suspending the server
- efd859f feat(sync): run on abele-sync 0.3.3 with directory items, Unicode-safe inventory, symlink chain guard and restore fencing
- 933a420 chore: raise combined build budget to 10723720/504832 bytes: 2.9.2: agent canvas writes after reformat or rename
- 0a7e8cc fix(canvas): an agent's canvas write is no longer refused as stale after the file is only reformatted or another file is renamed
- 00a11f7 chore: raise combined build budget to 10723147/504832 bytes: 2.9.2: note card panels on canvas
- 9977ba9 fix(canvas): links inside a note card with panels keep modified clicks and hover previews
- 726a677 test(canvas): the note panels e2e waits for the card's menu to close and says what it saw when a wait runs out
- 23093ec fix(canvas): a card's panel count opens its note in live preview at the panel
- ce3fc64 fix(canvas): note card panels e2e cleans up its folder and checks the panels the card really shows
- cdc76f1 test(canvas): the note panels e2e reaches Obsidian through the app and returns JSON
- 38beafe feat(canvas): a note card on a canvas shows Abele's header and footer panels, full when zoomed in and as compact counts when zoomed out
- b3c3d1c feat(canvas): a note card can show Abele's header and footer, whole when large on the screen, as a row of codes when small, turned on per card or for the canvas
- fdb980c chore: raise combined build budget to 10716086/503543 bytes: 2.9.2: CLI reply test independent of load, node file menu test on a phone
- 1062960 test(node): the file menu check waits for the phone sheet to settle and expects it at the bottom on a phone
- a4f5c46 fix(node): a node file's line menu opens at the pointer, or under the tapped line on a phone
- d0b8234 test(e2e): the CLI reply deadline test waits briefly for the killed child to disappear
- fd232e2 chore: raise combined build budget to 10715697/503543 bytes: 2.9.2: sync on the phone
- 8307765 fix(sync): stream large pulls in bounded chunks on iOS with one-write small pulls and crash-safe recovery
- 3e51884 chore: raise combined build budget to 10689255/503543 bytes: 2.9.2: canvas and presentation rename, attach to chat, new-note folder
- 5c3b405 test: the Obsidian mock's item view has onOpen and addAction like the real one
- 9ee6b71 fix(canvas): attaching the canvas as a picture has its own icon beside attaching it to a chat
- 57db82c fix(canvas): new canvases and presentations go to the new-note folder, and a presentation renames from its header and attaches to a chat
- e5e5d53 fix(canvas): a canvas can be renamed from its header and attached to a chat like a note
- 72f4fbf chore: raise combined build budget to 10686517/503543 bytes: 2.9.2: overdue hidden while dragging, indent guides in code blocks
- 0f3140c test(ui): measure guide bounds from each block content box
- 837943a fix(ui): toggle reading code guides through live body state
- b8129e8 test(ui): await persisted guide settings and report off-state facts
- 64e582b fix(ui): preserve native code indentation when painting guides
- 8834d66 test(ui): isolate guide settings and avoid covered caret click targets
- b33d1be test(ui): diagnose code guide gates and native click positions
- e9ae6bd fix(ui): refresh code guides on layout and delegate rich copy per window
- aea9dcd fix(ui): follow native guide visibility and preserve code copy without extra rows
- a53b703 fix(ui): discover native code lines and measure guide spacing
- c0bf9d6 fix(ui): settle code guides before paint and preserve native block height
- f732fc9 fix(ui): preserve code selection and refresh guides when blocks open
- 4e29849 feat(ui): integrate code block indentation guides with reading and editing
- 08a82c2 feat(ui): indent guides in code blocks, a faint line at each indent level in Obsidian's own list-guide colour, the step read from the block, kept through blank lines, none where tabs and spaces mix; a wrapped line goes on at its indent; reading mode splits each line into its own span with the highlighting and text unchanged, Live Preview lines take the same look; off with Obsidian's indentation guides
- 2dd11c0 fix(tasks): the Overdue button hides while a task is dragged, since the past days are shown then
- 94aae64 chore: raise combined build budget to 10674385/501774 bytes: 2.9.2: debugger back from a run, restart and reattach, values and sources
- 3f89b12 fix(debugger): the scope tree keeps its open rows, a stack row opens its source line, and the program's last exception is shown when it ends
- b747d0a fix(debugger): on a phone the session opens its source before the debugger drawer, and the journey e2e waits for the new session
- b0cb0d2 fix(debugger): back to the debugger from a run and a breakpoint row opens its source line
- ef530d1 fix(debugger): back to the debugger from a run, restart after the program ends and reattach after a disconnect, with a live journey test
- 164beb0 chore: raise combined build budget to 10670064/501628 bytes: 2.9.2: Paste menu in the message field on a phone, small calendars show the year
- 5cfc860 fix(calendar): the year calendar uses relative sizes and its hover title keeps its place
- ab447c7 feat(calendar): the small calendars in the sidebar and a note's footer show the whole year and remember it
- bd605ab test(chat): tap-area probes sample visible points inside the field's rounded corners
- 0fcf440 fix(chat): the whole message field is editable on a phone, so a tap anywhere in it brings the system Paste menu
- 44c0ef1 chore: raise combined build budget to 10666359/499725 bytes: 2.9.2: presentation full screen keys
- 2da82f9 fix(slides): arrows, Space, Page Up and Down change slides in a fullscreen presentation again and Esc leaves it
- 588b548 chore: raise combined build budget to 10666083/499725 bytes: 2.9.2: shared folder scope
- 478ed2e test(sync): keep the bounded 50 MiB scoped transfer test independent of machine load
- c116ffe fix(sync): recover only each connection's own journal records and surface startup reasons
- 8235875 fix(sync): keep each folder connection's own private staging working inside the boundary
- a5d5f66 fix(sync): confine folder connections to their scope from startup through recovery
- e6f4a10 fix(sync): keep scoped discovery and path checks on the exact filesystem entry
- 9709258 fix(sync): pin folder roots and reject foreign scope paths
- b1e231c chore: raise combined build budget to 10650894/499725 bytes: 2.9.2: unit tests independent of machine load, call stack names, canvas note links
- f3c7450 test(canvas): the note card link probe returns JSON to the e2e
- a32f8da test(canvas): the note card link e2e reuses the visible canvas tab and restores it
- 4d1ce74 fix(canvas): note card hover previews use the typed popover parent
- 465607a fix(canvas): links in a note card open like Obsidian's own, with a new tab on Mod or middle click, hover previews and external URLs
- ff7c5c0 fix(debugger): the call stack shows readable function names with muted locations, raw names in a tooltip and internal frames counted
- 3774393 test: harness, render, script and sync fixture tests no longer depend on machine speed
- a893ec5 test: three unit tests no longer fail on a busy machine, with what they prove unchanged
- 0c29b90 chore: raise combined build budget to 10648032/498727 bytes: 2.9.2: node path e2e, HTTP request view
- 82eb6ca test(catalogue): the design catalogue lists the code field and shows it among the controls
- 953082c feat(http): a request's body is written in the plugin's code editor, its folds, brackets and comment keys shared with the code view, Mod+Enter sends; on a phone method, address and Send stay one line and each header one row
- ad97df7 fix(http): an answer's headers stand as names beside wrapping values, empty parts of a request start folded with the add line on the heading's edge, the waiting line sits level with the first heading, and a divider sets the request's width beside its answer
- fec1bc9 fix(node): a quote attached to a node chat stays in its draft and keeps the chat's own target
- 73e1d7c test(node): the node path e2e reads node chats from their sidebar tabs
- 289b0c4 fix(node): a paired connection reads the welcome after sign-in with the normal record limit, so a node with many capabilities still connects
- f6ee6e8 test(tasks): the timeline edge scrolling test runs on fake timers and frames instead of wall-clock sleeps
- 67774c6 test(e2e): importing the phone helpers creates no shot folder until a picture is written
- 20be137 chore: raise combined build budget to 10645651/496384 bytes: 2.9.2: finance charts resize and legend, Agents list watches paired nodes
- 73e8553 fix(node): a node paired from an invitation is watched by the Agents list at once, so its working sessions show
- 9452086 test(node): the Agents dialog e2e records which service, rows and client the dialog really reads
- d0eddf1 fix(node): the Agents list refreshes on session activity, so a session that starts working shows as busy
- ea1373f test(node): the node list e2e records the dialog, catalogue, connection and turn state when a busy session does not show
- b145d3f fix(node): read the daemon's node_version so a session binds its target and guards its turn before input is sent
- 1ba051c test(agents): the Agents list test waits for the busy session the node reports
- 96ad518 test(agents): the quiet node session in the Agents list test gets its own worktree
- 140235a fix(agents): load node sessions and derive offline status from the connection
- 3049287 test(finance): the phone case measures the chart in a content tab after the sidebar drawers close
- 662c982 test(finance): the chart resize e2e seeds a rendered chart before it toggles the sidebars
- 5941e20 fix(finance): charts redraw at their real size after sidebars open or close, and a right click on a legend currency shows only it, again shows all
- f59a76f chore: raise combined build budget to 10638199/496384 bytes: 2.9.2: days set apart in the dates sidebar
- a2e47fa style(timeline): a day after another starts at a hairline, twice as far from the day before as its rows are apart
- dad57e1 chore: raise combined build budget to 10638199/496098 bytes: 2.9.2: map embed in Obsidian's look
- 1b95d09 style(map): the folded source glyph is a square plate as tall as the scale, and the controls keep the same distance from the map's edge as the scale and the glyph
- 9380329 feat(map): the map style setting shows the picked style on a still picture under its row, drawn once scrolled into view
- f6e3874 style(map): the scale sits on a plate like the controls and the attribution starts folded everywhere
- 65a1e06 feat(maps): a map's glyphs stand in Obsidian Canvas's control column, its pins and places speak in a popover of Obsidian's look, the scale and the source are quiet facts, and the settings pick its style from the free ones, the theme's or one's own
- 6fd281b chore: raise combined build budget to 10633221/492537 bytes: 2.9.2: agent chat inset like the finance panels
- 9d56b6c style(chat): the chat stands as far from the pane's edges as the money and time panels, its header, messages and field on one edge
- 96351b6 chore: raise combined build budget to 10633221/492357 bytes: 2.9.2: breakpoint click toggles
- efc5a84 fix(debugger): a click on a breakpoint toggles it off, also on a resolved line or during a quick double click
- 53abf5c chore: raise combined build budget to 10633047/492357 bytes: 2.9.2: canvas tools for agents
- 82786af feat(canvas): agents can measure rendered cards, fit them to content, align and distribute, route connections with bends and labels, use documented styles and check several regions in one picture
- f93df84 chore: raise combined build budget to 10618296/492173 bytes: 2.9.2: label filter counts
- b5fc4d4 fix(tasks): with a label filter on, the counts beside a task list count only the tasks it shows
- 1c00c12 chore: raise combined build budget to 10618210/492173 bytes: 2.9.2: attach selection, stylus smoothing, Access tab, canvas picker, node syntax highlighting
- 1dd5e77 fix(node): highlight file and diff contents with Obsidian syntax colours
- a55a840 fix(canvas): a note picked while our own save or a reload moved the canvas on is inserted into the current canvas of the same file instead of being refused
- 901a0af test(settings): remove an empty placeholder test file
- 8742d61 perf(settings): the Access tab opens without blocking: group counts yield between batches, the scope index waits until it is used, and tool groups start collapsed
- c3252dd feat(ink): closely spaced stylus samples lose sensor steps and hand jitter within a quarter pixel, keeping corners, ends, pressure and sparse points exact
- dfb8f7f feat(chat): Attach to a chat with a selection attaches a link to the selected lines
- 084f1f6 chore: raise combined build budget to 10611385/492049 bytes: 2.9.2: canvas menu dismiss, chat spacing
- ae6359c fix(chat): tighter spacing between a turn's tool runs, its answer and the next question
- 8335fd5 fix(canvas): a canvas menu closes on an outside press, Esc, pan, zoom or another menu, and that press does nothing else
- 7ba7c27 fix(canvas): a canvas menu closes on an outside click or tap, Esc, pan, zoom or another menu, and that click does nothing else
- 4466fea chore: raise combined build budget to 10610760/491659 bytes: 2.9.2: node chat like the regular chat, zen mode
- 1dd62f8 test(ui): the zen e2e closes the leaves it opened and restores the desktop and mobile layouts
- d54e320 test(ui): the zen e2e reaches the app's own modules instead of importing obsidian into the test
- ea40715 feat(ui): zen mode for any view, from the command palette or the view menu, with a centred page column whose width travels and canvases edge to edge
- cb12bf2 test(node): the offline drafts test picks Folders and worktrees from the open chat menu instead of dismissing it with a synthetic Escape
- 0430f8c fix(node): node chat e2e probes parse, and the node tab title uses the shared tab's width
- 9195b3d feat(node): a node chat opens in the sidebar and reads like the regular chat, with service records and empty thoughts left out of the transcript
- a8ecdcf feat(node): a new chat offers Claude Code, Codex, pi and the node's ACP agents, those it cannot start now shown unavailable with why
- 82ebd4a feat(node): every agent's chat is drawn from the node's shared session updates: words, reasoning, plan, tool calls with their diffs and state, notices, context and compaction, with the agent's own «/» commands and the change a permission question asks about
- 1526f7b build(node): vendor the unreleased node client and protocol with session updates, the session command list and ACP agents
- 0f4216c chore: raise combined build budget to 10574030/486474 bytes: 2.9.2: external files card and embeds
- 5bf46fb docs(files): describe external file palette commands
- 2cd76e0 test(sync): close all root file cards after fixture teardown
- fa5d051 fix(files): preserve offline availability during sync retries
- 76dce5e test(sync): detach deferred external file cards during teardown
- 05e39ab fix(sync): accept offloaded metadata before preparing file content
- 37b5ef6 fix(files): complete nested embeds before native reading render
- ab744cf test(sync): wait for visible embeds and draw a distinct preview
- 59bf399 fix(files): finish owned embeds and use bundled file icons
- f3375d9 fix(sync): preserve offload manager identity across pool resets
- b180de7 fix(files): keep the node file icons and fake the startup registrations the external file actions use
- 99bd941 refactor(files): mount external file tab and embeds through mountKit
- 5f78530 test(sync): cover external file cards and embeds live
- add794a fix(files): retain newer version notice after stub refresh
- ec3155e feat(files): show offloaded file cards and note embeds
- fe66747 feat(files): expose offload metadata and cancellable transfer progress
- 282b500 fix(files): reject conflicting parents and verify displaced recovery copies
- d883ad6 feat(sync): add approved external file card and embed components
- 07a21d2 fix(sync): distinguish routine retention from recovery copies
- 87a93f8 fix(sync): record media types in external file projections
- 1f2090b fix(files): reserve offloaded destinations for tool writes
- 4ba7145 fix(sync): let device pins revoke in-flight offloading
- e8bfb3d feat(files): hydrate offloaded content in readers and agent tools
- fbb0a02 fix(sync): preserve device pins across connection replacement
- d27b890 feat(sync): add confirmed external file actions and device rules
SHA-256
f2ba87f81de52cc11cd98d0c50295add76c433d820685a8e8f08657035ef33b3 main.js
6069d7f549e05d25d52e68d0816c8209242a0827c4e52ac96ef11047c46a46e3 styles.css
20f97578874420ea416dd9d597e8c01c7356aa3a14050b9fa53d83286fd16e29 manifest.json
Verify build provenance: gh attestation verify main.js --repo dudaanton/abele-obsidian-plugin