#1337
Hide enterprise (SSO) operatives from announcements and leaderboard by default
#1294
Expose the swamp.club feed as an RSS feed
#1246
Docs: manual should state workflow unknown keys are rejected and placement is step-only (follow-up to #1240)
#1276
ExtensionInfo.latestVersion typed 'string' but registry returns null; harden pull/resolve for prerelease-only extensions
#1229
Docs: swamp skill repo-structure reference still documents repo-local .swamp/telemetry/ as live
#1129
Docs: document user-global telemetry (telemetry.yaml opt-out, spool location, telemetry stats behavior)
#1082
score_daily rollup strands stale grains when a day-less grant re-stamps onto a later day
#1093
swamp-club: global rate limiter runs pre-auth and collapses all direct clients into one per-IP bucket — 429s authenticated CLI traffic
#958
feed_post_score_events queue grows unboundedly (no TTL, no delete-on-delivery)
#954
@-mention autocomplete for users when writing lab ripples
#959
Remove comments from /feed and redesign the page
#875
Score-refresh consumer: harden coalescing against a diverse backlog (bistability)
#844
Remove feed comments — consolidate discussion in Discord
#956
Relax the profanity filter
#736
Extension search returns edit-distance noise for short queries ("asdl" → "AWS DEADLINE")
#828
Telemetry recoverOrphaned startup race with multiple replicas (created_at-based)
#827
Telemetry retry/failed path has the same non-atomic claim as #820
#1125
Telemetry silently dropped outside a swamp repo — lost events + undercounted scores
#1120
serve: create*Deps() factories leak file-based catalog stores (3 FDs) per API request
#1121
flaky test: manual_approval suspension test leaks 3 timers (OTel InMemorySpanExporter setTimeout)
#1118
serve leaks file descriptors (EMFILE) — runFileSink.unregister runs after yield, not in finally
#1092
swamp-club: /api/whoami 500s on fresh install — ensureIndexes {id:1} conflicts with migration 012 id_lookup index
#1091
data prune --json omits reclaimedModels[].modelName when a report entry is grouped first
#1058
Serve leaderboard locate ('find yourself') live, retiring its per-replica standings cache
#1055
Serve leaderboard live from the score_daily rollup — retire per-pod snapshot & campaign-blind board fallback
#1012
Docs: document swamp data prune (orphaned-data reclamation)
#973
issue-lifecycle: plan lifecycle entry silently dropped when summary exceeds 1000 chars
#950
/lab shipped list is sorted by issue number, not ship date
#924
Collscan/index-gap pack: unindexed $or id branches (every registry request), computed-field sort kills extension browse indexes, $expr blocks pull counts, apikey.userId, workflow_runs, 1100-doc profile fetch
#926
Request-path external fetches with no timeout / no negative cache: profile GitHub/Discord resolution and landing-page total count (30s → 504 mechanism)
#921
Auth hot path: 7 serial Atlas round trips per API-key request; session cookie cache dies after 5 min; session/apikey lookups unindexed
#923
Leaderboard: window boards are unindexed full-collection aggregations ×4 per locate miss; locate fetches 4×10k rows to rank one user; search() has O(sum-of-ranks) lookup fan-out
#922
/lab loads every issue with full markdown bodies on every request (incl. detail pages) + ~12 serial DB waves — the 3.4s avg / 30s tail
#872
Activity heatmap clips the current UTC day — uses local browser time for "today" but snapshots are UTC-keyed
#854
Epic #847 · Unit 2: score_grants append-only ledger write-model in Mongo (shadow, no read flip)
#859
Decouple prod ClickHouse from S3 (drop storage_policy=s3_main) + add a DDL migration path
#853
Epic #847 · Unit 1: Land the ClickHouse projection foundation (schema + init SQL + compose service)
#820
Telemetry watcher has no replica coordination: N replicas double-process the same batch (non-atomic find→updateMany claim)
#819
Telemetry drain still capped ~80-100/s in prod: per-username full-history re-aggregate is O(users) sequential per batch (deferred #817 fix #4)
#817
Telemetry ingest is consumer-bound: counter & stats dedup via O(N) sequential insertOne, throughput stuck ~20 events/s regardless of BATCH_SIZE
#719
Docs: document trigger.inputs for scheduled/webhook workflows in the manual
#729
serve --webhook usage string makes <header> look optional for generic scheme
#737
Yank semantics inconsistent: all-versions-yanked acts as a free hidden/private extension; extension-level yank hard-blocks re-push
#728
serve: webhook scheme not surfaced in startup event, health endpoint, or log line
#726
Slack webhook pre-body gate only checks signature header, not timestamp
#725
Dead code: verifySignature in webhook.ts superseded by verifier abstraction
#709
Replace third-party trademark symbol with Swamp Club (SC) mark in TRADEMARKS.md
#650
datastore setup migration relocates and deletes repo-root .swamp/secrets, breaking all local_encryption vault.get
#649
Registry content-type search filter can match versions absent from the displayed extension
#648
Docs: document reports.require failure semantics in the manual (unresolvable required report fails the run)
#645
Resource-leak test failures on main: extension_rubric_scorer_test and worker_gateway_test
#635
Tier-up announcements never fire for direct score contributions (badge awards, feed credits)
#507
Feed-post scoring is a direct domain write, not a consumer of feed_post_approved telemetry
#492
reindexByUsername re-strands pre-association history and wipes sign_in_dates
#573
extension search returns null repository fields that extension info populates
#509
Docs: TLS behind inspecting proxies / private CAs (system trust store, DENO_CERT, SSL_CERT_FILE)
#491
Telemetry never retroactively credits a device's pre-association history
#448
Telemetry admin reindex endpoint is gated on a defunct @systeminit.com email domain — permanently 403
#445
extension update/pull deadlocks when the repo's datastore is the extension being updated
#430
--json output is polluted by non-JSON content, breaking machine parsing
#424
swamp serve: extension bundle failure at startup is silently pinned, breaking scheduled workflows with permanent 'Unknown model type'
#413
Harness detection invents env vars for kiro/opencode/codex
#393
Extension METHODS table truncates Method column; short names like apply/check wrap mid-word on /extensions/@swamp/ssh
#392
swamp extension rm leaves empty <kind>-bundles/<hash>/ dirs behind
#383
`swamp extension rm` leaves empty scaffold dirs behind
#362
Unified login input that detects email vs username by presence of '@'
#338
Step key parsing in execution_service uses naive split(":") and silently truncates colon-containing step names
#337
Workflow-scope report artifacts unreachable via `swamp data get --workflow`
#301
Per-method telemetry events for workflow runs
#292
Add agent harness detection and AiTool to telemetry
#280
Missing unique indexes on user.email and user.username allow duplicate users
#278
discord-bot double-sends sign_up notifications
#232
Extend DatastoreSyncService.markDirty() with optional relPath argument
#192
swamp-club extension card no longer exposes @ns/slug as contiguous text
#170
Docs: repository-configuration.md missing defaultDriver / defaultDriverConfig
#178
Better Auth rejects requests on hostnames not in hardcoded trustedOrigins (signup/signin broken on non-canonical hosts)
#96
Persist lab filter selection in localStorage
#165
cleanup for repoDriver
#159
Add repo-level `defaultDriver` to `.swamp.yaml`
#143
First-class jsr: specifier support in extension bundler
#97
Inline editing: click-to-edit fields instead of pencil icons
#122
Footer floats when page content is shorter than viewport
#110
Remove traffic lights in column 2 of /lab
#101
Flow modal: text rendering issues
#106
Bog flow: text rendering and layout issues
#109
Multi-select combo filtering on /lab
#112
Filter lab issues by author (opened by user)
#113
Usernames aren't linked to their profile pages
#114
Collapsible left rail and repositionable right rail in Lab
#115
'Assigned to me' overlaps 'Privacy policy' on short viewports
#84
Consolidate MethodReportContext construction — manual and workflow report paths build contexts divergently
#108
data gc skips version-count GC when no lifetime-expired data exists
#98
Description 'Show more' button appears even when text fits
#99
Normalize text sizing across issue list and detail views
#107
Content filter should identify the flagged word or phrase
#90
Audit: modelRegistry.get() without ensureTypeLoaded() in YAML repository save() paths
#91
Vault CEL expressions replaced with VaultSecretBag sentinels after model type upgrade
#86
issue-lifecycle models should support --assignee for swamp.club issues
#89
Cross-model expression validator fails on lazy-loaded types — modelRegistry.get() bypasses ensureTypeLoaded
#35
Consolidate method execution paths — workflow steps and manual runs build MethodContext divergently
#33