#1728
"TRIAL ENDED" modal shown to team plan user when toggling extension visibility
#3288
swamp repo upgrade does not remove the superseded skills it warns about
#3287
Extension safety scanner rejects .eval() method calls, blocking @swamp/stagecraft install
#2476
swamp serve does not register webhook schemes from pulled extensions; boot fails with misleading 'already installed but failed to load'
#2291
Subscription-end email wrongly says 'trial ended' after paid subscription
#2234
Hot-reload serve.yaml webhook routes (like trigger overrides), not just at startup
#2204
Add a static-token webhook scheme (constant-time header equality) for Telegram-style secret tokens
#2026
writeCatalogExport takes 55-150s per workflow step — serializes entire catalog as pretty-printed JSON
#2003
buildDeps should reuse repoContext.unifiedDataRepo instead of creating a standalone repo per step
#1984
readResource returns stale cursor on serve scheduled workflow runs
#1955
serve boot: sweepStaleRecords does a full modelMethodRun per stale lease (~12.5s each), serializing boot reconciliation — 4m28s to sweep nothing
#1941
install.sh: 'stable' alias tarball and .sha256 are published non-atomically — checksum verification fails during every release window
#1915
swamp extension quality resolves datastores: against the repo root but models: against the manifest dir — datastore extensions are unscorable in a monorepo
#1866
`--server` list commands render the TUI picker into a non-TTY pipe
#1759
`search` → `list` aliases are hand-rolled Command clones, not aliases: 10 of 11 have drifted from their parent's option set
#1733
Skip 50MB monolithic index rewrite on v2 shard-first path
#1732
Share single AwsS3Client instance across lock, sync, and verifier
#1731
Double shard assembly per command lifecycle (pull + push both read all shards)
#1730
pullChanged never records commitSeq for shard-first (v2) index
#1729
localHasAllRemoteEntries() permanently blocks sidecar update on partial caches
#1709
Datastore MongoDB driver leaks connections — 5960 accumulated over 8 days
#1138
Feed: detect and gracefully handle dead (404) post links (link rot)
#1137
/feed: per-post unread indicators and mark-as-read to track reading progress
#1352
Website extension search ignores API relevance — exact name match "good-planning" ranks #10 (API ranks it #1)
#1139
Lab: URLs inside list items aren't clickable (linkified) in rendered issue bodies/summaries
#1600
swamp serve: data.query fails permanently with "UNIQUE constraint failed: catalog.*" — one duplicate catalog 5-tuple aborts every catalog rebuild
#1555
extension search: channel-filtered results carry null version fields, and multiple --channel values collapse instead of unioning
#1552
Workflow runs with wide dataArtifact fan-out (~400/run) OOM both workflow history get and swamp serve boot, crash-looping the scheduler; rollback doesn't help (state-triggered, not release-triggered)
#1490
extension quality scorer misreads a template-literal import specifier in generated code as an unresolvable bare import, hard-erroring the whole extension as UNSCORABLE
#1481
extension quality --json exits 1 with 'rubric factors missing' even when a full score was computed (unearned factor, not uncomputable)
#1467
seadex-latent-bugs: latent product bugs pinned by the wave-2b test backfill
#1440
data delete removes data locally but push reports 'no changes' — next datastore sync restores everything
#1420
No way to select which vault receives a sensitive-marked field's value
#1427
workflow assert: a step whose CEL expression fails to evaluate is omitted from --junit output, so the XML reports a clean pass
#1414
worker daemon enable: relative/missing --cache-dir fails launchd EX_CONFIG while daemon status reports running
#1419
swamp doctor extensions: nondeterministic BundleBuildFailed for local extensions on an unchanged tree
#1392
Issue redactor corrupts reports: dotted code identifiers masked as hostnames, loopback and RFC 5737 documentation IPs masked, angle-bracket placeholders half-eaten
#1396
data prune resolves auto-definitions at the local path, not the datastore path — deletes live models' data (verified: destroyed a working server token and an active grant)
#1398
workflow/job-lifetime data is never reclaimed — expiry check requires an ownerDefinition.workflowId that step execution never sets
#1399
runModel breadth limit (MAX_INVOCATION_BREADTH=100) is never enforced — tracking object is never written back to the caller context; verified 150/150 calls succeeded
#1391
serve daemon enable is ungated — it reports success, then the account gate fires inside the detached daemon, which crash-loops invisibly
#1390
Purely local operations require a swamp-club account: local-token serve is gated while deprecated --auth-mode none is not, third-party OIDC is gated, and 'Local_Encryption' is paywalled by capitalization
#1389
A collective token stored in auth.json (rather than SWAMP_API_KEY) is permanently scope-less — resolution only runs for the env var, and scopes are never persisted for collective tokens
#1388
An empty stored apiKey counts as authenticated — saveIdentityCache writes apiKey:'' on a virgin machine, permanently satisfying the mandatory-account gate with no credential
#1387
Account/scope gates fire before argument, type and repo validation — 'swamp vault create env my-vault' (the command's own example, an invalid type) returns a paywall instead of 'Unknown vault type'
#1386
auth token create advertises a 'collective:write' scope that does not exist, and following its advice hits 'collective tokens cannot create other collective tokens'
#1385
requireScope does exact string matching — fine-grained scopes fail gates that demand the literal wildcard, and minted scopes are never validated or normalized
#1384
Collective-token scope cache never expires, is never refreshed by whoami, and cannot be cleared via the CLI — scope changes and revocations never take effect
#1382
Collective-token scope cache is keyed on a 12-char token prefix — only 2 chars distinguish org tokens, so a rotated token silently inherits another token's scopes
#1381