Skip to content

feat(GA): close P0-5 (single-instance caps) + P1-2 (unbounded growth)#1837

Merged
xuyushun441-sys merged 2 commits into
mainfrom
ga/p0-5-p1-2-retention-caps
Jun 14, 2026
Merged

feat(GA): close P0-5 (single-instance caps) + P1-2 (unbounded growth)#1837
xuyushun441-sys merged 2 commits into
mainfrom
ga/p0-5-p1-2-retention-caps

Conversation

@xuyushun441-sys

Copy link
Copy Markdown
Contributor

Lands the two GA-gating launch-readiness items, scoped to the single-instance v1 topology decision.

P0-5 — realtime/feed in-memory, no cluster coordination

Accepted as single-instance / non-HA for v1 with default-on memory backstops:

  • InMemoryFeedAdapter defaults maxItemsDEFAULT_MAX_FEED_ITEMS (100k)
  • InMemoryRealtimeAdapter defaults maxSubscriptionsDEFAULT_MAX_SUBSCRIPTIONS (50k)
  • 0 = explicit unbounded opt-out; both plugin JSDocs state the non-HA contract
  • HA (Redis realtime adapter over existing RedisPubSub + DB-backed feed adapter) recorded as post-GA roadmap

P1-2 — unbounded execution logs / job runs / event log

Corrected scope: only sys_job_run was truly unbounded.

  • service-job: new JobRunRetention (mirrors NotificationRetention) — bulk delete sys_job_run where created_at < cutoff under a system context, default-on at 30d, swept every 6h via an unref'd timer in JobServicePlugin kernel:ready (DB path only); retentionDays: 0 disables.
  • service-messaging: retention flipped default-on (0 → 90d). ⚠️ Behaviour change — notification history now auto-prunes at 90 days by default; set retentionDays: 0 to keep the old keep-forever behaviour.
  • service-automation: exec-log ring buffer (already bounded; no OOM risk) cap made configurable via AutomationServicePluginOptions.maxLogSize (default unchanged at 1000).

Verification

  • +11 tests across feed/realtime/job/automation.
  • All touched packages green: feed 42, realtime 25, job 31, automation 187, messaging 128 (= 413).
  • All touched packages build incl. DTS.
  • docs/launch-readiness.md updated (P0-5/P1-2 → Verify ✓, topology checkbox ticked, HA fast-follow in roadmap). 3 changesets included.

🤖 Generated with Claude Code

os-zhuang and others added 2 commits June 14, 2026 11:03
…ge duplicates

ADR-0048 §3.4 retired the per-item cross-package collision throw, but the
naming/namespace-prefix lint rule was never updated to match. It fired on every
bare-named UI/automation item (hotcrm: 63 false positives) and claimed the
package would "collide on the registry key and fail at install" — both false.

The rule now warns only on a genuine intra-package duplicate (type, name) pair
within the linted config (the authoring-hygiene case §3.4 leaves to os lint).
Unique bare names produce zero warnings. Message no longer claims an install
failure. Runtime/registry behavior unchanged.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Lands the two GA-gating launch-readiness items, scoped to the v1
single-instance topology decision.

P0-5 (realtime/feed in-memory, no cluster coordination) — accepted as
single-instance/non-HA for v1 with memory backstops:
- InMemoryFeedAdapter defaults maxItems to DEFAULT_MAX_FEED_ITEMS (100k)
- InMemoryRealtimeAdapter defaults maxSubscriptions to DEFAULT_MAX_SUBSCRIPTIONS (50k)
- 0 = explicit unbounded opt-out; both plugins document the non-HA contract
- HA (Redis realtime adapter + DB feed adapter) recorded as post-GA roadmap

P1-2 (unbounded execution logs / job runs / event log):
- service-job: new JobRunRetention sweeper (mirrors NotificationRetention),
  default-on at 30d, swept every 6h via an unref'd timer wired in
  JobServicePlugin kernel:ready (DB path); retentionDays:0 disables
- service-messaging: retention flipped default-on (0 -> 90d). Behaviour
  change: notification history now auto-prunes at 90d (set 0 to keep forever)
- service-automation: exec-log ring buffer cap made configurable via
  AutomationServicePluginOptions.maxLogSize (default unchanged at 1000)

+11 tests across feed/realtime/job/automation; all touched packages build
(incl. DTS) and test green. launch-readiness.md updated (P0-5/P1-2 verified,
topology checkbox, HA roadmap). Changesets included.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@vercel

vercel Bot commented Jun 14, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
spec Ready Ready Preview, Comment Jun 14, 2026 6:15am

Request Review

@github-actions github-actions Bot added documentation Improvements or additions to documentation tests tooling size/l labels Jun 14, 2026
@xuyushun441-sys
xuyushun441-sys merged commit f19caef into main Jun 14, 2026
12 checks passed
@xuyushun441-sys
xuyushun441-sys deleted the ga/p0-5-p1-2-retention-caps branch June 14, 2026 06:21
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Improvements or additions to documentation size/l tests tooling

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants