Skip to content
Hussein Jarrar edited this page Sep 12, 2026 · 2 revisions

v0.4.0

9 changes · 4 Bugfixes, 2 New Features, 3 Chores · 17 points.

Bugfix

  • RADD-672 A project-scoped key is refused by every cross-project read gate
    The Radd Agent service key (spec 113: item.read scoped to RADD) gets permission 'item.read' denied from MCP search_items and list_projects — while the spec-114 catalog lists both tools for that key, because visible_catalog resolves per-project permissions and finds item.read in RADD. The catalog and the…
    auth items mcp · 2ee46bbb
  • RADD-675 view_members.added_by has no merge rule — merging a user would strand it
    tests/test_merge_coverage.py fails on the full suite: view_members.added_by (curated roadmap membership, migration fd68d1c4d8fd) stores a user id but appears in neither _MERGE_REPOINT, _MERGE_DEDUPE, nor _EXEMPT — so merging the user who pinned items to a view would strand the attribution. The guard test…
    auth views · 2ea12284
  • RADD-604 Plugin UI bundles are missing from the published image
    Every plugin UI remote 404s on the live instance: /plugins/csat/remoteEntry.js, /plugins/approvals/remoteEntry.js, /plugins/participants/remoteEntry.js (and milestones, mailintake).
    deploy pluginmgr web · 3 pts · cb87991c
  • RADD-605 A missing plugin asset returns 500, not 404
    app.py:124 raises NotFoundError(f"plugin asset not found: {name}/{file}") with one positional argument, but the constructor is NotFoundError(entity, identifier). Raising it throws TypeError: NotFoundError.init() missing 1 required positional argument: 'identifier', which surfaces as a 500 with a traceback in…
    pluginmgr server · 1 pts · 99e081e5

New Feature

  • RADD-603 Roadmap: what gets built next lives here, not in PLAN.md
    PLAN.md §8 still holds the depth list. Move the open items into this project as issues so the roadmap view is the plan.
    docs · 3 pts · 3efc5646
  • RADD-640 Plugins contribute MCP tools through the kernel
    Spec 93 made every other contribution type plugin-registerable. MCP tools were the exception — they lived in a hardcoded catalog, so a plugin could not expose one at all, and if it could, it would have bypassed the filter.
    mcp pluginmgr · 5 pts · ff2395b3

Chore

  • RADD-693 The tracking workflow goes MCP-first
    The track/release skills and CLAUDE.md teach urllib-over-REST as the way to work the tracker, so every session shells out to the API even though the instance embeds an MCP server whose catalog was purpose-built for agents (specs 45/114). This session proved the cost: the REST path worked while…
    docs mcp · 66322135
  • RADD-671 Exercise the features that read as zero
    A cycle for the current cadence with the open work in it, and a dashboard showing this project's own throughput and progress. Real data only — no invented worklogs.
    83545350
  • RADD-666 Make the tracking workflow durable, and use the product it tracks
    The working agreement exists but is spread across a session's memory, a CLAUDE.md section and a release skill, and parts of it were only ever said out loud. A new conversation should be able to pick up the same practice without being told again.
    docs · 5 pts · 5dd6ba25

Changes from v0.3.2 to v0.4.0.


Mirrored from project.radd-hq.com on 2026-09-12. Documentation is written there; this copy is regenerated by scripts/publish_wiki.py and hand edits do not survive it.

Clone this wiki locally