#3993
Docs: run-workflows-on-a-schedule tells readers to curl /health for queue state, which no longer lists schedules
5m ago
#3992
Collective invite shows "This invitation has expired or has already been used" after a successful join via Google sign-in
13m ago
#3991
Move the Zod argument-field extractor into @swamp-club/extension-scoring so the CLI and registry read schemas alike
1h ago
#3989
Docs: extension quality scores with the registry formula and reports grade (swamp-club#3845)
1h ago
#3988
serve: dispatch to an idle worker waits for its worker_busy write on the shared gateway transition tail
2h ago
#3987
serve: worker enrollment resolves and creates the worker definition inside the serialized gateway transition tail
2h ago
#3985
Datastore rework Phase 5 (team mode) 2/3: the CLI's serve upstream — with serverAddress, a v3 checkout commits, reads chunks and catches up through serve's datastore API, with no storage credentials
2h ago
#3983
Extension dependencies: the shared import scan reads Babel syntax, not tokens (follow-up to #3969)
2h ago
#3980
Rescore every extension's current version under rubric v5
3h ago
#3979
Extension scoring queue: two replicas can claim the same pending event
s1h ago
#3976
Scheduled flaky-test detection is failing
4h ago
#3974
Manual: the supported extension dependency categories, the canonical form and the lock rule, rewritten once against the final design
4h ago
#3973
Registry audits v2 extension archives as written, and a range costs the loose point only without a valid lock
4h ago
#3972
Extension consumers keep the publisher's bundle: pull, update and auto-resolve stop rebuilding (direction A for #3634)
4h ago
#3971
Extension push: inputs that open up (workspace root lock, ancestor config refused by name, JSR dist-tags) and the skill docs rewritten once
4h ago
#3970
Extension push ships the canonical form: every npm:/jsr: import pinned exact, and a v2 dependency-audit.json
4h ago
#3964
stagecraft studio ticket columns: round-5 review lows from #3828 (source watch cost, relationText lookup, cross-instance claim)
8h ago
#3963
A long-lived serve client for extensions, and a stable rate_limited error code
8h ago
#3962
swamp serve on a v3 datastore never settles a workflow run left running by a stopped instance: boot reaper skips it as belonging to a remote instance
8h ago
#3961
swamp serve on a v3 datastore: a run interrupted at a clean shutdown is never committed when the bucket is slow, and stays running for every other checkout
8h ago
#3957
Support creating 1Password vaults for new clients
13h ago
#3955
Filesystem datastore: an unclean shutdown leaves zero-byte data versions as the latest version, and `doctor datastores --repair` does not detect them
16h ago
#3953
datastore_v3_replica_verify_test stall case flakes under the full integration run: restore.pid is read before the stub writes it
22h ago
#3946
Generated state schemas require every child of nested objects, so normal resources warn on create/get
1d ago
#3930
Add LinkedIn as a login provider
1d ago
#3929
Showcase reward backfill can double-pay 5,000,000 points when replicas start together
1d ago
#3928
Showcase editor: caption counter is not announced to screen readers
1d ago
#3927
Profile showcase read: approved list sorts on review.reviewedAt in memory
1d ago
#3926
Showcase countByStatus: $match live statuses before the $group
1d ago
#3925
Showcase admin queues: index-serve the updatedAt sort on approved/rejected
1d ago
#3914
Annotate and retain past workflow runs and data after the fact
Enterprise1d ago
#3913
Docs: --trusted-hosts accepts host:port for public addresses on non-default ports
1d ago
#3887
A workflow step's method output is invisible to `data query` and `data list`, and the method summary's retrieval command returns an older run's data
9h ago
#3885
Skill propulsion rule is silent when no transition is satisfied because stage work is outstanding
2d ago
#3870
package.json mode: no loose-specifier warning for a range push ships as the exact installed version
3d ago
#3869
extension fmt (and any command) creates or rewrites deno.lock when the extension lives in the repo's loaded extensions/ dir
3d ago
#3865
serve shutdown does not wait for worker status writes, and its listener accepts workers after the gateway is disposed
3d ago
#3855
stagecraft: rename work mode `method` to `behavior`, matching swamp's rename of models to behaviors
3d ago
#3843
auth token create --json fields key and signinToken are undocumented; no token-mode service setup page
3d ago
#3841
trigger.schedule is evaluated in the serve host's local time zone, with no zone field and no doc saying so
3d ago
#3839
workflow validate/run say "Workflow not found" for a file that doctor workflows explains is misnamed
3d ago
#3833
telemetry stats says "No telemetry data found" right after successful sends; say the spool is empty because it flushed
3d ago
#3829
Docs: publish typed-secrets Phase 4.6 expression and delivery semantics
3d ago
#3825
Extension registry page: a supported way to include media (images) in the README
3d ago
#3816
CEL: data.latest(...).version is a double, but data.version() only accepts int, so "version - 1" fails at run time
3d ago
#3815
workflow resume --run refuses workflows with the same step name in two jobs, though validate and run accept them
3d ago
#3787
Update public OpenTelemetry manual for remote waterfalls and execution metrics (#3786)
4d ago
#3705
Server-driven warning and info messages to CLI users, targeted by swamp version (exploration)
5d ago
#3703
Serve: delegate namespace-scoped extension pulls and reload without granting administrator access
5d ago
#3702
workflow cancel --server ignores --ca-cert and SWAMP_CA_CERT
5d ago
#3679
Preserve active worker execution across serve restarts and upgrades; reconnect and reattach dispatches
6d ago
#3674
v3: chunk durability barrier costs a full drive-cache flush per command on macOS; use an ordering barrier
3d ago
#3663
vary/forEach object values with no key/name/id produce data names Windows refuses
6d ago
#3651
issue-lifecycle start drops issue comments: context.comments is always empty
7d ago
#3647
swamp core: a non-string sensitive value reads back as a JSON string
7d ago
#3641
Generated vault keys carry raw data-name and vary characters that strict vault providers reject
7d ago
#3639
bundleExtension 'bundles on different caches do not wait for each other' test fails under CPU load
7d ago
#3634
extension install and extension pull leave different bundles for the same extension version
7d ago
#3608
Registry drops contentMetadata.extensions (method grafts) at confirm-push
7d ago
#3603
Multi-model skill eval: gpt-5.4 and gemini jobs fail preflight every run (OpenAI credits exhausted, Google API key invalid)
s7d ago
#3600
local_source_failed drops the indexing error: a transient local extension failure leaves no cause (follow-up to 1672)
7d ago
#3580
Finer-grained method locking: a long-running method on one definition blocks unrelated objects managed by the same definition
Team9d ago
#3579
Surface (or warn about) values a model method returns besides dataHandles, with sensitive-field support
Team9d ago
#3578
workflow placement: run a workflow transparently on a specified host, local or via swamp workers (incl. nested child workflows)
Team9d ago
#3554
issue-lifecycle: pr_merged and ship report success and advance the phase when swamp-club is unreachable, writing nothing upstream
10d ago
#3523
auth login leaves auth.json apiKey empty and stores the key only in ~/.config/swamp/api-key, which the auth gate never reads
11d ago
#3514
swamp-extensions CI: Review Integrity explains a stalled or failed audit (streamed progress, timeout, did-not-finish comment)
7d ago
#3483
Workflow run cancellation on concurrency-key conflict
12d ago
#3480
Read non-string sensitive resource fields back with their type
12d ago
#3470
Run index repair-by-stat misses an in-place, same-size record rewrite that restores mtime within the same second as its entry: ctime is reported in whole seconds
12d ago
#3408
Configurable storage tiers: runs, outputs, data versions and audit move through an ordered list of user-defined tiers, and stay queryable across them
12d ago
#3401
A global argument that evaluates to swamp-namespace expression text is silently dropped, and literal() cannot pass it through
13d ago
#3399
serve: the per-IP WebSocket burst limit can't be configured, so workers behind one NAT IP throttle each other
10d ago
#3383
extension pull: safety analysis scans the bundle the extension runs
s1h ago
#3361
S3-backed serve: a poll that pulls one file invalidates the whole data catalog, so the next query re-reads every version
13d ago
#3344
extensions_search index is never created if the first attempt fails, until the process restarts
13d ago
#3305
S3/GCS datastore sync: shared sync service lets one sync clear another's dirty marks and pull over unpushed files
14d ago
#3298
swamp-uat: the SIGTERM drain test does not check that the run succeeded
14d ago
#3297
stagecraft: a factory-wide read of work items waiting on a person (no studio, no per-item status loop)
14d ago
#3292
stagecraft: rebind a work item to another tracker (mirrored built-in tickets to Jira)
14d ago
#3280
s3-datastore: first push on a fresh cache prints 'Index merge failed' for a missing local .datastore-index.json
14d ago
#3272
swamp-extensions: use explicit npm:/jsr: specifiers in root extensions/models
14d ago
#3229
stagecraft: studio state_test 'after its event stream reconnects' is timing-flaky under load
16d ago
#3208
Activity projector fails with ZooKeeper "Bad version" error on swamp.score_grants during keeper instability
17d ago
#3198
s3-datastore: model-scoped pullChanged lists and walks the whole namespace
18d ago
#3169
extension safety analyzer does not warn on node:child_process or cluster subprocess spawning
18d ago
#3133
Model types: decide whether names like @/@x/y or a+b/c should be legal (type grammar)
19d ago
#3103
seed:collective cannot produce a superseded personal trial or a returned trial, so the UAT cannot cover them
20d ago
#3073
serve HA: pull a token's definition on an auth miss so a peer accepts a new token at once
20d ago
#3065
extension push: accept attestation-backed adversarial-review evidence (lookup by extension and content hash), generated provenance, and carry the evidence to the registry at confirm (design: Lab #3023)
3d ago
#3060
Decide a stricter naming rule for workflow step and job names
20d ago
#3010
s3-datastore/serve: readResource without a version returns an older version; the latest marker is rewritten backwards
Team10d ago
#3004
Publish agent-facing projections of the manual: /llms.txt, .md pages, and llms-full.txt
Enterprise22d ago
#3000
Let agent-runner drive more agent CLIs (Kilo Code and others)
23d ago
#2998
s3-datastore: every fast-path miss re-downloads every _index shard, so a busy serve pulls the whole index every poll (~230 GB/day S3 egress)
Team23d ago
#2993
Feedback: Swamp as an approval-gated control plane for a small fleet
21d ago
#2865
Tracking: test baseline required before the datastore refactor (commit-log design)
13d ago
#2754
serve: define and supply the collective and owner grant condition variables
26d ago
#2749
No first-class workflow primitive for spawning a permission-scoped agent session
26d ago
#2727
Decorative animations outside the Lab still repaint on the main thread
27d ago
#2683
s3/gcs datastore: pullChanged overwrites dirty, unpushed cache files
27d ago
#2623
Codegen/AWS: create-only required fields block list/get/delete in generated AWS models
28d ago
#2618
End a collective's trial when it begins a paid subscription
28d ago
#2592
s3-datastore: SWAMP_S3_REQUEST_TIMEOUT_MS does not appear to apply to ListObjectsV2 during pull
28d ago
#2591
s3-datastore: S3Lock.acquire overshoots maxWaitMs by up to a full backoff interval
28d ago
#2590
s3-datastore: a model-scoped pull still lists, walks and indexes the whole namespace
28d ago
#2586
Run the web dashboard locally from the CLI without swamp serve
s28d ago
#2560
extensions: cold-path catalog rebuild skips sources whose type is not a string literal, dropping them for one process lifetime
1mo ago
#2540
serve: rotate the external token-secrets key
1mo ago
#2499
Link each swamp-club panel to its manual page with a header DOCS link
1mo ago
#2495
managedConfig: extension lockfile writes lose updates, and auto-resolved installs never reach the shared lockfile
z26d ago
#2487
Generated @swamp/aws StateSchemas mark conditional and create-only properties as required, producing schema warnings on every read
1mo ago
#2465
workflows: a nested workflow step should inherit the caller's placement when the child declares none
Team9d ago
#2461
Supported vault-write API for extension model methods (per-instance vault target)
Team1mo ago
#2418
serve: after lazy hydration, scoped poller pulls never take the fast path, and the login mint waits behind them on the sync gate
18d ago
#2416
datastore extensions: full pushes re-hash every pulled file on every run because index mtimes never match pulled copies
1mo ago
#2410
Extension catalog caches a datastore bundle with an empty type, so the repo fails with Unknown datastore type when addressed by its realpath
1mo ago
#2379
Let a method inside serve start a workflow run: context.runWorkflow
1mo ago
#2349
s3/gcs datastore: no safe recovery when _meta.json v2 lists a shard missing from the bucket
1mo ago
#2345
worker secret allowlist rejects caller-chosen vault references resolved at run time (method args carrying {vaultName, secretKey})
Team26d ago
#2344
serve: default placement for steps that declare none (so one workflow runs both locally and via workers)
Team9d ago
#2339
s3-datastore: per-datastore AWS profile, so a serve audit store can use different credentials from the main datastore
Team1mo ago
#2329
s3/gcs-datastore: clean up data left behind by deletes that silently no-opped before the swamp-club#2249 fix
1mo ago
#2326
Expose Swamp as a REST/OpenAPI endpoint (for GPT Actions and other REST clients)
1mo ago
#2323
Promote CodeBuddy and WorkBuddy from custom-tool configs to first-class Swamp clients
1mo ago
#2299
s3-datastore: documented offline behaviour is unreachable — lock acquire fails closed before pull, while a mid-run outage exits 0 with the data stranded
Team1mo ago
#2259
Route log-mode output to stderr by default, with commands opting stdout back in
1mo ago
#2232
Billing telemetry: surface scheduled cancellations (cancelAtPeriodEnd) and emit subscription_canceled reliably
1mo ago
#2210
A pending platform invite that loses to the recruit lane is never consumed and leaks a pending slot
1mo ago
#2209
Recruit links have no web surface — a CLI-less operative cannot get their link
1mo ago
#2196
Workload identity (Kubernetes ServiceAccount / OIDC) for worker enrollment
1mo ago
#2147
Feed grant projection stamps a site route that does not exist
1mo ago
#2141
UAT coverage for workflow history outputs and expanded JSON schema
1mo ago
#2102
Serve Audit Log - Phase 6: Full documentation
24d ago
#2096
Per-extension white listing
1mo ago
#2027
Retire or rebuild /admin/nurture once the epic lands — it is a gate, and gates are single-use
1mo ago
#2025
harness-marketing-funnel posts {batch:[...]} to /ingest, which is not a batch — every run silently measures zero
1mo ago
#2024
feat(cli): swamp inbox — read swamp-club notifications without leaving the terminal
1mo ago
#2023
feat(cli): tell operatives they have swamp-club notifications waiting
1mo ago
#2022
feat(api): a cheap unread-notification count for API-key clients
1mo ago
#2021
feat(nurture): deliver to the swamp-club inbox on the same dedupe decision as email
1mo ago
#2008
Epic: Product nurture — lifecycle identification, dedupe-safe delivery, and operator control (email, inbox, CLI)
1mo ago
#1969
Add interactive serve setup skill with best-practice guidance
1mo ago
#1968
Add intent and scope discovery to extension creation skill
1mo ago
#1886
feat(ui/tokens): metadata field or tags for collective API tokens
1mo ago
#1857
UAT: workflow resume --from with forEach expression template names
2mo ago
#1821
SCIM 2.0 provisioning endpoint for swamp-club (Users + Groups, deprovision)
2mo ago
#1820
SSO user profile fields are frozen at first login — overrideUserInfo is never set on any provider
2mo ago
#1814
add links to the docs for all account progress teasers
Team2mo ago
#1813
A subscription stuck in incomplete has no path forward: it grants nothing, and the billing page offers no way to finish paying
2mo ago
#1812
Identifier lookups are exact-match and case-sensitive across username, email and slug
2mo ago
#1811
Invite failures emit no telemetry, so a rejected invitation leaves no trace anywhere
2mo ago
#1810
Collective invitations expire after 48h and the auto-claim is gated on that window, so a late signup is never bound
2mo ago
#1809
Invite typeahead searches username prefix only, so an operative cannot be found by name or email
2mo ago
#1806
Send the release headline from the release pipeline so New Release announcements say what shipped
2mo ago
#1686
Support credentials in datastore config (vault-resolvable)
2mo ago
#1674
Feature: user-configurable redaction rules (.swamp/redaction.yaml)
Enterprise2mo ago
#1668
Lab lifecycle POST rejects any payload string that starts with a dollar sign, not just operator keys
2mo ago
#1667
Finish the swamp_* attribute set on Attio users, and settle the two unprefixed ones (#809 follow-up)
2mo ago
#1666
aria-expanded is a raw boolean in 12 places — collapsed state is unannounced to screen readers
2mo ago
#1663
swamp CLI: surface the audience and resolvedInVersion fields swamp-club now serves
s1mo ago
#1662
ApiKeyManager's collapsed trigger points aria-controls at an element it never renders
2mo ago
#1661
A boolean aria-expanded renders as no aria-expanded: two disclosure widgets report no state to a screen reader
2mo ago
#1653
Tell the inviter when a collective invite mis-lands, instead of leaving it pending forever
2mo ago
#1603
CLI has never sent insert_id: retried telemetry batches are double-counted into cli_daily, inflating XP in an append-only ledger
2mo ago
#1597
Docs: manual never mentions telemetry, and the serve/scheduling pages imply automated runs are visible when they are not
26d ago
← Back to list9/5/2026, 12:36:38 AM
01Issue
FeatureIn ProgressSwamp ClubPublic
Assigneeskeeb
#2016 feat(nurture): arm the first flow — extension published, email only, verified in prod
Opened by keeb · 9/4/2026
Parent: the product-nurture epic. The first real send.
Problem
Everything up to here has been verified without contacting a single operative. This issue turns the machine on, once, on the safest possible flow, and proves the whole spine end to end in production.
Why this flow first
extension_published (whiteboard #4, GROW CHAMPION) is the right first arm for
four independent reasons:
- Event-triggered, not time-triggered. It fires off
extension_published, which the app already emits. There is no dormancy window to get wrong. - The cold-start backlog is bounded and inspectable — the set of already-published extensions, which you can count before arming.
- It cannot be wrong in a way that hurts. The worst failure is congratulating someone who did publish an extension.
- Its
occurrenceKeyis the extension name, so it exercises the repeatable case rather than the trivial once-ever one — which is the part of the dedupe design most worth proving early.
What ships
- Arm
extension_published, email channel only. The inbox comes in D1; keeping this to one channel means a failure here has one possible cause. - The cold-start seal runs first and claims every historical publish. Record the sealed count on this issue before flipping the arm.
- A per-tick send cap (propose 10) for the first week.
Verification — in production, not just in tests
- Confirm the sealed count matches the count of pre-
armedAtpublished extensions, from a hand-run query. If they differ, stop. - Publish a real extension from a test account. Confirm exactly one row moves
candidate→sent, the email arrives, and the panel shows the provider message id. - Publish a second extension from the same account. Confirm a second row is created (the occurrence key is the extension) and a second mail arrives.
- Re-publish a new version of the first extension. Confirm no new row — the key is the extension, not the version.
- Run the projector twice in the same window. Confirm zero duplicate sends.
- Unsubscribe from the footer link, publish again, confirm the row is
suppressedwith the reason rendered and no mail is sent.
Steps 3–6 are the ones that actually prove the epic's central claim. Do not skip them because step 2 passed.
Out of scope
Every other flow. Do not arm a second flow in this issue — the whole point is that a failure here has exactly one candidate cause.
02Bog Flow
In Progress
Click a lifecycle step above to view its details.
03Sludge Pulse
keeb linked parent of #20089/4/2026, 7:41:11 PM
keeb linked blocked by #20129/4/2026, 7:41:44 PM
keeb marked as blocked9/4/2026, 7:41:44 PM
keeb linked blocked by #20139/4/2026, 7:41:45 PM
keeb linked blocked by #20149/4/2026, 7:41:46 PM
keeb linked blocked by #20159/4/2026, 7:41:48 PM
keeb linked blocked by #20179/4/2026, 7:41:49 PM
keeb linked blocked by #20189/4/2026, 7:41:50 PM
keeb linked blocked by #20199/4/2026, 7:41:51 PM
keeb linked blocked by #20209/4/2026, 7:41:52 PM
Sign in to post a ripple.