v0.9.0
Perth v0.9.0
Perth.jl v0.9.0 β finding your place, and keeping it
A minor bump because two things you can see change on their own: the zoom no longer sends you back to today, and the interface is monospaced throughout. No API was removed and every 0.8 project is read exactly as it was β the two new fields default to nothing. Full changelog: https://github.com/dantebertuzzi/Perth.jl/blob/main/CHANGELOG.md
Added
-
What you folded survives the reload. Collapsing the phases is how you work a plan of a hundred-odd tasks, and it was thrown away on every reload, every trip to the kanban and back, every project switch. It now lives in the browser next to the zoom, the theme and the lanes β one key per project, because "Ana" folded here does not mean "Ana" folded in the next plan, and ids that no longer exist are dropped on the way back in.
-
Walking the plan from the keyboard. The selection existed but only the mouse moved it β and moving the selection is the thing you do most.
β/βwalk the visible rows (a folded phase counts as one row, not as the twenty it hides),βcloses a summary and, on a leaf, goes up to its parent,βopens it,Home/Endjump to the ends,PageUp/PageDownmove a screenful. Ctrl+wheel zooms, keeping the date under the pointer where it is. -
Marked months. A whole month painted in the ruler at the top of the chart (File β Marked monthsβ¦, or
add_month_mark!). Where a marked day draws a line across the plan, a marked month colours the strip that already writes its name β said once, at the top, instead of repeated on every task inside it. The name is optional here, unlike a marked day: the cell already says which month it is, so the colour alone is allowed to be the whole message. It never touches the body of the chart β shading the work behind a stretch is what aBandis for. -
Markdown in a task's notes, and a note you can actually read. The red dot said "this task has a note" and the text arrived in a native browser tooltip: no formatting, no decent line breaks, gone if the pointer wavers. The dot now opens the note, in a popover that renders
**bold**,*italic*,`code`,~~strike~~and links β the same one-line subset the kanban card speaks, which moved toshared/inline.jsso two screens with the same meaning stop having two parsers.The formatting stops at the notes, on purpose. A task's name sorts its siblings, is what the search matches, and is what goes into CSV, iCalendar,
.perth.jl, the PNG and the REPL β markdown there would either leak as punctuation into all of them or need a stripping step remembered in eight places, and the day one is forgotten an asterisk lands in a client's spreadsheet. -
A test that measures what the screen is doing. In a real browser (jsdom has no layout engine, and without real text widths there is no collision to find) it seeds a project built to collide and crosses the box of every text, shape and line against every other, at four zooms, both densities, with lanes and with the critical path on. Both layers were checked against a deliberately sabotaged build.
Changed
-
Changing the zoom no longer teleports you to today. It ended in
scrollToToday()every time: you would scroll out to November, zoom in to read the detail, and land back on today. Now the date you were looking at β the middle of the screen, or the pointer when the zoom comes from the wheel β stays where it is, the way any map behaves. Going back to today is still one key away: that is whatTand the Today button are for. -
The interface is monospaced end to end. The menubar, the table headers and the numbers already were; task names and bar labels were not, which made a name look like it came from a different application than the header right above it.
Fixed
-
Nothing on the chart is written on top of anything else any more. The audit found 11 to 17 collisions per view β worst at month zoom, present in every density β nearly all of one family: the sideways names of calendar bands and marked days written across task names, and the full-height lines (today, marked day, band edge) drawn straight through them. Lines now open a gap wherever they cross a label, and sideways names look for a free stretch instead of always starting at the top, which is where almost every plan has its first bars. Measured after: zero, in every configuration.
-
A programmatic scroll no longer leaves the ruler behind. Mirroring the day ruler waited for the scroll event, which arrives later; in between, header and chart disagreed, and a click on the ruler in that window marked a day other than the one under the finger.
-
The link dot no longer eats the first letter of the task's name, and an error Perth raised for a human to read no longer arrives as "internal error" β a project on a business-day calendar opened without
using BusinessDaysfailed every calendar-aware route with a generic 500, hiding the one sentence that solved it. -
The Share dialog no longer breaks on a payload without
view_urls, and the four languages are level again: every string the interface can show is translated in all of them.
Merged pull requests:
- feat: navegar pelo plano β dobras que ficam, teclado, e zoom que nΓ£o β¦ (#8) (@dantebertuzzi)
- feat: markdown na nota da tarefa, e uma nota que dΓ‘ para ler (#9) (@dantebertuzzi)
- feat: meses marcados e markdown nas notas (0.9.0) (#10) (@dantebertuzzi)