Repository navigation
oneloop 0.1.0-rc.6
Pre-release
Pre-release
·
15 commits
to main
since this release
The sixth release candidate. It adds task checklists, shows descriptions as
formatted Markdown, keeps the project and the Board's filters in the address,
and puts moved and new tasks at the top of their column. It also makes the web
app faster on slow networks and fixes many bugs. Read the upgrade notes before
you upgrade; if you upgrade from 0.1.0-rc.4, read those of 0.1.0-rc.5 too.
Upgrade notes
- Stop oneloop, install the new version, and run
oneloop db migrate --backup-dir <directory>. It saves a backup first, then
upgrades the database from schema 6, which 0.1.0-rc.4 and 0.1.0-rc.5 use,
to schema 8. Older versions refuse a schema 8 database. To go back to one,
restore the backup thatdb migratemade. - If you upgrade from 0.1.0-rc.4, also follow the upgrade notes of
0.1.0-rc.5: Knowledge folders have size limits now, and some MCP errors and
read_poolcursors changed. - Browser tabs that are open during the upgrade still run the old version.
They show oneloop was updated, but reload by themselves only where
Reload after updates was on, so ask people to reload them. From this
version on, every tab reloads by itself at a safe moment, and the setting is
gone from the account menu. - The addresses of the Board, the Roadmap, Knowledge and
Settings now name the project, and the Board's address holds its
filters. Older bookmarks and links still work: they open the project you
last switched to in that browser, or else your first project. Links to a
task don't change. - In MCP,
task.movewithoutposition,beforeTaskIdorafterTaskIdnow
puts the task at the top of its new column, and new tasks, also from
pool.promote, start at the top of Planning. Before, most went to the
bottom. Pass a place to put a task anywhere else. A task'spositionin
reads can now be below zero; use it only to order a column. - In MCP,
read_activitywith a task that doesn't exist now fails with
not_found. Before, it returned an empty page. - AI assistants that are already connected don't need to connect again. The
new checklist operations need Create and manage tasks and Pool items, and
task.checklist.deletealso needs delete access, astask.deletedoes.
Added
- A task's description now shows as formatted Markdown, as people and AI
assistants write it: headings, lists, tables, code and more. Task keys of
your projects, such asWEB-042, link to their tasks. Click the text, or
choose Edit, to change it; leaving the field, Esc or Ctrl+Enter
(Cmd+Enter on macOS) saves it and shows it formatted again. An epic's
description shows formatted too. - Ctrl+S (Cmd+S on macOS) now saves the field you are typing in at once and
keeps you there. In a dialog, or while you edit a comment, it does what the
main button does. It never sends a new comment, and it no longer downloads
the page. - In MCP,
create_attachment_uploadcan replace a file that you uploaded:
pass its ID asreplacesAttachmentId. When the upload completes, the new
file takes the old one's place, and the old one is deleted as
delete_attachmentdeletes it. This needs no destructive access, so an
assistant can update its own documents without asking you to delete the old
version. If the upload fails, the old file stays. - Tasks have a Checklist: short steps that you add, tick, rename, move and
remove on the task's page. A Board card shows how many steps are done, such
as 2/5, in green once all are. In MCP,task.createtakes the steps in
checklist,read_taskreturns them,search_tasksandread_epiccount
them, andtask.checklist.add,task.checklist.update,
task.checklist.moveandtask.checklist.deletechange them.
Changed
- oneloop now compresses the web app's files with gzip, so a first visit
downloads about 60% less and the app opens faster on slow networks. A
reverse proxy no longer needs to compress them, and the nginx example no
longer does. - The app asks for all of its start-up scripts at once, instead of one level
of imports at a time, so it opens faster on slow networks. - The app reads your workspace while it checks your session, instead of
after, so every visit opens one round trip sooner. - When a Board tab shows again, reconnects, or hears of a change to an epic,
track, milestone or member, it now reads the Board once instead of twice. - A tab no longer checks your access every 30 seconds while it is hidden or
gets live updates. Live updates already report lost access, and a hidden
tab refreshes when it shows again. - The web app does less work on slow computers and phones. Turning off a
Board filter or emptying the search no longer draws the whole page again,
so the cards move smoothly into place. A change to one card, a drop or a
filter no longer redraws every loaded card, and dragging a card is
smoother. Opening a task draws its page two times instead of three, and a
change from another tab to the open task reads its comments and activity
once instead of twice. - A Board search, a Board filter or a project switch that takes more than a
moment now dims the page until the result arrives. Before, a slow search
looked as if nothing happened. - The Board, its counts and, in MCP,
search_taskswithout a status no
longer slow down on an instance with many tasks where no task was ever
blocked. Before, counting the blocked tasks could read every task of the
instance, which took tens of milliseconds at 100,000 tasks. - An open connection, such as the one each browser tab keeps for live
updates, now uses about 20 KB of server memory. Before, each one kept its
own copy of the routes, about 300 KB, so 100 open tabs took 30 MB. - After many writes in a short time, such as an import through MCP, the first
write a day later no longer holds up all other writes while it removes the
expired retry keys. Database maintenance now removes them, a batch at a
time. Before, 50,000 expired keys held up writes for a few hundred
milliseconds. - Uploads, and the storage check that runs every minute, now count stored
files and unfinished uploads but not image thumbnails, so they no longer
slow down as an instance collects images. Thumbnails go when files and
unfinished uploads reach 80% of the storage limit. Clean up now still
counts them, as the Storage page does. - oneloop now looks for files that nothing refers to, such as files that a
crash left behind, once an hour instead of every minute. - Image thumbnails, and files and avatars that the browser already has, no
longer wait for other changes to finish, such as a Knowledge sync. An
attachment'slastAccessedAtnow changes only while the attachment is
temporary, and the 24 hours of a temporary attachment start again when
someone marks it temporary. - Large Knowledge files download faster.
- The address now names the project on the Board, the Roadmap,
Knowledge and Settings, and the Board's address also holds its
filters and search. A refresh, a bookmark or a link opens the same project
and filters, switching projects is a step in the browser's history, and
Back leaves the Board instead of undoing filters. An address without a
project, such as an older bookmark, opens the project you last switched to in
this browser. Signing out clears the project and filters from the tab's
address, so the next person to sign in there starts from their own. Before, a
refresh opened the first project by name and lost the filters. - Every open tab now reloads by itself after an upgrade, when nothing you typed
would be lost, nothing such as a dialog, a menu or an Undo offer is open,
and the tab is hidden or unused for five minutes. Reload after updates is
gone from the account menu. The bar says that the page reloads by itself and
offers Reload now, and after such a reload the page says "oneloop was
updated". - Markdown previews and the Knowledge base now load the math renderer, about
80 KB, only for text with math. Before, any$, such as in a price or a
shell variable, loaded it. - A task that changes status without a place now goes to the top of its new
column, Done too: with Move to, the task's Status, Unblock and
complete, ortask.movein MCP withoutposition,beforeTaskIdor
afterTaskId. New tasks, also ones made from a Pool idea, start at the top
of Planning. Before, most of these went to the bottom, where a long
column hid them until Load more, and Done mixed both orders. A drag,
Move up and Move down still put a task exactly there, and
Newest first still lists Done by completion time. A task at the top
takes a position above the first one, which leaves the other tasks where
they are, so a task'spositionin MCP reads can be below zero. Undo
puts a deleted task back at the same place in its column, also when a new
task took its place; before, it went to the end. - In MCP, every tool that names a task now also accepts its key, such as
WEB-042:read_comments,read_activity,discussion.comment.create,
task.deleteand every othertask.*operation, also inbeforeTaskIdand
afterTaskId. Moving a blocked task to Done now fails with a message that
namestask.unblock-and-complete, andset_attachment_temporaryis marked
as safe to repeat. - Newest first is now a small sort button at the top of Done, so
Done's header is as tall as the others and its cards line up with theirs.
The button shows your choice at once, and the page dims while a slow Board
read loads the new order.
Fixed
- In MCP,
read_activitywith a task key, or with a task that doesn't exist,
returned an empty page. It now returns the task's activity, or fails with
not_found. - A Mermaid diagram in a Markdown preview no longer fails when its renderer
takes more than 30 seconds to download, as on a slow mobile connection.
When the renderer can't load, the preview now says to check the
connection, instead of blaming the diagram's syntax. - Long comments on a task page no longer fold to nothing and grow back when
the page draws again, such as after a change from another tab or a saved
field. The page also stays at the comment you were reading. Before, it
could jump away by several comments. - The Board now shows its loading placeholder while its cards load, when you
open it from another page, such as the Roadmap or a task you opened from a
link. Before, it said "No tasks yet" and offered Create task, or showed
only that task, until the cards arrived. - Closing a file preview now gives focus back to the file name that opened
it, also when the task's attachments changed while the preview showed.
Before, keyboard users landed at the top of the page. - When several sign-in limits apply at once, "Try again in …" and the
Retry-Afterheader now give the longest wait. Before, they could give a
shorter one, and the next attempt was refused again. - After oneloop could not be reached for a while, a tab without live updates,
such as one whose updates a newer tab took over, again checks every 30
seconds that you still have access. Before, it stopped checking until you
reloaded the page or signed in again, so it didn't notice when you lost
access to a project. - A task page no longer stays at "Loading activity…" when the task loads
faster than its comments, as could happen when you opened it from the
Board. Before, the comments and activity appeared only when something
else drew the page again. - Creating a task, deleting one or undoing that, and turning a Pool item into
a task no longer empty the Board in a project that isn't the first by
name. Before, the Board said "No tasks yet" until something else loaded it
again. The new card also shows one request sooner. - After you follow a link into another project, such as a Knowledge link,
its Board shows the project's cards. Before, it said "No tasks yet",
because the first project's tracks and epics stayed loaded. - The account menu shows only the version, such as
v0.1.0-rc.6. Before, it
also showed the commit the build came from, which made the menu scroll
sideways in release images./healthzandoneloop --versionstill give
the commit. - After Load more on the Board, typing in the search and erasing it
quickly, or turning a filter on and off before its cards arrive, keeps every
loaded card in view. Before, each column fell back to its first 50 cards with
no Load more, while its count still showed more. - A link to a oneloop page in a Markdown preview or a Knowledge file, such as
[the task](#/task/WEB-042)or the page's full address, now opens that
page. Before, it went nowhere. - Code blocks in the Knowledge base now have a visible background in the dark
theme. Before, it matched the page. - When someone else changes the open task, such as a teammate, another tab or
an AI assistant, its status in the page header and in Status, its title
and its description now show at once, also while you type in another of its
fields. Before, they changed only after you left the task's fields. - Opening a Markdown file with a very long run of backticks (
`) or
tildes (~) no longer freezes the tab. Before, such a 200 KB file could
freeze it for more than a minute. - A click on a task's file, or on browse files, now works also while the
task changes, such as right after you edit one of its fields. Before, the
change drew the files again under the pointer, and the click did nothing. - After you move a file with the arrow keys, focus now stays on it, so you
can move it again. Before, it fell to the page once oneloop saved the new
order. - When you turn Newest first on or off in one tab, the browser's other
Board tabs keep showing live changes, in the order they show, and use
the new choice when they load again. Before, they stopped showing changes
until they read the Board again.
Distribution
- Docker:
ghcr.io/code19m/oneloop:0.1.0-rc.6, for linux/amd64 and
linux/arm64 - From source:
cargo install --git https://github.com/code19m/oneloop --tag v0.1.0-rc.6 --locked