Skip to content

Releases: Radd-HQ/Radd

Radd 0.52.0

Choose a tag to compare

@github-actions github-actions released this 05 Oct 10:33

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.
    attachments mcp pages triage · 3 pts · 85e0931a

Changes from v0.51.1 to v0.52.0.

Radd 0.51.1

Choose a tag to compare

@github-actions github-actions released this 05 Oct 08:12

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 — no ghcr.io/radd-hq/radd:0.51.0 exists and no GitHub release was published. The failing step is browser-directory-contributions.mjs:63:
    ci triage web · 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 with DEV typed shows only GRQ epics. Reproduced over the API (GET /items/link-search, project GRQ, kind=epic, limit 25):
    items web · 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."
    audit auth automations events · 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.
    automations groups teams · 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) take me | none | email and nothing else, so the only way to express "reported by anyone…
    groups items teams · 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:
    dependencies security triage · 1 pts · 3b0a85df

Changes from v0.50.0 to v0.51.1.

Radd 0.50.0

Choose a tag to compare

@github-actions github-actions released this 29 Sep 14:50

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 in browser-resolvable-threads.mjs at 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 for type-bug — the…
    triage web workflow · 1 pts · bcc91ad2
  • RADD-1491 A parent you cannot read is shown as hidden, not as absent, and cannot be replaced by accident
    ItemRead.parent is a ParentRef | None. parent_ref in items/hydration.py returns None both when parent_id is null and when the parent is unreadable to the actor (RADD-839 dropped the title leak; RADD-835 the row leak). The payload carries no parent_id, so the SPA cannot tell the two apart.
    items web · 3 pts · 78d61f05
  • RADD-1490 A typed key resolves in the project it names, not the project you are on
    On a TD item, typing DEV-23 into the dependency add-row and pressing Enter links TD-23. DependenciesSection.tsx strips the prefix and submits target_number: 23; _resolve_link_target in items/service/links.py documents that target_number means "in the SOURCE item's project". Spec 80's as-built notes list…
    items web · 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_periods carries inclusive start_date/end_date and 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…
    leave teams timelogging · 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 (childItemPagesQuery is id-based and unscoped). Everywhere a PM actually plans, the picture is partial and says nothing about it:
    items roadmap views web · 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:
    items web · 5 pts · 1373768e

Chore

  • RADD-1494 BUILD-LOG and the deploy guide carry the leave-hours and cross-project hierarchy waves
    BUILD-LOG.md is "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

Choose a tag to compare

@github-actions github-actions released this 28 Sep 13:16

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
    The checks run on main for the v0.49.3 candidate (GitHub 36424425872) failed in web/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…
    ci proofs · 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…
    docs release · 1 pts · a4a468c1

New UI Feature

  • RADD-1478 An existing comment can become a resolvable thread after the fact
    Reported as GitHub #35: is_thread is decided only at creation (CommentCreate.is_thread; service.create_comment ~296-341), and CommentUpdate carries body and team visibility only, so an ordinary comment can never become a resolvable discussion. GitLab offers exactly…
    comments web · 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:
    comments web · 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 gets text-decoration: line-through plus a muted colour (web/src/components/editor/editor.css ~340, the .label.checked paragraph rule; the same struck style is reused for removed diff blocks at ~166), and…
    editor web · 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_id on create and update, parent on the MCP tools), but the SPA exposes that write in three places only, none of which covers an issue that already exists:
    items web · 3 pts · 045c68aa

Changes from v0.49.2 to v0.49.3.

Radd 0.49.2

Choose a tag to compare

