docs(tool-executions): recording and retention are self-service [PLT-2978] - #1141
Conversation
The Retention section predates PLT-2978 and told readers to contact support for changes they can now make themselves. It was also wrong in three ways that matter more than the missing capability: - It offered project-level overrides. Project settings are an explicit non-goal; the value is organization-wide and nothing customer-reachable sets a project's own. - It folded turning recording off together with deleting history. They are different: recording off stops new runs being written and leaves stored ones to expire on the window. Shortening the window is the control that deletes, and it reaches records already held. - It gave no bounds, so a reader had no way to know 0 and 400 are refused. Rewritten around the two settings, what each does to history already held, and what a reader sees when the list is empty.
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
…viour Takes the suggested wording for the opening, the table, and the defaults sentence, and types the two settings. Drops four things: the org-admin authority line, which the opening now covers; two connective sentences that only restated the bullets under them; the callout about recording permitting rather than compelling, since project-level settings do not exist and the distinction has no observable effect until they do; and the empty-history section, which narrated UI copy the product already shows. The Callout import goes with its last use.
|
All eight applied — pushed as Your three wordings are in as written, bar one liberty: I added the article in "configured by an organization admin". Say the word if you meant it without. The four cuts, and what each was doing:
One thing worth leaving on the record from that last cut: an empty list has several causes — nothing ran, recording is off, the window already expired — and telling them apart is the outcome this feature is measured on. That job now sits entirely with the dashboard, which is the better home for it, but it is a real requirement rather than a nicety.
|
"By default, recording is enabled" holds for Arcade Cloud, where the organization starts at ALLOWED and projects start enabled. It does not hold for a self-hosted deployment: the Engine's execution_logging.enabled defaults to false, and with it off no run is recorded and no retention worker runs, whatever the organization's policy says. The paragraph two below already scopes the maximum to Arcade Cloud, so this now reads consistently, with one clause for the self-hosted case.
Stacked onto #1129 so nothing on that branch is rewritten — merge this into it and the page is current.
Why
The Retention section describes the world before PLT-2978. It says:
That capability is being shipped as self-service in a stack now in review (
monorepo#3165 the API, #3243 the dashboard page). The stale instruction is the obvious problem, but three smaller ones matter more, because each would mislead a reader who acts on it.It offered project-level overrides — "7 days unless your organization sets a different default or a project overrides it". Project-level settings are an explicit non-goal of the spec. Nothing customer-reachable sets a project's own window, and the API reports
retention_changeable_at_project: falsefor exactly this reason. A reader would go looking for a control that does not exist.It folded two different actions together — "turn off execution logging and delete the history". They are not the same operation and behave differently. Turning recording off stops new runs being written down and leaves what is stored to expire on the window; the retention sweep marks on the window alone and never reads whether recording is on. Shortening the window is the control that deletes, and it reaches records already held. Someone who turns recording off expecting an erasure gets neither the deletion nor a warning.
It gave no bounds, so nothing told a reader that
0and400are refused with a422rather than clamped.What changed
One file,
app/en/operate/governance/tool-executions/page.mdx. The section is now Recording and retention and covers:PUT /v1/orgs/{org_id}/logging-config422The intro also picks up a pointer, since "Arcade records every tool run" is only true while recording is on.
Checked
bun run buildpasses. It caught a real mistake first: I used<Note>, which this site does not have — the convention is<Callout>(282 uses) and it needs an explicitimport { Callout } from "nextra/components". Prerendering failed until both were right.Every claim is checked against the implementation rather than the spec prose:
ORG_DEFAULT_LOG_RETENTION_DAYS,MAX_LOG_RETENTION_DAYSincore/conf.pywithin_platform_maximumon the FastAPI-validated bodyrunMarkPhasereadsLogRetentionDaysonly, neverLoggingEnabledlogging_config_update, org-admin only, pluscan_edit_loggingon the org readSequencing
This documents behaviour that is not merged yet. #3165 and #3243 are green and awaiting review, not released. If #1129 is likely to ship first, hold this one until the stack lands — otherwise the page promises a dashboard page that isn't there. Happy to gate it however you prefer.
🤖 Generated with Claude Code
Note
Low Risk
Documentation-only change with no runtime or API behavior modified in this PR.
Overview
Updates the Tool Executions governance doc so it matches org-wide, self-service execution logging instead of “contact support” and misleading retention behavior.
The intro now states that recording is on by default and points to the new Recording and retention section. That section replaces the old Retention block: it describes two org-admin settings (recording on/off and retention days), Cloud defaults (7-day window, 90-day max) vs self-hosted, and how to change them via the dashboard Execution Logging page or
PUT /v1/orgs/{org_id}/logging-config. It documents validation (422for out-of-range values, minimum 1 day, zero is not valid) and clarifies that turning recording off only stops new writes while existing rows expire on the window, whereas shortening the window retroactively deletes older history org-wide and cannot be undone. Project-level retention overrides are no longer implied.Reviewed by Cursor Bugbot for commit df4f755. Bugbot is set up for automated code reviews on this repo. Configure here.