Repository navigation
oneloop 0.1.0-rc.7
Pre-release
Pre-release
·
6 commits
to main
since this release
The seventh release candidate. Every task is now on a track, and an epic is
optional. The Roadmap shows each track's work on its timeline: done work,
work in progress and plans with a deadline. The Roadmap keeps its scale in
the address, Sign out signs out every open tab, and many bugs are fixed.
Read the upgrade notes before you upgrade; if you upgrade from an older
release candidate, read the upgrade notes of each release after yours 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 to schema 10: from schema 8, which 0.1.0-rc.6 uses,
and in the same run from older schemas, such as schema 6 of 0.1.0-rc.4 and
0.1.0-rc.5. Older versions refuse a schema 10 database. To go back to one,
restore the backup thatdb migratemade. - Every task is now on a track, and an epic is optional. The upgrade puts
each task on its epic's track and keeps every task, epic and track. If you
made epics only to hold a track's tasks, you can delete them afterwards:
their tasks stay on their tracks, without an epic. - The upgrade also records when work started on each task in progress, in
review or done, from its history. A task in progress or in review whose
history doesn't show it takes the time of its last change. - Track descriptions are gone. The web app no longer showed them. In MCP,
track.createandtrack.updateno longer take adescription, and a call
that still sends one fails withvalidation_failed; track reads, such as
read_roadmap, no longer return one. - In MCP,
task.updatewith anepicIdon another track than the task's now
fails withvalidation_failed. Before, it moved the task to that epic and
its track. To do that now, send the epic'strackIdtoo. - The other MCP changes add to what clients send and read, so connected AI
assistants keep working. Tasks have atrackIdand astartedAt, and
epicIdis null for a task without an epic; existing tasks keep their
epics. A task created with only anepicIdstill goes on the epic's track.
epic.deletenow works on an epic with tasks, andtrack.deleteon a track
without tasks or epics. The new fields and filters are under Added.
Added
- In MCP,
list_projectsnames the task prefixes that each project had
before, inearlierPrefixes. Older tasks keep their keys with them. - A task can be on a track without an epic. In MCP,
task.createand
pool.promotetake atrackId, andtask.updatecan move a task to
another track or take it out of its epic withepicId: null. Task reads
havetrackId, andepicIdis null for a task without an epic. - The Board's epic filter offers No epic, and
search_tasksin MCP takes
epicIds: ["none"]. - Each task records when work on it started:
startedAtin MCP reads, the
time it first entered In Progress or In Review since it was last in
Planning. - Undo right after deleting an epic brings it back, with the tasks that
are still on its track without an epic. - New task, and Create task from the Pool, ask for a Track, and
their Epic is optional. Track starts filled in when oneloop can tell
where the task goes: the project's only track, the track the Board is
filtered to, or the track of the last task you created in the project in
that tab. Epic offers the open epics of that track, and choosing an epic
also chooses its track. A project without tracks offers Create track.
Before, New task asked for an epic. - A task's page shows its Track beside its Epic. Moving the task to
another track takes it out of its epic, and a note under Epic says why.
No epic takes a task out of its epic. - An epic's details on the Roadmap offer New task to people with the
Board permission, with the epic and its track filled in.
Changed
- The Roadmap now shows each track's tasks on its timeline instead of
epic bars: done work as dots on the day it was finished, work in progress
as thin bars from when it started to its deadline, and plans with a
deadline as rings. Late work shows in red with an error icon and blocked
work in amber. Each lane shows three tasks in progress at most, the late
and blocked first, and +N in progress lists the rest. Epics are boxes
around their work, milestones are cards above the lanes, and a track's name
says how many tasks it has in progress and planned. Overdue with a
number shows when tasks are late, and steps through them. Every task, epic
and milestone has the same details on hover and keyboard focus, and the
arrow keys move through a lane. Back from a task opened there puts focus
back where it was opened. Plans without a deadline stay on the Board. - The Roadmap opens at the scale that fits the recent work, and another
project opens at its own fit. Once you choose a scale, the address keeps it,
as the Board keeps its filters: a refresh, a bookmark, a link, Back and
Forward open the Roadmap at Weeks, Months or Quarters as it was.
After a free zoom, the address keeps the nearest scale. Changing the scale
adds no step to the browser's history, and signing out drops it. - The Roadmap loads the days around what it shows, and more days as you
scroll to them, and draws only what is near the view. Each day shows all of
its done work and plans at any scale. Where they are too close to tell
apart, the work of a few days becomes a number, whose list shows 50 tasks,
so steady work reads as a row of numbers across time. A plan's title that couldn't load says so, and
loads again by itself a little later, or at once when the connection comes
back. Overdue steps through the 20 longest overdue. A change made
elsewhere reads only what it changed, and a change to a track or milestone
reads no tasks. Its header no longer counts tracks, epics and milestones. - On a phone, each track's name on the Roadmap sits above its lane.
- An epic's details no longer say Ongoing: an epic without an end date
shows from when it runs. - Deleting an epic keeps its tasks on its track, without an epic. Before, an
epic with tasks couldn't be deleted. Delete epic says how many tasks
stay on its track, or that the epic just goes when it has none. - Moving an epic to another track moves its tasks with it, and Edit epic
says so. - A track can be deleted only when it has no tasks and no epics. Delete
track on the Roadmap now says so first, with how many tasks and epics
to move or delete, in the words the server uses when it refuses. Before, it
asked to confirm a delete that then failed. - A task's Epic offers the epics of the task's track. Choosing an epic on
a task's page puts the task on the epic's track, also when the epic moved
to another track meanwhile. In MCP, an epic on another track than the
task's is refused. - A Board card names the task's epic, or its track when it has no epic.
- The activity of a task says where it went: "moved the task to iOS", "added
the task to Payments v2" or "removed the task from Payments v2", instead of
"updated the epic". - Restoring a deleted task whose epic was deleted meanwhile brings it back on
its track without the epic. Before, it couldn't be restored. A task whose
track was deleted meanwhile can't be restored. - A track's ⋮ menu on the Roadmap now offers only Rename track and
Delete track. To move a track, drag its grip, or focus the grip and use
the arrow keys, Home and End. A dragged track now shows its name and a line
where it will land, as a checklist item or a file does. - A Board address with filters, as after a refresh or from a bookmark, now
loads with one request instead of two, so its cards show sooner. - A change to a task now loads only what it can change on the task's open
pages. Before, every change loaded the task's comments, activity and files
again. A change to its checklist loads only the task, and nothing in the tab
that made it. A new title, status or other field loads the task and its
activity. A comment loads the comments, and a change to the files loads the
files.
Fixed
- A busy server that turns some reads away no longer looks like a lost
connection. Before, the page then checked the connection, loaded everything
again and read once more, about every second, also in a hidden tab. Now the
page says it couldn't load or refresh, and tries again by itself after 5
seconds, then 15, then every minute, while the tab shows. A connection that
keeps coming back only to go again is checked less and less often. - The Board and the Roadmap load faster in a project with many
deleted tasks. - On a task's page, a Status that couldn't be saved, such as while
offline, now shows the saved status again. Before, it kept showing the
status you chose until the page was drawn again. - On a task's page, choosing a Status or Assignees after a change made
elsewhere, such as by a teammate, no longer says the task changed elsewhere
when the page already shows that change. When the task really did change
elsewhere, the question names the latest status, such as "In Progress",
instead of "progress", and the latest assignees, or "Nobody", instead of
their IDs. - A change made elsewhere while a task's Status list was open now shows
once the list closes. Before, it showed only after focus left the page. - Mark as done on an epic now counts all of its open tasks, not only those
the page had loaded. - On the Roadmap, today's label no longer shows over the column of track
names when you scroll past today. Milestone lines and today's line no longer
leave small marks on the column of track names either. - A change made elsewhere, such as in another tab, no longer takes focus off a
track's grip or ⋮ button on the Roadmap. Esc in a track's menu now
returns focus to its ⋮ button after such a change too. - A change made elsewhere while you drag a track no longer drops the drag. The
Roadmap shows the change when you let go. - While you drag a track, milestone lines and today's line no longer show
through its name. - A key on a track's grip while the last track move is still saving now says
so, instead of doing nothing. - The grip next to a track's name now shows keyboard focus at full strength.
Before, it was faint. - A track's grip and ⋮ on the Roadmap no longer cover the end of its
name. A long name ends with an ellipsis; its tip shows all of it, on hover
or, from its grip or ⋮, on keyboard focus. - Opening a task of another project just as a change made elsewhere reloaded
the page could leave the task loading, or show Access denied. The
reload now leaves the new page alone. - On a touch screen, a second finger now stops dragging a checklist item or a
file, as it does for a track. - Sign out now signs out your other open tabs in the browser at once. They
go straight to the sign-in page, without first saying that the session
ended. They forget their project, the Board's filters and open dialogs too,
so the next person who signs in there starts from their own project. A
session that ends by itself still keeps each tab's address. A tab that still
shows you after someone else signed in elsewhere signs out too, and leaves
their session alone. - Sign out now drops what you typed in its tab and didn't save, as its
question says, such as a task's title or description, a checklist item's
title, a comment or a Pool item. Before, it came back when you signed in
again there. Your other open tabs keep what you typed in them for your next
sign-in there, as when a session ends by itself: it comes back when you open
its page again. Only text in an open dialog goes with the dialog. - A Pool item still on its way when your session ended by itself was lost. It
now comes back in the Pool's field after you sign in again, as a comment
does. - Confirm your identity now closes when the session ends while it asks,
as when you sign out in another tab, so the sign-in page can be used at
once instead of after Cancel. - Creating a project, or losing access to the one on screen, now adds one step
to the browser's history, so Back returns to the page you were on. - Choosing another project on Page not found or Access denied now opens
that project's page of the same kind, such as its Knowledge, or else its
Board, and loads it with one request. - While another project's Roadmap loads, the sidebar's Board count
shows no number instead of 0. - Reload now reloads the tab once. On a slow network, switching to another
tab before the new page arrived made the tab start a second reload, and the
new page then said oneloop was updated. - Dragging selected text no longer causes an error in Firefox.
- A click on Back to Board, or on another control outside the task's
own fields, could do nothing when a change made elsewhere arrived just then
and drew the page while the button was pressed. The page now waits for the
press to end. - Focus stays on a file's name, Download, Delete, Temporary and its
other controls when the task's files are drawn again, such as after a move
or a change made elsewhere. When the file is deleted, focus goes to the same
control of the file in its place, and when an upload ends or is dismissed,
to the drop area. When an upload fails, focus on its Cancel goes to its
Retry, and back to Cancel when you retry. - Esc or Ctrl+Enter (Cmd+Enter on macOS) in an empty description now keeps
focus on its field, instead of losing it to the page. - A click on a task's description now puts the cursor where you clicked, and
a double-click selects the word you clicked, instead of the cursor going to
the end. - A footnote link in a description now brings its footnote into view, and the
footnote's back link returns to the reference. Before, it scrolled only the
description's own box, so the footnote could stay out of view. - Mermaid diagrams in descriptions and file previews now use the app's colors
in light and dark, as Knowledge already did. - When a task was moved, or put back with Undo, to a place in a column
with no room left between two cards, oneloop gave the column's cards new
positions, but open Boards, the one that made the move too, kept the old
ones and showed the task in the wrong place until the Board was read again.
Every open Board now shows the column's new order at once. - When a page loaded a change made elsewhere while you moved, added or
deleted something on it, such as a card on the Board, a track on the
Roadmap or an item in the Pool, it could show that as it was before your
change, until the page was read again. It now loads the change again once
yours is saved. - A new tab in a browser where someone else switched projects last loaded
its data twice, and when you couldn't open their project, the browser
console showed an error. It now loads once and opens the project its
address names, or else the one you switched to last, or else your first. - After you turned a Pool item into a task, or deleted a Pool item, a task,
an epic, a track or a milestone, your tab loaded the page's data a second
time when it heard of its own change. It now loads only what the change
needs; other open tabs still load it once. - When the server refused a checklist change, or found nothing to change, the
task's page was drawn again at once, even while you typed elsewhere on it.
The checklist is now put right in place, and what you type stays. - In MCP,
create_attachment_uploadwith areplacesAttachmentIdthat names
a file of another task failed withvalidation_failed, but with
not_foundfor an ID that names no file, so it told whether an ID exists.
Both now fail withnot_found. - After a project's task prefix changed, the keys of its older tasks, such as
OLD-012, stayed plain text in descriptions. They now link to their tasks. - Opening or changing a task, its comments, its activity or its files read
the instance's tasks one by one until it found the task, which made these
requests slow on large instances. They now find the task through its
index.
Distribution
- Docker:
ghcr.io/code19m/oneloop:0.1.0-rc.7, for linux/amd64 and
linux/arm64 - From source:
cargo install --git https://github.com/code19m/oneloop --tag v0.1.0-rc.7 --locked