@github-actions github-actions released this 28 Sep 09:09

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 with spawnSync …/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…
    ci proofs · 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 with secretbox).
    ai attachments auth mailintake security vcs · 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:84 draws an idle option in text-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…
    a11y comments web · 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:37 hostEntities(provider) tags the connection and repository queries ${provider}Connection / ${provider}Repo, a camel-case spelling that exists nowhere else: the server's entity types are gitlab_connection, github_connection, forgejo_connection (each…
    realtime vcs web · 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 asks useLiveDocument for a session and the host editor binds to the EditorBinding it hands back. Two edge cases (reviewer finding, to be reproduced first):
    collab pages web · 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 scan web/src only:
    automations dashboards slas web · 3 pts · b32ed0ea
  • RADD-1457 An undeliverable notification is recorded as undeliverable, not as emailed
    RADD-1385 (8cbb3a9) moved the mail transport behind the MAIL_TRANSPORT socket and deleted the env-relay fallback. When no transport is live, notify/mailer.py record_undeliverable stamps the row emailed_at = utcnow(), and emailer.run_batch does the same for digests. Consequences: (a) monitoring cannot tell…
    mailintake notify · 3 pts · 19a2425b
  • RADD-1458 A transition check hears only about the moves its rule names
    RADD-1383 (573c8db) made approval gates a TRANSITION_CHECK socket provider. workflow/checks.py state_moved calls EVERY provider's moved() on every state change, so ApprovalGate.moved spends a banked approval on a move into that target state even when the transition row has no require_approval rule. The old…
    approvals workflow · 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 :345 overwrite a same (socket, name) registration silently — entity links get a collision error at :160-162, integrations do not. Consumers then choose arbitrarily:…
    kernel workflow · 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):
    kernel pluginmgr · 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:
    automations events search · 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:37 NOISE_FIELDS filters four bookkeeping keys. GitLab sends action: update with changes containing head_pipeline_id, merge_status, total_time_spent, time_change…
    forgejo github gitlab vcs · 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-only GET /instance/status and rendered Server status from /capabilities, which is an Actor route (capabilities/router.py:42). Plugins now put operational detail in summary: the AI provider name (ai/init.py:60), "bind account on" (ldap/init.py:176), outbound-mail…
    capabilities ldap web · 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:
    items security · 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 made GET /scoped-settings/resolve refuse secret keys (403, settings/router.py:47-48). The admin-gated LIST is unchanged: server/src/radd/modules/settings/service.py:233-247 builds "value": effective from the…
    ldap security settings · 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).
    automations mailintake participants triage web · 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).
    access backup events kernel triage · 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).
    attachments forms triage · 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).
    confluenceimport jiraimport ldap security sso triage · 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 of server/scripts.
    tests tooling · 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 of ai.
    ai · 1 pts · [`79...
Read more

Radd 0.48.0

Choose a tag to compare

@github-actions github-actions released this 24 Sep 10:25

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.
    access slas · 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.
    performance ux · 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.
    items ux · 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.
    access auth · 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.
    access auth participants · 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.
    comments notifications · 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.
    attachments auth · 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.
    editor items pages · 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.
    releases reporting ux · 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.
    settings ux · 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.
    releases workflow · 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.
    comments pages · 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.
    access auth · 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.
    docs ux · 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...
Read more

Radd 0.47.0

Choose a tag to compare

@github-actions github-actions released this 21 Sep 07:14

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 --seed fetches pip from the index, and uv pip install /app/sdk builds the SDK (its backend uv_build>=0.11,<0.12 no longer matches the image's uv 0.12, so uv fetches the backend) and resolves httpx and its…
    triage · eb9656b1

Changes from v0.46.0 to v0.47.0.

Radd 0.46.0

Choose a tag to compare

@github-actions github-actions released this 20 Sep 16:42

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 a radd:media fence (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 serving qwen3.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, and ai/client.py sends only model, max_tokens and messages — 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:
    automations web · 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:
    automations plugins web · 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.
    automations plugins web · 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 hides nodes and edges on automation.updated (service.py:765), so the Change history panel on the editor cannot show a graph diff, let alone restore one.
    automations sponsored web · 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:
    automations web · 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.walk builds a complete RunReport (per-node counts, ports taken and untaken, every planned action with its resolution or skip reason, budget drops, produced values) and run_graph throws it away after logging. The router offers test, run and schedule preview; the…
    automations web · 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.py turns every image into [image] alt so 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 /automations on 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.
    automations dogfood · 2 pts · 67c48164

Changes from v0.45.0 to v0.46.0.

Radd 0.45.0

Choose a tag to compare

@github-actions github-actions released this 19 Sep 15:15

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).
    connectors github timelogging vcs · 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).
    connectors forgejo timelogging vcs · 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."
    settings vcs web · 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.
    timelogging vcs web · 8 pts · 0c5b5340

Changes from v0.44.1 to v0.45.0.

Radd 0.44.1

Choose a tag to compare

@github-actions github-actions released this 19 Sep 13:00

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.py writes payload={"message", "rule"} on an AUTOMATION notification while setting item_id on 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.