Docs: run-workflows-on-a-schedule tells readers to curl /health for queue state, which no longer lists schedules
Collective invite shows "This invitation has expired or has already been used" after a successful join via Google sign-in
Move the Zod argument-field extractor into @swamp-club/extension-scoring so the CLI and registry read schemas alike
Docs: extension quality scores with the registry formula and reports grade (swamp-club#3845)
serve: dispatch to an idle worker waits for its worker_busy write on the shared gateway transition tail
serve: worker enrollment resolves and creates the worker definition inside the serialized gateway transition tail
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
Extension dependencies: the shared import scan reads Babel syntax, not tokens (follow-up to #3969)
Rescore every extension's current version under rubric v5
Extension scoring queue: two replicas can claim the same pending event
Scheduled flaky-test detection is failing
Manual: the supported extension dependency categories, the canonical form and the lock rule, rewritten once against the final design
Registry audits v2 extension archives as written, and a range costs the loose point only without a valid lock
Extension consumers keep the publisher's bundle: pull, update and auto-resolve stop rebuilding (direction A for #3634)
Extension push: inputs that open up (workspace root lock, ancestor config refused by name, JSR dist-tags) and the skill docs rewritten once
Extension push ships the canonical form: every npm:/jsr: import pinned exact, and a v2 dependency-audit.json
stagecraft studio ticket columns: round-5 review lows from #3828 (source watch cost, relationText lookup, cross-instance claim)
A long-lived serve client for extensions, and a stable rate_limited error code
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
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
Support creating 1Password vaults for new clients
Filesystem datastore: an unclean shutdown leaves zero-byte data versions as the latest version, and `doctor datastores --repair` does not detect them
datastore_v3_replica_verify_test stall case flakes under the full integration run: restore.pid is read before the stub writes it
Generated state schemas require every child of nested objects, so normal resources warn on create/get
Add LinkedIn as a login provider
Showcase reward backfill can double-pay 5,000,000 points when replicas start together
Showcase editor: caption counter is not announced to screen readers
Profile showcase read: approved list sorts on review.reviewedAt in memory
Showcase countByStatus: $match live statuses before the $group
Showcase admin queues: index-serve the updatedAt sort on approved/rejected
Annotate and retain past workflow runs and data after the fact
Docs: --trusted-hosts accepts host:port for public addresses on non-default ports
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
Skill propulsion rule is silent when no transition is satisfied because stage work is outstanding
package.json mode: no loose-specifier warning for a range push ships as the exact installed version
extension fmt (and any command) creates or rewrites deno.lock when the extension lives in the repo's loaded extensions/ dir
serve shutdown does not wait for worker status writes, and its listener accepts workers after the gateway is disposed
stagecraft: rename work mode `method` to `behavior`, matching swamp's rename of models to behaviors
auth token create --json fields key and signinToken are undocumented; no token-mode service setup page
trigger.schedule is evaluated in the serve host's local time zone, with no zone field and no doc saying so
workflow validate/run say "Workflow not found" for a file that doctor workflows explains is misnamed
telemetry stats says "No telemetry data found" right after successful sends; say the spool is empty because it flushed
Docs: publish typed-secrets Phase 4.6 expression and delivery semantics
Extension registry page: a supported way to include media (images) in the README
CEL: data.latest(...).version is a double, but data.version() only accepts int, so "version - 1" fails at run time
workflow resume --run refuses workflows with the same step name in two jobs, though validate and run accept them
Update public OpenTelemetry manual for remote waterfalls and execution metrics (#3786)
Server-driven warning and info messages to CLI users, targeted by swamp version (exploration)
Serve: delegate namespace-scoped extension pulls and reload without granting administrator access
workflow cancel --server ignores --ca-cert and SWAMP_CA_CERT
Preserve active worker execution across serve restarts and upgrades; reconnect and reattach dispatches
v3: chunk durability barrier costs a full drive-cache flush per command on macOS; use an ordering barrier
vary/forEach object values with no key/name/id produce data names Windows refuses
issue-lifecycle start drops issue comments: context.comments is always empty
swamp core: a non-string sensitive value reads back as a JSON string
Generated vault keys carry raw data-name and vary characters that strict vault providers reject
bundleExtension 'bundles on different caches do not wait for each other' test fails under CPU load
extension install and extension pull leave different bundles for the same extension version
Registry drops contentMetadata.extensions (method grafts) at confirm-push
Multi-model skill eval: gpt-5.4 and gemini jobs fail preflight every run (OpenAI credits exhausted, Google API key invalid)
local_source_failed drops the indexing error: a transient local extension failure leaves no cause (follow-up to 1672)
Finer-grained method locking: a long-running method on one definition blocks unrelated objects managed by the same definition
Surface (or warn about) values a model method returns besides dataHandles, with sensitive-field support
workflow placement: run a workflow transparently on a specified host, local or via swamp workers (incl. nested child workflows)
issue-lifecycle: pr_merged and ship report success and advance the phase when swamp-club is unreachable, writing nothing upstream
auth login leaves auth.json apiKey empty and stores the key only in ~/.config/swamp/api-key, which the auth gate never reads
swamp-extensions CI: Review Integrity explains a stalled or failed audit (streamed progress, timeout, did-not-finish comment)
Workflow run cancellation on concurrency-key conflict
Read non-string sensitive resource fields back with their type
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
Configurable storage tiers: runs, outputs, data versions and audit move through an ordered list of user-defined tiers, and stay queryable across them
A global argument that evaluates to swamp-namespace expression text is silently dropped, and literal() cannot pass it through
serve: the per-IP WebSocket burst limit can't be configured, so workers behind one NAT IP throttle each other
extension pull: safety analysis scans the bundle the extension runs
S3-backed serve: a poll that pulls one file invalidates the whole data catalog, so the next query re-reads every version
extensions_search index is never created if the first attempt fails, until the process restarts
S3/GCS datastore sync: shared sync service lets one sync clear another's dirty marks and pull over unpushed files
swamp-uat: the SIGTERM drain test does not check that the run succeeded
stagecraft: a factory-wide read of work items waiting on a person (no studio, no per-item status loop)
stagecraft: rebind a work item to another tracker (mirrored built-in tickets to Jira)
s3-datastore: first push on a fresh cache prints 'Index merge failed' for a missing local .datastore-index.json
swamp-extensions: use explicit npm:/jsr: specifiers in root extensions/models
stagecraft: studio state_test 'after its event stream reconnects' is timing-flaky under load
Activity projector fails with ZooKeeper "Bad version" error on swamp.score_grants during keeper instability
s3-datastore: model-scoped pullChanged lists and walks the whole namespace
extension safety analyzer does not warn on node:child_process or cluster subprocess spawning
Model types: decide whether names like @/@x/y or a+b/c should be legal (type grammar)
seed:collective cannot produce a superseded personal trial or a returned trial, so the UAT cannot cover them
serve HA: pull a token's definition on an auth miss so a peer accepts a new token at once
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)
Decide a stricter naming rule for workflow step and job names
s3-datastore/serve: readResource without a version returns an older version; the latest marker is rewritten backwards
Publish agent-facing projections of the manual: /llms.txt, .md pages, and llms-full.txt
Let agent-runner drive more agent CLIs (Kilo Code and others)
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)
Feedback: Swamp as an approval-gated control plane for a small fleet
Tracking: test baseline required before the datastore refactor (commit-log design)
serve: define and supply the collective and owner grant condition variables
No first-class workflow primitive for spawning a permission-scoped agent session
Decorative animations outside the Lab still repaint on the main thread
s3/gcs datastore: pullChanged overwrites dirty, unpushed cache files
Codegen/AWS: create-only required fields block list/get/delete in generated AWS models
End a collective's trial when it begins a paid subscription
s3-datastore: SWAMP_S3_REQUEST_TIMEOUT_MS does not appear to apply to ListObjectsV2 during pull
s3-datastore: S3Lock.acquire overshoots maxWaitMs by up to a full backoff interval
s3-datastore: a model-scoped pull still lists, walks and indexes the whole namespace
Run the web dashboard locally from the CLI without swamp serve
extensions: cold-path catalog rebuild skips sources whose type is not a string literal, dropping them for one process lifetime
serve: rotate the external token-secrets key
Link each swamp-club panel to its manual page with a header DOCS link
managedConfig: extension lockfile writes lose updates, and auto-resolved installs never reach the shared lockfile
Generated @swamp/aws StateSchemas mark conditional and create-only properties as required, producing schema warnings on every read
workflows: a nested workflow step should inherit the caller's placement when the child declares none
Supported vault-write API for extension model methods (per-instance vault target)
serve: after lazy hydration, scoped poller pulls never take the fast path, and the login mint waits behind them on the sync gate
datastore extensions: full pushes re-hash every pulled file on every run because index mtimes never match pulled copies
Extension catalog caches a datastore bundle with an empty type, so the repo fails with Unknown datastore type when addressed by its realpath
Let a method inside serve start a workflow run: context.runWorkflow
s3/gcs datastore: no safe recovery when _meta.json v2 lists a shard missing from the bucket
worker secret allowlist rejects caller-chosen vault references resolved at run time (method args carrying {vaultName, secretKey})
serve: default placement for steps that declare none (so one workflow runs both locally and via workers)
s3-datastore: per-datastore AWS profile, so a serve audit store can use different credentials from the main datastore
s3/gcs-datastore: clean up data left behind by deletes that silently no-opped before the swamp-club#2249 fix
Expose Swamp as a REST/OpenAPI endpoint (for GPT Actions and other REST clients)
Promote CodeBuddy and WorkBuddy from custom-tool configs to first-class Swamp clients
s3-datastore: documented offline behaviour is unreachable — lock acquire fails closed before pull, while a mid-run outage exits 0 with the data stranded
Route log-mode output to stderr by default, with commands opting stdout back in
Billing telemetry: surface scheduled cancellations (cancelAtPeriodEnd) and emit subscription_canceled reliably
A pending platform invite that loses to the recruit lane is never consumed and leaks a pending slot
Recruit links have no web surface — a CLI-less operative cannot get their link
Workload identity (Kubernetes ServiceAccount / OIDC) for worker enrollment
Feed grant projection stamps a site route that does not exist
UAT coverage for workflow history outputs and expanded JSON schema
Serve Audit Log - Phase 6: Full documentation
Per-extension white listing
Retire or rebuild /admin/nurture once the epic lands — it is a gate, and gates are single-use
harness-marketing-funnel posts {batch:[...]} to /ingest, which is not a batch — every run silently measures zero
feat(cli): swamp inbox — read swamp-club notifications without leaving the terminal
feat(cli): tell operatives they have swamp-club notifications waiting
feat(api): a cheap unread-notification count for API-key clients
feat(nurture): deliver to the swamp-club inbox on the same dedupe decision as email
Epic: Product nurture — lifecycle identification, dedupe-safe delivery, and operator control (email, inbox, CLI)
Add interactive serve setup skill with best-practice guidance
Add intent and scope discovery to extension creation skill
feat(ui/tokens): metadata field or tags for collective API tokens
UAT: workflow resume --from with forEach expression template names
SCIM 2.0 provisioning endpoint for swamp-club (Users + Groups, deprovision)
SSO user profile fields are frozen at first login — overrideUserInfo is never set on any provider
add links to the docs for all account progress teasers
A subscription stuck in incomplete has no path forward: it grants nothing, and the billing page offers no way to finish paying
Identifier lookups are exact-match and case-sensitive across username, email and slug
Invite failures emit no telemetry, so a rejected invitation leaves no trace anywhere
Collective invitations expire after 48h and the auto-claim is gated on that window, so a late signup is never bound
Invite typeahead searches username prefix only, so an operative cannot be found by name or email
Send the release headline from the release pipeline so New Release announcements say what shipped
Support credentials in datastore config (vault-resolvable)
Feature: user-configurable redaction rules (.swamp/redaction.yaml)
Lab lifecycle POST rejects any payload string that starts with a dollar sign, not just operator keys
Finish the swamp_* attribute set on Attio users, and settle the two unprefixed ones (#809 follow-up)
aria-expanded is a raw boolean in 12 places — collapsed state is unannounced to screen readers
swamp CLI: surface the audience and resolvedInVersion fields swamp-club now serves
ApiKeyManager's collapsed trigger points aria-controls at an element it never renders
A boolean aria-expanded renders as no aria-expanded: two disclosure widgets report no state to a screen reader
Tell the inviter when a collective invite mis-lands, instead of leaving it pending forever
CLI has never sent insert_id: retried telemetry batches are double-counted into cli_daily, inflating XP in an append-only ledger
Docs: manual never mentions telemetry, and the serve/scheduling pages imply automated runs are visible when they are not
Explore: reconcile quality rubric's dormant provenance factor
Explore: pull-time signature verification for extensions
Explore: transparency-log integration (Rekor) for extension signatures
Explore: publish-time artifact signing for extensions (cosign keyless)
Docs: document catalog completeness check and --repair in doctor reference
Add --server support to model cancel (server-side run cancellation)
End-to-end UAT for fine-grained collective token scopes (#960)
uat: add namespace isolation and shard resilience test coverage
Extension/type search at method granularity — find capabilities, not just packages
Docker-related model types/workflows would benefit from first-class dry-run/plan support
Issue filing inherits most-recently-created collective's scope and privacy, with no way to choose
CLI telemetry: fold third-level verbs into subcommand + canonicalize aliases
Driving agent can wedge a workflow-stage run irrecoverably (workflow-succeeded vs dispatch limit); skill should prevent it
Data-driven webhook signature verifiers (avoid a code change + release per provider)
Add first-class Kilo Code tool support
@swamp/aws/ec2: auto-generated models lack list, tag, and factory-compatible update methods
@swamp/digitalocean/space-key stores secret in plaintext - should mark as sensitive
Relationships
#945 Add associative info to user profiles: collective membership + collaborative contributions
Opened by webframp · 7/3/2026· Shipped 7/4/2026
Problem
The user profile (e.g. /u/webframp) is a strong record of what a person did
alone: the CLI-usage sunburst, published extensions, writings, tier, streak,
and badges. What it does not show is the associative layer — who a person is
connected to and what they built with others.
Today a visitor cannot tell:
- which collectives a user belongs to, and
- what collaborative artifacts they produced — merged issues, shipped fixes, and similar contributions that landed in someone else's or a collective's work.
The profile should do double duty: prove contribution (credibility) and convey level of engagement and standing.
Proposed solution
Add an associative section to the profile that surfaces:
- Collectives the user belongs to (collectives are explicit orgs/teams you join). Public collectives always show; private collectives appear only when the user opts in to reveal them on their profile.
- Collaborative contributions — merged issues and shipped fixes — presented as a scannable, linkable record.
Preferred presentation (open to iteration): a collective-anchored view where each collective the user belongs to expands to show the contributions shipped under it, with one compact relational visualization the visitor can click into to explore connections. This matches the existing click-into-detail feel of the points sunburst without resorting to a hard-to-read network graph.
Points are out of scope. Points continue to display as they do today and stay earned separately by actual events and activity; this feature does not tie the associative data to scoring.
Alternatives considered
- Flat sections — two new card lists (Collectives, Shipped Contributions) mirroring the existing Extensions and Writings sections. Simplest and most consistent, but the least associative.
- Relational constellation — a full network graph centering the user, with clickable collective/collaborator/artifact nodes. Most visual, but graphs are hard to keep readable and risk feeling flashy over useful.
Related
- #933 — "Add a 'my collective extensions' filter to extensions page" (adjacent collective-surfacing work, different surface).
Shipped
No activity in this phase yet.