Skip to content

Releases: protoLabsAI/portfolio-plugin

v0.14.7 — PM-side task cancel

Choose a tag to compare

@mabry1985 mabry1985 released this 03 Jul 03:31
6ec783a

Added

  • portfolio_cancel_feature — the PM can un-dispatch a task on a team board (#27). The PM could dispatch but never cancel; a stuck or duplicate task had no recovery from the PM side (Roxy's task_close failed with 'unknown issue' — no write path to the team's board). New tool POSTs to the team's project_board /features/{id}/cancel over the stored bearer, moving the feature to the terminal 'cancelled' lane. The managed repo + any PR are untouched. Pairs with the v0.14.6 dispatch dedup for real queue control. (#28)

v0.14.6 — dispatch dedup

Choose a tag to compare

@mabry1985 mabry1985 released this 03 Jul 03:21
2968975

Added

  • portfolio_dispatch refuses a same-title task already open on the board (#25). The PM had no guard against re-dispatching queued work, so duplicate tasks stacked up (surfaced by Roxy dispatching several 'Assess repo' tasks). Dispatch now reads the board first and skips a normalized-title match in an open lane (done/cancelled don't count), naming the existing feature; force=true dispatches a second copy anyway, and an unreadable board never blocks. (#26)

v0.14.5 — remove a dead ephemeral board from the dashboard

Choose a tag to compare

@mabry1985 mabry1985 released this 03 Jul 03:01
ec55c9d

Fixed

  • A dead ephemeral board can be removed from the dashboard (#23). When a spawned team's member dies (e.g. a host restart), its board card showed All connection attempts failed with no way to clear it — teardown refused (the team was already gone from the registry) and the only recourse was a console reload. Unreachable board cards now carry a Remove (✕) that drops the board from whatever store backs it (spawned team → teardown; remote → unregister; dead local member → stop + purge), idempotently. New POST /api/plugins/portfolio/forget + _forget_board. (#24)

v0.14.4 — spinup works on two-tier hosts (protoAgent ≥ 0.78)

Choose a tag to compare

@mabry1985 mabry1985 released this 03 Jul 00:33
a86fb05

Fixed

  • portfolio_spinup_team failed with Error binding repo into team config: ENOENT on every current host (#21). protoAgent ≥ 0.78 scaffolds the team workspace config at <ws>/config/langgraph-config.yaml (ADR 0065 two-tier paths); the bind step still read the pre-two-tier root location, the rollback purged the workspace, and the PM retried into a debugging spiral. The config path now resolves per host layout, with the legacy root as fallback. (#22)

v0.14.3 — readable dashboard fetch errors

Choose a tag to compare

@mabry1985 mabry1985 released this 02 Jul 19:17
dbb39ad

Fixed

  • Dashboard fetches surface readable errors instead of raw JSON-parse failures. Any transient non-JSON response (a fleet-proxy hiccup, a restarting member, an HTML error page) hit the 5-second poll as WebKit's SyntaxError: The string did not match the expected pattern. A JSON error body now surfaces its detail/error message, a non-JSON body its HTTP status — and the message self-clears on the next successful poll. The spinup drawer's second bare r.json() reuses the same helper. (#20)

v0.14.2 — protoAgent ≥ 0.77 compatibility (two-tier store paths)

Choose a tag to compare

@mabry1985 mabry1985 released this 02 Jul 07:46
91b2805

Fixed

  • Portfolio dashboard 500s on protoAgent ≥ 0.77 — the plugin still imported the legacy scope_leaf path knob, deleted in protoAgent 0.77 (protoAgent#1481, ADR 0065). Every data route (/api/plugins/portfolio/*) raised ImportError, surfacing in the console as SyntaxError: The string did not match the expected pattern (WebKit parsing the text/plain 500 body). PM data stores (portfolio_snapshot.json, portfolio_links.json, portfolio_teams.json) now resolve via the two-tier instance_paths().store() API, with a scope_leaf fallback on pre-0.77 hosts — min_protoagent_version stays 0.42.0. (#19)

v0.13.1 — isolated board db path fix

Choose a tag to compare

@mabry1985 mabry1985 released this 22 Jun 05:32
c0f6e6b

The isolated board db now lives at /.beads/board.db (beads requires a .beads/ component in the path). 90 tests.

v0.13.0 — isolated team board

Choose a tag to compare

@mabry1985 mabry1985 released this 22 Jun 05:29
81a3cae

A spawned team's board is now isolated by default (its own scoped beads DB, not the repo's committed .beads) — so a team on a repo with an existing board never resumes/pollutes it, only works what the PM dispatches. shared_board=True opts back into the repo's board. No projectBoard-plugin change (it already honors db_path). 90 tests.

v0.12.0 — prebuilt archetypes + branch freshness

Choose a tag to compare

@mabry1985 mabry1985 released this 22 Jun 04:38
9cb8a21

Spin up a team for a frequently-worked repo with one word via portfolio.team_archetypes presets (portfolio_spinup_team(archetype=...) + a dashboard dropdown), and the repo is freshened (git fetch + fast-forward the default branch) on spawn so the team never works on stale code. 87 tests.

v0.11.0 — spin up team button

Choose a tag to compare

@mabry1985 mabry1985 released this 22 Jun 04:15
4033f21

The Portfolio dashboard gains a + Team button: a form (name, repo, gate, onboard/auto-dispose) that POSTs to a new gated /spinup route and refreshes the grid. Extracted _spinup_team() shared by the tool + the button. 77 tests.