Skip to content

oneloop 0.1.0-rc.7

Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 19 Oct 06:31
· 6 commits to main since this release
f35d325

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 that db migrate made.
  • 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.create and track.update no longer take a description, and a call
    that still sends one fails with validation_failed; track reads, such as
    read_roadmap, no longer return one.
  • In MCP, task.update with an epicId on another track than the task's now
    fails with validation_failed. Before, it moved the task to that epic and
    its track. To do that now, send the epic's trackId too.
  • The other MCP changes add to what clients send and read, so connected AI
    assistants keep working. Tasks have a trackId and a startedAt, and
    epicId is null for a task without an epic; existing tasks keep their
    epics. A task created with only an epicId still goes on the epic's track.
    epic.delete now works on an epic with tasks, and track.delete on a track
    without tasks or epics. The new fields and filters are under Added.

Added

  • In MCP, list_projects names the task prefixes that each project had
    before, in earlierPrefixes. Older tasks keep their keys with them.
  • A task can be on a track without an epic. In MCP, task.create and
    pool.promote take a trackId, and task.update can move a task to
    another track or take it out of its epic with epicId: null. Task reads
    have trackId, and epicId is null for a task without an epic.
  • The Board's epic filter offers No epic, and search_tasks in MCP takes
    epicIds: ["none"].
  • Each task records when work on it started: startedAt in 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_upload with a replacesAttachmentId that names
    a file of another task failed with validation_failed, but with
    not_found for an ID that names no file, so it told whether an ID exists.
    Both now fail with not_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