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 JobServicePluginkernel: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-zhuangand 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

vercelBot commented Jun 14, 2026

Copy link
Copy Markdown

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

ProjectDeploymentActionsUpdated (UTC)
specReadyReadyPreview, CommentJun 14, 2026 6:15am

Request Review

@github-actionsgithub-actionsBot added documentation Improvements or additions to documentation tests tooling size/l labels Jun 14, 2026
@xuyushun441-sys
xuyushun441-sys merged commit f19caef into mainJun 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 freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentationImprovements or additions to documentationsize/lteststooling

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@xuyushun441-sys@os-zhuang