Releases: Radd-HQ/Radd
Release list
Radd 0.52.0
v0.52.0
1 change · 1 New Feature · 3 points.
New Feature
- RADD-1503 MCP gap: no attachment tools — an agent cannot list, upload, download or delete files on an issue or a wiki page
A user report (2026-10-05): agents working a ticket upload screenshots while investigating, then move the screenshot to a wiki page when documenting, and "none of the RADD MCP tools accept a file or return attachment data", so it is done by hand in the web UI.
attachmentsmcppagestriage· 3 pts ·85e0931a
Changes from v0.51.1 to v0.52.0.
Radd 0.51.1
v0.51.1
6 changes · 3 Bugfixes, 2 New Features, 1 Chore · 15 points.
Bugfix
- RADD-1502 v0.51.0 publish failed: the directory-contributions proof's fixture people have no
active, so every row wears the RADD-1499 "Inactive" hint
Publish run 37279165781 for the v0.51.0 tag (2026-10-05): the backend job passed, the frontend job failed in its Check step, and the image job was skipped — noghcr.io/radd-hq/radd:0.51.0exists and no GitHub release was published. The failing step isbrowser-directory-contributions.mjs:63:
citriageweb· 1 pts ·4ad9705d - RADD-1500 The parent picker cannot be told a project: typing DEV on a GRQ issue lists GRQ epics
Reported 2026-10-01 on the dev stack: on a GRQ issue, the rail's Epic field withDEVtyped shows only GRQ epics. Reproduced over the API (GET /items/link-search, project GRQ,kind=epic, limit 25):
itemsweb· 2 pts ·aaabb135 - RADD-1499 The Automation account is a local user: a person in every picker and in the audit ledger's People filter
Reported 2026-09-30: "the automation user that is handling VCS events is showing up as a human user — when I filter audit logs by people I see Automation as a person."
auditauthautomationsevents· 3 pts ·ff04ff98
New Feature
- RADD-1498 Automation gates "Person is in team" (core) and "Person is in directory group" (groups plugin)
In the automation editor, a gate that reads "if the REPORTER is in the pipeline-global group" without an SLQ expression. Today the nearest gate, Changed by, matches the actor by id/email/name and knows no memberships.
automationsgroupsteams· 5 pts ·5dfbdec5 - RADD-1497 SLQ membership fields: reporter_team, assignee_team, reporter_group, assignee_group
A query that names who the reporter or assignee IS in the organisation, not just who they are:reporter_group = "pipeline-global",assignee_team IN (Lighting, Comp). SLQ's user fields (items/slq/builtins.py,user_match) takeme | none | emailand nothing else, so the only way to express "reported by anyone…
groupsitemsteams· 3 pts ·2e860744
Chore
- RADD-1501 Security dependency bumps: urllib3 2.8.0, pyjwt 2.15.1, dompurify 3.4.16
Dependabot opened three security PRs on 2026-10-02 (GitHub #36, #37, #38) against the lockfiles. v0.51.0 was tagged on 2026-10-05 without them, so that image carries:
dependenciessecuritytriage· 1 pts ·3b0a85df
Changes from v0.50.0 to v0.51.1.
Radd 0.50.0
v0.50.0
7 changes · 3 Bugfixes, 1 New Feature, 2 New UI Features, 1 Chore · 25 points.
Bugfix
- RADD-1495 The resolvable-threads proof's add-rule click races the settings page on CI
GitHub checks run 36581999766, attempt 1 (commit 1bc107b, the v0.50.0 candidate): the frontend job failed inbrowser-resolvable-threads.mjsat the step that clicks[data-thread-resolution-settings] [data-add-thread-rule]and then waits for the fixture's thread policy to hold one override fortype-bug— the…
triagewebworkflow· 1 pts ·bcc91ad2 - RADD-1491 A parent you cannot read is shown as hidden, not as absent, and cannot be replaced by accident
ItemRead.parentis aParentRef | None.parent_refinitems/hydration.pyreturns None both whenparent_idis null and when the parent is unreadable to the actor (RADD-839 dropped the title leak; RADD-835 the row leak). The payload carries noparent_id, so the SPA cannot tell the two apart.
itemsweb· 3 pts ·78d61f05 - RADD-1490 A typed key resolves in the project it names, not the project you are on
On a TD item, typingDEV-23into the dependency add-row and pressing Enter links TD-23.DependenciesSection.tsxstrips the prefix and submitstarget_number: 23;_resolve_link_targetinitems/service/links.pydocuments thattarget_numbermeans "in the SOURCE item's project". Spec 80's as-built notes list…
itemsweb· 2 pts ·e13a777d
New Feature
- RADD-1481 Leave with hours (all-day or mixed) and team stewards recording members' leave
Leave is recorded as whole calendar days only.leave_periodscarries inclusivestart_date/end_dateand nothing finer, so "away from 12:00 on the 30th until 16:00 on the 3rd" cannot be said: the half days become full days, the away indicator dims the person from midnight, and the timesheet exempts the whole…
leaveteamstimelogging· 5 pts ·90fb65ed
New UI Feature
- RADD-1493 A cross-project epic shows its whole picture: open as board, partial-group chip, roadmap parity, withheld-children note
A DEV epic with TD and ITE children is fully visible in exactly one place: its own page (childItemPagesQueryis id-based and unscoped). Everywhere a PM actually plans, the picture is partial and says nothing about it:
itemsroadmapviewsweb· 8 pts ·6173db38 - RADD-1492 A subtask lives where its parent lives
Spec 80 lifted the same-project rule for the whole ladder, so a subtask may sit under an issue in another project. A subtask is a checklist line of its parent: it has no board of its own, no release, no independent priority, and it is ticked from the parent's page. Across projects that stops holding:
itemsweb· 5 pts ·1373768e
Chore
- RADD-1494 BUILD-LOG and the deploy guide carry the leave-hours and cross-project hierarchy waves
BUILD-LOG.mdis "one entry per wave, newest first" (CLAUDE.md), and its newest entry is the pre-release review wave shipped as v0.49.x. Two waves have landed since with no entry: leave with hours and team stewards (RADD-1481, 2026-09-28) and the cross-project hierarchy second pass (epic RADD-1489, 2026-09-29).…
docs· 1 pts ·1bc107bb
Changes from v0.49.3 to v0.50.0.
Radd 0.49.3
v0.49.3
6 changes · 2 Bugfixes, 4 New UI Features · 10 points.
Bugfix
- RADD-1480 The login proof waits for the TOTP response to render before closing the local form
Thechecksrun on main for the v0.49.3 candidate (GitHub 36424425872) failed inweb/scripts/browser-login.mjs:56: after submitting the mocked TOTP code the proof waits only until the mock has RECEIVED the third request (until(requests.length === 3)), then clicks "Close local account sign-in" and waits for the…
ciproofs· 1 pts ·9dbcae63 - RADD-1479 Release notes range from the last PUBLISHED release, not the last tag
The v0.49.2 release notes on GitHub and on the wiki page said 2 changes (RADD-1470 and RADD-1453, "Changes from v0.49.1 to v0.49.2") for a release that carried 134 commits and 137 issues: the whole automation-integrity, plugin-isolation, bloat-audit and pre-release-review waves.scripts/changelog.py::previous_tag…
docsrelease· 1 pts ·a4a468c1
New UI Feature
- RADD-1478 An existing comment can become a resolvable thread after the fact
Reported as GitHub #35:is_threadis decided only at creation (CommentCreate.is_thread;service.create_comment~296-341), andCommentUpdatecarries body and team visibility only, so an ordinary comment can never become a resolvable discussion. GitLab offers exactly…
commentsweb· 2 pts ·207b393d - RADD-1477 A reply can be edited and deleted by its author like a comment, and comments and replies can be edited and deleted over MCP
Reported as GitHub #34. Two gaps behind one request:
commentsweb· 2 pts ·f68dd3dc - RADD-1476 A done to-do keeps its text readable: a filled checkbox and a muted colour say it is done, not a strikethrough
Reported as GitHub #32: a checked to-do in an issue or wiki page getstext-decoration: line-throughplus a muted colour (web/src/components/editor/editor.css~340, the.label.checkedparagraph rule; the same struck style is reused for removed diff blocks at ~166), and…
editorweb· 1 pts ·9e0f7523 - RADD-1471 An existing issue can be given an epic, and a subtask a new parent, from the UI: rail picker, add-existing on the epic, bulk set
An item's parent can be written through the API and MCP (parent_idon create and update,parenton the MCP tools), but the SPA exposes that write in three places only, none of which covers an issue that already exists:
itemsweb· 3 pts ·045c68aa
Changes from v0.49.2 to v0.49.3.
Radd 0.49.2
v0.49.2
137 changes · 43 Bugfixes, 19 New Features, 14 New UI Features, 61 Chores · 464 points.
Bugfix
- RADD-1470 The frontend CI job installs the server, so the four contract proofs can spawn its interpreter
The v0.49.1 publish run (GitHub 36398793337) failed in the frontend job withspawnSync …/server/.venv/bin/python ENOENT. Four mocked browser proofs derive their fixtures from the backend's own contracts by spawning the server interpreter —browser-audit-entity-links.mjs(entity link destinations through…
ciproofs· 1 pts ·393ed8df - RADD-1446 Secrets still stored in plaintext after RADD-1424: AI provider keys, storage host keys, connector tokens and webhook secrets, mail source secrets, TOTP seeds
Found while fixing RADD-1424 (which encrypted the Jira/Confluence credentials, the SSO client secret and the LDAP bind password withsecretbox).
aiattachmentsauthmailintakesecurityvcs· 5 pts ·ac91c48e - RADD-1469 The segmented choice's idle options hold 4.5:1 in the light theme
web/src/components/comments/SegmentedChoice.tsx:84draws an idle option intext-fg-muted. Measured over the built bundle during RADD-1463: the active option holds 4.96:1 dark / 4.70:1 light and the row text 10.9 / 13.1, but the idle option measures 4.41:1 in the light theme — under the 4.5:1 that CLAUDE.md…
a11ycommentsweb· 1 pts ·92ac732c - RADD-1468 The VCS settings page tags its queries with the server's entity types, so realtime reaches them
server/src/radd/modules/vcs/ui/src/queries.ts:37hostEntities(provider)tags the connection and repository queries${provider}Connection/${provider}Repo, a camel-case spelling that exists nowhere else: the server's entity types aregitlab_connection,github_connection,forgejo_connection(each…
realtimevcsweb· 1 pts ·b1a49e6c - RADD-1461 A failed collab bind hands the page back to the single editor, and a remote arriving mid-edit never replaces the draft
RADD-1397 (841cf41) made co-editing the collab remote's: the page asksuseLiveDocumentfor a session and the host editor binds to theEditorBindingit hands back. Two edge cases (reviewer finding, to be reproduced first):
collabpagesweb· 3 pts ·52bde3fb·f466b432 - RADD-1462 Dashboards no longer names the SLA widget, and the bundled automations UI drops its capability gate
Two bundled core packages still carry the patterns RADD-1373/1393 removed elsewhere, and neither guard test can see them because both scanweb/srconly:
automationsdashboardsslasweb· 3 pts ·b32ed0ea - RADD-1457 An undeliverable notification is recorded as undeliverable, not as emailed
RADD-1385 (8cbb3a9) moved the mail transport behind theMAIL_TRANSPORTsocket and deleted the env-relay fallback. When no transport is live,notify/mailer.py record_undeliverablestamps the rowemailed_at = utcnow(), andemailer.run_batchdoes the same for digests. Consequences: (a) monitoring cannot tell…
mailintakenotify· 3 pts ·19a2425b - RADD-1458 A transition check hears only about the moves its rule names
RADD-1383 (573c8db) made approval gates aTRANSITION_CHECKsocket provider.workflow/checks.py state_movedcalls EVERY provider'smoved()on every state change, soApprovalGate.movedspends a banked approval on a move into that target state even when the transition row has norequire_approvalrule. The old…
approvalsworkflow· 1 pts ·6eae65da - RADD-1456 Kernel sockets refuse a duplicate provider, and each socket declares whether it fails open or closed
The RADD-1343 sockets (kernel/sockets.py) have no duplicate-provider check:kernel/registry.py:170-173(target[key(spec)] = spec) and:345overwrite a same(socket, name)registration silently — entity links get a collision error at:160-162, integrations do not. Consumers then choose arbitrarily:…
kernelworkflow· 2 pts ·5c54f4a9 - RADD-1460 Plugin runtime: an enable failure stops only what started, and resume does not duplicate loops
server/src/radd/kernel/runtime.py(RADD-1341/1372):
kernelpluginmgr· 2 pts ·ee268a42 - RADD-1452 The trigger inspector's latest-payload lookup is bounded, and entity search escapes LIKE wildcards
Two small defects from the automation wave:
automationseventssearch· 2 pts ·38313f8b - RADD-1451 "Merge/pull request updated" fires only for changes someone would automate on
RADD-1330 (91f870d) added the "merge/pull request updated" trigger with a kernel diff of the payload.server/src/radd/modules/vcs/triggers.py:37NOISE_FIELDSfilters four bookkeeping keys. GitLab sendsaction: updatewithchangescontaininghead_pipeline_id,merge_status,total_time_spent,time_change…
forgejogithubgitlabvcs· 2 pts ·b447d34b - RADD-1450 A skipped action no longer halts the branch, and an ownerless automation runs as the system actor
Two defects introduced by the RADD-1339 review sweep (bca48bf), found by the 2026-09-27 pre-release review and confirmed in code:
automations· 3 pts ·09cd9efd - RADD-1459 Server status detail stays admin-only, and the Directory page reports a failed capabilities read
RADD-1389 (f54289a) deleted the admin-onlyGET /instance/statusand rendered Server status from/capabilities, which is anActorroute (capabilities/router.py:42). Plugins now put operational detail insummary: the AI provider name (ai/init.py:60), "bind account on" (ldap/init.py:176), outbound-mail…
capabilitiesldapweb· 1 pts ·9a7e08ef - RADD-1455 Bulk move, link targets and parents go through the item row gate
RADD-1413 (a2ea5a4) put item links and stars through the row gate "every other item write uses". Three writers still do not:
itemssecurity· 2 pts ·f96fd18a - RADD-1454 The admin settings list returns a secret as a set marker, never its value
RADD-1424 sealed the LDAP bind password, SSO client secrets and importer credentials at rest and madeGET /scoped-settings/resolverefuse secret keys (403,settings/router.py:47-48). The admin-gated LIST is unchanged:server/src/radd/modules/settings/service.py:233-247builds"value": effectivefrom the…
ldapsecuritysettings· 2 pts ·5ecd5977 - RADD-1425 Contributed automation action nodes can never be saved: hasCoreEditor treats every action. as core*
Found by the RADD-1402 audit (F, automations UI).
automationsmailintakeparticipantstriageweb· 3 pts ·febbdc33 - RADD-1427 Spine defects: events reads a settings field that does not exist, backup tasks are fire-and-forget, group grants show as bare uuids
Found by the RADD-1402 audit (A).
accessbackupeventskerneltriage· 2 pts ·83ae71e2 - RADD-1426 Forms staging sweep has never been scheduled, so abandoned submission attachments live forever
Found by the RADD-1402 audit (C1).
attachmentsformstriage· 2 pts ·fba429e7 - RADD-1424 Importer, SSO and LDAP credentials are stored in plaintext although secretbox landed
Found by the RADD-1402 audit (D1 F9).
confluenceimportjiraimportldapsecurityssotriage· 3 pts ·39bfee06 - RADD-1423 perfseed.py inserts into project_members, a table migration d929grants dropped, so the perf seeder fails on a head database
Found by the RADD-1402 audit ofserver/scripts.
teststooling· 1 pts ·95bdbae8 - RADD-1419 The AI provider Test button ignores the row's reasoning and extra request parameters
Found by the RADD-1402 audit ofai.
ai· 1 pts · [`79...
Radd 0.48.0
v0.48.0
23 changes · 4 Bugfixes, 14 New Features, 5 Chores · 82 points.
Bugfix
- RADD-1303 A project's Manager can manage its SLA policies (sla. become project-scoped)*
A project's Manager can create and edit that project's SLA policies; it no longer takes an instance administrator.
accessslas· 2 pts ·62e0ce0d - RADD-1294 Directory page stops rendering 4,439 checkboxes, the palette opens on what you need, the inbox groups repeats
Settings → Directory is split into Connection / User sync / Groups tabs with the groups paged, the command palette opens on recent issues and the current project instead of 123 "New issue in X" rows, and repeated inbox notifications collapse into one row.
performanceux· 5 pts ·b71c7ff3 - RADD-1293 Counts say what they count: request badges, "loaded" totals, duplicate roadmap counts, "0 shown"
Counts say what they count: "My requests" shows the real total beside what needs your reply, the board header reads "N issues", the roadmap shows one count, and My Work never says "0 shown".
ux· 2 pts ·3c11ce6e - RADD-1292 The create form follows Screens, the issue view stops 404ing on CSAT, list columns say what they show
The new-issue form follows the type's Screen (hidden fields stay off it, secondary ones sit under "More fields"), issue views stop logging a failed CSAT request, and list columns show the type's name and the priority's word.
itemsux· 3 pts ·b1868fb4
New Feature
- RADD-1302 One role ladder: Viewer ⊂ Member ⊂ Manager, meaningful on projects and spaces alike
"Admin" is now "Manager", and Viewer ⊂ Member ⊂ Manager is a real ladder that works on projects and on wiki spaces alike. Members no longer manage intake forms: grant Manager to anyone who edits them.
accessauth· 5 pts ·709a9a1b - RADD-1304 One "own ticket" set for Baseline, Requester and Contributor, and sharing becomes a grant (participant.manage@own)
A ticket's reporter can attach to it and share it with others, and the same own-ticket rights now apply to staff, emailed-in requesters and public contributors alike.
accessauthparticipants· 3 pts ·c944490a - RADD-1300 SLA policies can be edited, not only created
SLA policies can be edited in place from the project's SLA settings, not only created and deleted.
slas· 2 pts ·26c7b13a - RADD-1299 SLA targets say what "met" means: states entered or left, replies by chosen or assigned teams; policies can match on the reporter's team
An SLA target can say what meets it: leaving or entering chosen states (e.g. "out of Triage"), or a reply from chosen teams or the issue's own team. A policy can also apply only to reporters in chosen teams.
slas· 5 pts ·696838c2 - RADD-1297 Link to one comment: permalinks on issues and pages, and notifications that land on the comment
Every comment and reply has a Copy link that opens straight on it, even far back in a long thread; comment and mention notifications now open on the comment itself.
commentsnotifications· 5 pts ·4b91f33e - RADD-1295 A person can have a real profile picture: upload, the IdP's picture, then the colour/emoji
People can have a real profile picture: upload one, or get your Google/GitHub picture automatically.
attachmentsauth· 3 pts ·9b486479 - RADD-1282 Resolvable issue discussions with an all-threads-resolved workflow condition
Resolvable threads. Start a thread instead of a plain comment when a discussion needs an answer: threads can be resolved and reopened (a reply can reopen one), "Unresolved threads" filters to what is still open, and a workflow rule can refuse a transition until every thread is resolved.
triage·b6dfc2e2·6cd3ea68 - RADD-1296 Checklists you can read and tick: legible checkboxes, strikethrough, toggle without editing
Checklists are real checkboxes you can read at a glance, done items are struck through, and you can tick them without opening the editor.
editoritemspages· 3 pts ·356dbe5b - RADD-1279 An instance can require MFA: a policy switch, an enforcement seam, and admin visibility
An administrator can require MFA: password sign-ins without TOTP are sent through enrolment first, the user list shows who is enrolled, and an admin can reset one person's enrolment. The switch refuses to turn on while the admin flipping it is not enrolled.
auth· 5 pts ·f221cf10 - RADD-1291 Cycles have a home project: project managers create them, planning and reports show the project's cycles
Cycles belong to a project: a project's manager can create and run its sprints without instance admin, and planning, reports and cycle pickers show that project's cycles (a cycle can still hold issues from other projects).
cycles· 5 pts ·75a88cb6 - RADD-1290 Releases and Reports are project pages, not settings or a buried menu; Milestones leaves the nav
Releases and Reports are project pages every reader can open (each release lists the issues it shipped), and Milestones is off by default on a new instance. Issue-header actions are regrouped, with Delete behind ⋯ and a confirm.
releasesreportingux· 5 pts ·6c824c10 - RADD-1288 Settings autosave, working days are day toggles, durations take units, no native controls
Settings save as you change them (no more one Save button per field), the working week is seven day toggles, SLA targets accept durations like "1h 30m" or "2d", and enable/disable rows are real switches.
settingsux· 5 pts ·14ec94de - RADD-1285 Shipping is a workflow transition: "moves when a release is published" + "requires a release", and the four state-name settings go
Shipping is set up in the workflow: a transition can "move when a release is published" and a state can require a release, replacing the two typed-in state-name settings. Existing pipelines are converted automatically.
releasesworkflow· 8 pts ·75779bf4 - RADD-1283 Threads on wiki pages, and who may resolve a thread is a per-project, per-issue-type policy
Threads on wiki pages, and who may resolve them. Page discussions and inline comments get the same resolvable threads as issues, and each project decides who may resolve a thread (anyone, the thread's author, or chosen roles), with a different rule per issue type if needed.
commentspages· 5 pts ·6cd3ea68
Chore
- RADD-1305 Built-in roles cannot drift, Staff folds into Viewer, umbrellas imply what they administer
Built-in roles keep themselves in step with each release (every correction is in the audit log); the Staff role is folded into the identical Viewer role.
accessauth· 3 pts ·7a42fd8e - RADD-1298 QR code at TOTP enrolment (GitHub #21)
Reported by @remusavram in GitHub #21: "display a QR code (in addition to any manual entry code) so users can scan it with an authenticator app instead of typing the secret manually."
auth·f221cf10 - RADD-1289 Copy for people: no spec/ticket numbers, no stale claims, no banners that repeat the subtitle
Settings, plugin and permission text is written for people: no spec or ticket numbers, no stale claims, and no banners repeating the page subtitle.
docsux· 2 pts ·e3b51c24 - RADD-1287 One vocabulary: "issue" in the UI, one name for the portal and the server page, "New …" for every create
The interface says "issue" everywhere (the API still says item), the Portal and the Server status page each have one name, and every button that opens a form reads "New …".
ux· 3 pts · [aaa0e39f](aaa0e39...
Radd 0.47.0
v0.47.0
1 change · 1 Bugfix.
Bugfix
- RADD-1277 The scripts interpreter cannot be built on an air-gapped instance: uv seeds pip and resolves httpx from PyPI
The managed interpreter (RADD-1269) is built by three uv invocations, and two of them need PyPI:uv venv --seedfetchespipfrom the index, anduv pip install /app/sdkbuilds the SDK (its backenduv_build>=0.11,<0.12no longer matches the image's uv 0.12, so uv fetches the backend) and resolveshttpxand its…
triage·eb9656b1
Changes from v0.46.0 to v0.47.0.
Radd 0.46.0
v0.46.0
11 changes · 3 Bugfixes, 5 New UI Features, 3 Chores · 31 points.
Bugfix
- RADD-1274 Editor AI runs drop media, images and extension blocks — protect non-prose blocks through a transform
Summarizing a wiki page from the editor's AI menu removed the video embedded in it (reported 2026-09-20 on the dev instance). The page held aradd:mediafence (the player the Confluence import produces,components/pages/ImportExtensions.tsx). An editor AI run (components/editor/ai-run.ts) serialises the WHOLE…
triage·7eae94f5 - RADD-1273 AI providers: reasoning off by default, and per-provider request parameters
Since mark015 moved to sglang servingqwen3.8-27b, every AI feature got slower and some replies come back truncated or with a leading blank line. Qwen3's chat template turns thinking on unless the request opts out, andai/client.pysends onlymodel,max_tokensandmessages— so every summarize, NL→SLQ,…
triage·7febfdaa - RADD-1265 Automation audit fixes: the send_email gate, legacy residue, node titles, palette order, a seeded trigger, item tokens
Six findings from the 2026-09-19 audit, each verified in the tree:
automationsweb· 3 pts ·0dd82c92
New UI Feature
- RADD-1272 Scripts live on the node, not in a library; Automations and Scripts move to the Server settings group
Two things Hussein pointed out on 2026-09-20 reviewing RADD-1269:
automationspluginsweb· 3 pts ·8a3d4e59 - RADD-1269 The scripts plugin: a managed Python interpreter, a package table, a script library, and script.run / script.decide automation nodes
Admin-authored Python that runs from an automation, with the Radd API in the interpreter and the packages it needs installable from a settings page. Requested by a customer; the platform doc already names "no-code admin scripting" as the case for a subprocess tier.
automationspluginsweb· 8 pts ·c5030ed1 - RADD-1268 Versioned automation graphs: every save is an immutable version, browse and restore (delivers RADD-1111)
RADD-1111 (sponsored): a bad edit destroys hours of tuning with no way back. There is no starting point in the tree: the audit ledger explicitly hidesnodesandedgesonautomation.updated(service.py:765), so the Change history panel on the editor cannot show a graph diff, let alone restore one.
automationssponsoredweb· 5 pts ·ec330515 - RADD-1267 Automation coverage: switch on missing triggers, gate non-item events by project and payload value, act on every mutable item field
The 2026-09-19 registry dump (155 event types, ~90 triggers) and the action table show three holes:
automationsweb· 5 pts ·9ae3f3c9 - RADD-1266 Automation run history: every run is a row, with what each node did and why an action skipped
Nothing persists what an automation did.executor.walkbuilds a completeRunReport(per-node counts, ports taken and untaken, every planned action with its resolution or skip reason, budget drops, produced values) andrun_graphthrows it away after logging. The router offers test, run and schedule preview; the…
automationsweb· 5 pts ·a121a23c
Chore
- RADD-1275 Summaries see a page's or issue's image attachments when a vision model is configured
A page or issue that carries screenshots, diagrams or photos is summarised today from its text alone:ai/prose.pyturns every image into[image] altso the model's budget is not spent on base64, and attachments are never sent at all. When the instance has a vision role (spec 101 — the storage router already sends…
triage·1315a34d - RADD-1276 Orphaned inline comments get their own group in the page rail, a plain label, and Resolve all
An inline page comment whose passage was edited away is an orphan (RADD-726/728,web/src/lib/anchoring.ts): kept open, never re-anchored to a lookalike, never auto-resolved. Today an orphan sits in the open list among the live comments, distinguishable by a 10-px unlink icon, a tooltip, and a faint footnote at the…
triage·32472573 - RADD-1270 Dogfood: the RADD project runs real automations
GET /automationson project.radd-hq.com returns an empty list. The project that is the product's demonstration does not use the feature the wave is about.
automationsdogfood· 2 pts ·67c48164
Changes from v0.45.0 to v0.46.0.
Radd 0.45.0
v0.45.0
4 changes · 2 New Features, 2 New UI Features · 19 points.
New Feature
- RADD-1261 GitHub: a /spend comment convention on pull requests, since GitHub has no native time tracking
Child 4 of [[RADD-1257]]. Depends on child 1 (the seam).
connectorsgithubtimeloggingvcs· 5 pts ·6a7d6aef - RADD-1260 Forgejo: mirror PR tracked time — reconcile from /issues/{index}/times on every PR delivery and in the backfill
Child 3 of [[RADD-1257]]. Depends on child 1 (the seam).
connectorsforgejotimeloggingvcs· 3 pts ·bebac960
New UI Feature
- RADD-1262 One "Version control" settings page with a tab per host kind (Forgejo, GitHub, GitLab), like Import data's Jira and Confluence tabs
Child 5 of [[RADD-1257]]. Hussein, 2026-09-19: "instead of having GitHub, Forgejo, GitLab settings pages they should all just go under a version control page, similar to the Import data page that has Confluence and Jira."
settingsvcsweb· 3 pts ·cd0bd446 - RADD-1258 External-worklog seam: provenance on worklogs, idempotent reconcile, read-only mirrored rows, provider identity map
Child 1 of [[RADD-1257]] — the provider-neutral half every connector calls.
timeloggingvcsweb· 8 pts ·0c5b5340
Changes from v0.44.1 to v0.45.0.
Radd 0.44.1
v0.44.1
5 changes · 1 Bugfix, 4 New Features.
Bugfix
- RADD-972 Automation notifications carry no item ref, so no email line can link the issue they're about
automations/engine.pywritespayload={"message", "rule"}on an AUTOMATION notification while settingitem_idon the row — the payload carries no item key or title. Every renderer that composes a line from the payload (the digest, and any per-event email) can therefore not link the issue: RADD-967 made it degrade…
1e62183d
New Feature
- RADD-994 The routing trace answers "why didn't my rule fire?" with silence: disabled and not-reached rules, the hidden None-of-these, and a clipped detail
Live verification of RADD-989 on v0.30.0 (scenario passed — DEV/ITSUP/DESK by verdict, errored renders distinctly). What would still confuse an admin, found by using it:
2fe530b3 - RADD-982 The lifecycle ends in silence: a resolved notification to the ticket's contacts, out of the box
(audit finding #2)
35dffd32 - RADD-984 mail.sent / mail.failed appear in the item's History, so "did the customer get my reply?" has an answer
(audit finding #4)
cf26ee46 - RADD-985 List-Unsubscribe and a preferences link: every notification email says how to stop it
(audit finding #7, deliverability half)
255a3b6b
Changes from v0.44.0 to v0.44.1.