Link to namespace extensions listing from profile pages
Trailing slash on /extensions/@<namespace>/ returns 404
No way to browse all extensions belonging to a collective by URL
DatastoreProvider.resolveCachePath declared optional but silently required at runtime
Accept-invite link returns HTML instead of JSON, breaking collective join
additionalFiles flatten to basenames on push and lack a runtime access API, creating a source-vs-pulled layout mismatch
Extension search returns inflated results for quoted phrase queries
Docs: document jsr:/https: imports and non-local pinning convention in user-facing manual
First-class jsr: specifier support in extension bundler
Cross-extension code sharing via manifest exports field
Extension models: document/resolve implicit-any in execute parameters when imported by test files
extension yank: allow unyank and version-specific yanks
extension source add does not discover brand new types — only overrides already-pulled types
Add light mode to swamp.club and swamp open UI
Add 'swamp open' command to open the swamp.club web UI
Add light mode to swamp.club website
Datastore sync surfaces opaque errors from extensions verbatim — no status code or body preview
@swamp/s3-datastore: first-attempt 403 masked as "UnknownError" from AWS SDK deserializer
Extension auto-resolve reports "already_installed" for truncated pulled-extension trees
Email delivery for mention notifications
Auto-update WARN is silent in --json mode (logger suppresses non-fatal)
open.ts web UI uses force:true pullExtension, same data-loss family as #126
Port bundle_freshness (content-fingerprint cache invalidation) to reports / drivers / datastores / vaults loaders
Mentions and notifications system for issues
Datastore auto-update in resolve_datastore.ts uses force:true, risking silent overwrite of local edits
Per-repo user-extension bundle cache doesn't invalidate on source changes
Adding methods to in-body `methods:{}` on `export const model` doesn't re-register
User extensions silently dropped when base type not yet registered at scan time
Footer floats when page content is shorter than viewport
workflow validate can silently overwrite local edits to pulled extensions via force-pull in auto-resolver
Extension pull should namespace files by extension to prevent filename collisions
Update CLAUDE.md co-author instructions to use swamp-club issue author lookup
Add swamp issue get CLI command to fetch issue details
swamp-club API: include issue author in GET /api/v1/lab/issues/{number} response
Install command curl-pipe-sh overflows the component on swamp.club homepage
'Assigned to me' overlaps 'Privacy policy' on short viewports
Collapsible left rail and repositionable right rail in Lab
Usernames aren't linked to their profile pages
Filter lab issues by author (opened by user)
Add skills extension type for bundling agent/human guidance documents
Remove traffic lights in column 2 of /lab
Multi-select combo filtering on /lab
data gc skips version-count GC when no lifetime-expired data exists
Content filter should identify the flagged word or phrase
Bog flow: text rendering and layout issues
Flow modal: text rendering issues
Normalize text sizing across issue list and detail views
Description 'Show more' button appears even when text fits
Inline editing: click-to-edit fields instead of pencil icons
Persist lab filter selection in localStorage
Update how-to guide with swamp-extension-publish skill
Fix incorrect favicon in Google search results
Missing section on user profile page for wendy
Extension skills missing repository initialization and publishing prerequisites
Vault CEL expressions replaced with VaultSecretBag sentinels after model type upgrade
Audit: modelRegistry.get() without ensureTypeLoaded() in YAML repository save() paths
Cross-model expression validator fails on lazy-loaded types — modelRegistry.get() bypasses ensureTypeLoaded
forEach.in with data.latest() throws misleading 'got: object' error for unresolved Promise
issue-lifecycle models should support --assignee for swamp.club issues
Driver capability registry: declare richer execution capabilities at driver design time
Consolidate MethodReportContext construction — manual and workflow report paths build contexts divergently
Workflow-level workspace for docker driver: stateful multi-step workflows
"OG Swamper" badge inconsistent
Workflow-scope user extension reports don't execute: getAll() excludes lazy-loaded reports
Improve skill trigger routing accuracy across models
Add GitHub Copilot IDE support
Phase 1: /feed — judge-gated content stream
Add reactions and Giphy integration to comments
Architecture violation: search route imports directly from lib/infrastructure
Introduce domain events to formalize the telemetry-to-consumer pipeline
Refactor: move telemetry track() calls from route handlers to application services
Reindex path feeds error events to consumer, bypassing filtering
Custom swamp-themed avatar generator with daily rerolls
Profile content links with scoring for community contributions
Score extension pull events for extension authors
Score daily sign-in events with streak multiplier
Score sign_up events in the telemetry pipeline
Score extension publish events in the telemetry pipeline
Add 'award' telemetry event type for arbitrary score grants
Bug: authenticated pulls always shows 0 on profile page
Decouple identity_map from main app: username renames via event, not shared DB
Optimise MongoDB Search Queries
Transactional emails on login with google/similar
Add rate limiting to send-verification-email endpoint
Add authentication or rate limiting to check-verified endpoint
swamp data query for morning-message in hello-world tutorial returns nothing.
Document vault migrate command in reference docs
Locks on long running actions
issue-lifecycle skill: improve resumption and close-out guidance
deprovision: firewall deletion fails with resource_in_use immediately after server delete
swamp workflow validate should check step inputs against method's required arguments
data.latest() returns null when new data written while _catalog.db is already marked populated
Bundle cache fallback silently skipped when source and bundle have equal mtimes
Add vault migrate command to move secrets between vaults
Consolidate method execution paths — workflow steps and manual runs build MethodContext divergently
CatalogStore constructor runs createSchema before migrateIfNeeded; v1→v2 upgrade fails on existing repos
discord-bot poller double-processes events with >1 replica
datastore sync: clean up zombie _catalog.db* entries from remote index and S3 bucket
datastore sync --push runs pushChanged() twice per invocation (coordinator dedup)
datastore sync --push fails on _catalog.db-wal: catalog SQLite DB lives inside the S3 sync cache
.swamp/datastore-bundles/ leaks into deno lint and deno fmt scans
deno run audit task missing --allow-env flag
Error when submitting a new issue manually
Green text on issue details is a lot
evals/promptfoo: bump hono and @hono/node-server to clear 6 dependabot alerts
issue-lifecycle: COMMENTED PR review can overwrite a prior decisive state in fetchPrReviews
Add agent-constraints/ for issue-lifecycle skill
@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
Add Azure provider pipeline to codegen
feat: Namespace.so execution driver for remote workload execution
Add macOS Keychain vault type
Add uniform bucket-level IAM support to @swamp/gcp/storage
Expand DataRecord with first-class provenance fields; remove all hidden scoping from data access
feat: Private extensions
Workflow execution repeats #1091: cross-model CEL expression validation fails for unresolved types
context.readModelData returns different results depending on invocation context (manual vs workflow)
Handle sensitive fields gracefully when no vault is configured
Vault reads for model global arguments are cached at workflow start, making in-workflow token refresh ineffective
feat: approval gates for workflow steps and jobs
Install script: curl fails TLS verification for swamp.club (certificate chain)
Extension Patches: contribution workflow for community extensions
Feature: swamp issue for extensions — bug reports, security disclosures, and author notifications
Support 'swamp <app> run' as containerized entrypoint for easy onboarding
Persistent runner / server mode to eliminate per-invocation CLI startup overhead
feat: add support for Nix via a flake
Accept-invite link returns HTML instead of JSON, breaking collective join
Opened by martinwhite1617 · 4/22/2026· Shipped 4/22/2026
Description
Clicking an accept-invite link for a collective fails with a client-side JSON parse error. The server appears to be returning an HTML page (likely a login redirect or error page) to a request that expects JSON, so the frontend throws when trying to parse it.
Steps to Reproduce
- Open the accept-invite link for the
hivemqcollective: https://swamp.club/o/hivemq/accept-invite?id=69e8e0da03546a963de15f932 - Page attempts to process the invite
- Error is shown:
ERR:Unexpected token '<', "<!DOCTYPE "... is not valid JSON
Expected Behaviour
I should be joined to the hivemq collective (or shown a clear actionable error if the invite is invalid/expired/requires auth).
Actual Behaviour
The invite flow fails with a raw JSON-parse error. The <!DOCTYPE prefix in the error suggests the endpoint returned HTML (e.g. an auth redirect or 404/500 page) where the frontend expected JSON.
Environment
- URL: https://swamp.club/o/hivemq/accept-invite?id=69e8e0da03546a963de15f93
- Browser: encountered via link click (standard browser session)
- Collective: hivemq
Notes
Likely fixes: ensure the accept-invite endpoint always returns JSON (including for auth-required and error cases), and/or have the frontend detect non-JSON responses and surface a friendly message instead of the parse error.
Shipped
Click a lifecycle step above to view its details.