Skip to content

feat(error-tracking-settings): singleton SDK factory + pipeline - #93

Open
pl wants to merge 2 commits into
pl/spec-migrationfrom
pl/resource-error-tracking-singletons
Open

feat(error-tracking-settings): singleton SDK factory + pipeline#93
pl wants to merge 2 commits into
pl/spec-migrationfrom
pl/resource-error-tracking-singletons

Conversation

@pl

@pl pl commented Jul 23, 2026

Copy link
Copy Markdown
Contributor

Adds the error-tracking settings singleton (via the add-singleton-resource pattern). Ships one singleton, not two — see the spike-detection exclusion below.

Error tracking settings (shipped)

Field-scoped PATCH of the four exception-ingestion rate limits (project_rate_limit_value / _bucket_size_minutes, per_issue_rate_limit_value / _bucket_size_minutes). GET via the custom retrieve_settings route, PATCH via update_settings. Only declared fields are written; null removes a limit, omitting a key leaves the server value alone.

Live-verified on 806 (add-singleton flow): apply → no-op re-apply (unchanged) → edit one field → single-field PATCH → field-scoping invariant (an undeclared field set out-of-band survives re-apply untouched). All test state restored to the original all-null afterward.

Spike detection config (excluded — report-only)

The sibling singleton the branch was scoped for is not buildable: its update_config write endpoint rejects personal API key access — both PATCH and POST return "This action does not support personal API key access". The GET works, but there is no write path for our auth (the CLI is personal-API-key only), so it can't round-trip. Marked 🚫 in docs/resources.md. This is the singleton analogue of the data-color-themes verdict: read-only surface for our tooling.

Splitting the PR would leave an empty second half, so this is one singleton with the exclusion documented — flagging in case the tracker expected two.

Surprises

  • Spike detection's spike_detection_config GET schema declares an array response, but the live endpoint returns a single object (serializer drift) — it is a singleton in practice regardless.
  • The write auth barrier above.

Scope: error_tracking:read / error_tracking:write. Singletons are excluded from the smoke seed (would mutate an unrestorable project-wide row). Gates green (typecheck, typecheck:examples, test — 300 pass, lint).


Stacks on #81 (base pl/spec-migration) — codegen only compiles there. Retarget to main when #81 merges.

🤖 Generated with Claude Code

pl and others added 2 commits July 24, 2026 00:18
Add error_tracking settings retrieve_settings (GET) + update_settings (PATCH)
to the openapi allowlist and regenerate src/generated/api.d.ts. These are the
custom action routes the error-tracking settings singleton uses.

Spike detection config is intentionally NOT added: its update_config endpoint
rejects personal API key access ("This action does not support personal API
key access"), so it can't be managed by the CLI (see the feat commit's
excluded-resource note).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Adds the error-tracking settings singleton (add-singleton-resource pattern):
field-scoped PATCH of the exception-ingestion rate limits
(project_rate_limit_value / _bucket_size_minutes, per_issue_rate_limit_value /
_bucket_size_minutes). GET via the custom retrieve_settings route, PATCH via
update_settings. Only declared fields are written; `null` removes a limit,
omitting a key leaves the server value alone.

Live-verified on project 806 (add-singleton-resource flow): apply -> no-op
re-apply (unchanged) -> edit one field -> single-field PATCH -> field-scoping
invariant (an undeclared field set out-of-band survives re-apply untouched).
All test state restored to the original (all-null) afterward.

Spike detection config — the sibling singleton in this branch's original scope
— is EXCLUDED and shipped as report-only: its `update_config` write endpoint
rejects personal API key access ("This action does not support personal API
key access"), so the CLI cannot manage it. Marked 🚫 in docs/resources.md
(the settings GET works, but there is no write path for our auth). This PR
therefore ships one singleton, not two.

Scope: error_tracking:read / error_tracking:write.

Stacks on #81 (pl/spec-migration); retarget to main when #81 merges.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
pl added a commit that referenced this pull request Jul 23, 2026
…ble, alerts deferred

Error tracking settings shipped (#93); spike detection config excluded
(write endpoint rejects personal API keys). Alerts deferred: only marker
home is the notification-facing name field. Two new upstream issue
candidates recorded.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant