Skip to content

Releases: PeckBoard/peckboard

0.0.155

Choose a tag to compare

@github-actions github-actions released this 01 Aug 14:46
plugin: blocking-thread dispatch, usage stats, provider-instance isol…

0.0.154

Choose a tag to compare

@github-actions github-actions released this 31 Jul 04:09
Default model setting replaces the Auto pseudo-model

Settings gains a Default Model (core.settings/app `default_model`,
GET/PUT /api/settings/default-model). Dispatch resolves an unset or
legacy auto/default model to it, keeping effort-based routing only as
the fallback when nothing is configured.

ModelPicker no longer injects an Auto row: the empty option renders
only where a defaultLabel is passed. New sessions, cards, reviews and
repeating tasks preselect the configured default; the session toolbar
shows the default's name for unpinned sessions; project modals keep an
explicit "App default" inherit option.

Covered by dispatch_resolves_unset_model_to_default_model_setting plus
updated model-picker-search / overlay-primitives / doc-review e2e (model
option testids are provider-prefixed, e.g. claude:claude-opus-4-8).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

0.0.153

Choose a tag to compare

@github-actions github-actions released this 30 Jul 20:15
mcp oauth: configurable redirect broker for providers that pin redire…

0.0.152

Choose a tag to compare

@github-actions github-actions released this 30 Jul 19:36
Queue: durable FIFO that never interrupts the agent + per-message Sen…

0.0.151

Choose a tag to compare

@github-actions github-actions released this 30 Jul 17:12
Docs site: Document Review page + landing refresh

New review.html covering the annotate/run/apply loop, versions and
history, the repo-to-worktree-to-file wizard, and the GitHub PR link.
The landing gains a Review feature row with a captured screenshot, a
Doc review marquee entry, and an also-in-the-box grid for the features
the page never mentioned (usage dashboard, repeating tasks, multi-user
access, plans, reports, provider-agnostic tool rows). The screenshots
harness grows a document-review.png capture; docs e2e covers the new
page and the landing's new anatomy.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

0.0.150

Choose a tag to compare

@github-actions github-actions released this 30 Jul 15:35
Render documents, not their source, on every markdown surface

A review showed a ```mermaid fence as its own source, an unhighlighted
code block, and an image at whatever width the file happened to carry.
Chat and the plan view had diagrams; the review screen never got them,
and a report rendered one way inside a review and another in its own
viewer.

Every markdown surface now renders the same document the same way:
diagrams, highlighted fenced code, images capped to the text column.
In the review pane a diagram REPLACES its <pre> rather than nesting in
one, so it keeps the block's line anchor and is annotatable like any
other passage.

Two rendering bugs surfaced doing it, both from the same root cause --
this bundle strips the <style> mermaid embeds in its SVG:

- Without the natural-width cap that <style> carries, `width: 100%`
  stretched a three-node flowchart across a full report column and
  scaled its text with it. MermaidBlock re-applies the cap from the
  viewBox.
- Mermaid sizes each label from a hidden measurement on <body>, and
  that same <style> pins the rendered label to match. Left to inherit
  the surrounding column, labels outgrew their boxes and <foreignObject>
  clipped the last glyph -- "Draft" came out as "Draf". The stylesheet
  restates the body typography.

The highlight.js theme moves out of ChatView into markdownHighlight,
next to the plugin that emits the spans it colours: every other surface
was getting highlighted code only as long as the chat happened to be in
the module graph. Mermaid's own styles move to MermaidBlock.css for the
same reason. PlanView drops its private copy of the mermaid component
map.

Relative image paths in a reviewed doc still show alt text -- serving
them needs an fs-jailed asset route, which this does not add.

0.0.149

Choose a tag to compare

@github-actions github-actions released this 29 Jul 18:35
Review: keep annotation anchors on their text, and widen what a revie…

0.0.148

Choose a tag to compare

@github-actions github-actions released this 29 Jul 16:06
Doc review boot recovery must not block startup

0.0.147 looked hung on boot: resuming an interrupted review pass was
awaited in main BEFORE the HTTP listener bound, and dispatching a turn
goes through the provider's send path — cursor's `--resume` sat there for
120 seconds, so the server took two minutes to answer anything.

Recovery now runs in a detached task alongside startup, and the "resuming
…" line is logged before the dispatch rather than after it, so a slow
provider spawn reads as a slow provider spawn instead of a hang.

Verified against a data dir holding a review stuck in `running`: the
listener binds in ~0.5s and the pass resumes right after.

0.0.147

Choose a tag to compare

@github-actions github-actions released this 29 Jul 15:37
Review runs: stop them, narrate them, survive a restart

The review screen could start a pass but never end one. A run had no
stop button, the chat lane said nothing beyond "Working…", clearing the
annotation queue left the reviewer addressing annotations that no longer
existed, and a restart stranded the review on `running` forever — the
completion listener only sees turns the current process started, so
nothing was left to move it and Run pass stayed disabled.

- Stop: POST /api/doc-reviews/{id}/stop interrupts the session, dismisses
  the question a killed run leaves parked, logs the same `interrupt`
  event the sessions route logs, and hands `running`/`needs_input` back
  to `annotating`. Surfaced as Stop pass in the header and a Stop on the
  chat lane's working row.
- The working row now names the reviewer's open tool call and updates in
  place, so tool traffic never grows the feed.
- Deleting the last open annotation kills the annotation pass it emptied,
  identified by the turn text — a chat-lane turn is never collateral.
- Chatting on an approved review no longer drags it back through
  `running` → `annotating`; the conversation continues on the same
  session either way.
- Boot recovery (`resume_running_reviews`, called from main after the
  worker resume, so upgrades get it too via the self-update re-exec):
  a `running` review whose turn was genuinely in flight is re-dispatched
  verbatim on the same session with the document injection re-armed;
  anything else — session gone, turn already finished, user had hit Stop,
  dispatch that cannot start — is handed back to `annotating`.
  `needs_input` stays parked: answering it spawns the next turn itself.
- The mock reviewer gains `[mock:block]`, a run that parks until
  interrupted, so the e2e suite can drive all of this deterministically.

Tests: 6 boot-recovery cases, the resumed-pass kill regression, the
stop/kill/approved-chat cases, and three e2e scenarios. Verified against
a real restart: the pass resumes on the same session and the lane says
so.

0.0.146

Choose a tag to compare

@github-actions github-actions released this 29 Jul 13:43
review wizard: repo → worktree → file cascade

Scan every workspace folder's subfolders for git repos (new GET
/api/repos, no git binary needed) and offer each repo's worktrees —
main checkout, git-registered linked trees, and .peckboard/worktrees
card trees — all jailed to the folder. The wizard's Worktree source is
now three searchable dropdowns: Repo → Worktree → Document. Markdown
listing takes ?scope=<rel/dir> (legacy ?worktree=<id8> kept).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>