Skip to content

v0.8.4

Choose a tag to compare

@github-actions github-actions released this 15 Aug 20:51
· 47 commits to main since this release

Perth v0.8.4

Diff since v0.8.3

Perth.jl v0.8.4 β€” Perth and your editor

Nothing breaks: no API change, and a project written by any 0.8 is read exactly as it was. Full changelog: https://github.com/dantebertuzzi/Perth.jl/blob/main/CHANGELOG.md

Added

  • The mirrored .perth.jl file now flows back. Mirroring already went one way: every save rewrote the file at file_path. Edit that file in your editor and the browser follows on its own β€” no REPL round trip, and no more losing your edit to the next save from the UI. Keep the file open in VS Code, keep the chart open in the browser, and let the two agree. Perth.run(watch = false) turns it off.

    The reload is deliberately conservative: our own writes are recognised by content rather than by timestamp, so mirroring cannot loop; a file caught half-written (editors save in stages) fails to parse and is ignored until the next event; the file carries content, never identity, so a pasted file cannot hijack another project's id, creation time or mirror path; and the project object is mutated in place rather than replaced, so a p = project("obra") you are holding in the REPL stays valid instead of silently detaching.

  • Find a task by name in the gantt β€” the box next to Highlight, or /, the same key the kanban uses. Non-matching tasks dim, in the table and in the chart. Accents and case do not matter: typing integracao finds IntegraΓ§Γ£o por partes, which is the point in a project with a hundred tasks β€” needing the right accent means needing to already know what you are looking for.

    Enter walks the matches, one at a time, wrapping at the end; Shift+Enter walks back. The counter reads position over total, like a find box in an editor (4/13), and each step selects the task and brings its bar into view β€” a task lives in time, not in the list, so scrolling the rows alone would light up a name whose bar sits months off screen. Search and Highlight compose, so you can filter to one person and search within that.

  • using Perth offers the doors, and you pick one with the arrows. The package exports the data API, but Perth.run() and Perth.kanban() are not exported (run would clash with Base.run), so nothing on screen pointed at them. Loading the package in an interactive terminal draws them as a list: ↑↓ to move, Enter to open, any other key to dismiss. Perth.menu() brings it back later.

    The list gives up on its own after six seconds, and it only takes the keyboard when the keyboard is idle. If anything is already feeding the session β€” VS Code's Execute File in REPL, julia -i behind a pipe, a batch include β€” those bytes are the caller's code, not keystrokes, and reading the first one corrupts it. Non-interactive sessions print nothing and wait for nothing; PERTH_SPLASH=0 silences it entirely.

Fixed

  • The test suite fails on a file with mixed line endings. The repository is CRLF, and any tool that reads and rewrites a file in text mode converts it silently β€” the diff becomes the whole file, or half of it turns LF and nobody notices. file is no guard: it reports "CRLF line terminators" with dozens of LF lines in the middle. Counting bytes is.