• v0.23.0
    All checks were successful
    CI / Build and Test (push) Successful in 37s
    Stable

    ryan released this 2026-02-20 21:38:03 +00:00 | 4 commits to main since this release

    Features

    • Support custom HTML/SVG element markers in MapLibre (#10)
    • Animate fleet of container ships along bay waypoints (#13)
    • Add RotationSignal for reactive marker rotation (#14)

    Fixes

    • Prevent custom element markers from rendering upside down (#15)

    Style

    • Replace simple ship icon with container vessel SVG (#11)
    • Simplify container ship SVG marker (#12)
    Downloads
  • v0.22.0
    All checks were successful
    CI / Build and Test (push) Successful in 35s
    Stable

    ryan released this 2026-02-20 20:23:35 +00:00 | 10 commits to main since this release

    Features

    • Sync all markers across clients in MapLibre example (#9)

    Chores

    • Gitignore nats-chatroom directory (#8)
    Downloads
  • v0.21.4
    All checks were successful
    CI / Build and Test (push) Successful in 34s
    Stable

    ryan released this 2026-02-20 20:00:44 +00:00 | 12 commits to main since this release

    Fixes

    • Fix potential nil file.Close() panic in devModePersist/devModeRemovePersisted by extracting loadDevModeMap/saveDevModeMap helpers with proper defer
    • Fix typos: percistpersist, percistedpersisted, tmplatestemplates

    Docs

    • Remove stale context reaper reference in README (removed in dc56261)
    • Update example count from 14 to 19, add missing example names
    • Fix incorrect OnChange 200ms debounce claim in state-and-interactivity.md
    • Add setup comment to shakespeare example for obtaining shake.db

    Chores

    • Remove tracked binaries: pathparams (10.8 MB), shake.db (22 MB)
    • Consolidate .gitignore with wildcard pattern covering all 19 examples
    • Remove dead code: commented imports, unnecessary fmt.Sprintf, no-op Config calls in examples
    • Replace go fmt with gofmt -l check in ci-check.sh to fail on unformatted code
    Downloads
  • v0.21.3
    All checks were successful
    CI / Build and Test (push) Successful in 37s
    Stable

    ryan released this 2026-02-20 19:42:00 +00:00 | 13 commits to main since this release

    Fixes

    • Remove context reaper to prevent background tabs from going stale (#4)

    Chores

    • Normalize struct field alignment (#5)
    • Clarify pr command step 8 for worktree usage (#6)
    Downloads
  • v0.21.2
    Some checks failed
    CI / Build and Test (push) Failing after 36s
    Stable

    ryan released this 2026-02-20 18:31:27 +00:00 | 16 commits to main since this release

    Bug Fixes

    • Fix maplibre reactive signal bugs and stale signal re-push (#3)

    Chores

    • Make Gitea the primary remote, GitHub as mirror (#2)
    • Add PR workflow and worktree-aware release process
    • CI workflow triggers
    Downloads
  • v0.21.1
    Some checks failed
    CI / Build and Test (push) Has been cancelled
    Stable

    ryan released this 2026-02-19 23:57:06 +00:00 | 21 commits to main since this release

    Chores

    • Add worktree support for parallel Claude Code sessions (.claude/worktrees/ gitignored, project CLAUDE.md added)
    Downloads
  • v0.21.0
    Some checks failed
    CI / Build and Test (push) Has been cancelled
    Stable

    ryan released this 2026-02-19 23:37:16 +00:00 | 22 commits to main since this release

    Features

    • New maplibre subpackage — Type-safe Go API for MapLibre GL JS maps within Via applications
      • maplibre.Plugin serves vendored MapLibre GL JS v4.7.1 assets and injects them into the document head
      • maplibre.New() creates a map bound to a Via context with viewport signal sync (center, zoom, bearing, pitch)
      • Pre-render accumulation for sources, layers, markers, and popups; post-render mutations via ExecScript
      • Viewport setters: FlyTo, SetCenter, SetZoom, SetBearing, SetPitch, SetStyle
      • Source management: AddSource, RemoveSource, UpdateGeoJSONSource (GeoJSON, Vector, Raster)
      • Layer management: AddLayer, RemoveLayer, SetPaintProperty, SetLayoutProperty
      • Marker and popup management: AddMarker, RemoveMarker, ShowPopup, ClosePopup
      • Exec() escape hatch for arbitrary JS with the map instance available as m
      • Idempotent init script with SPA cleanup via MutationObserver and auto-resize via ResizeObserver
      • Example app at internal/examples/maplibre/ demonstrating markers, GeoJSON layers, and FlyTo actions
    Downloads
  • v0.20.0
    Some checks failed
    CI / Build and Test (push) Has been cancelled
    Stable

    ryan released this 2026-02-19 22:24:44 +00:00 | 23 commits to main since this release

    Features

    • Declarative stream configuration — new Options.Streams field lets you declare JetStream streams that are automatically created when v.Start() initializes the embedded NATS server, replacing manual EnsureStream calls during setup

    Fixes

    • Embedded NATS port binding — use Port: -1 (random OS-assigned port) instead of defaulting to port 4222, which caused startup hangs when that port was unavailable
    Downloads
  • v0.19.0
    Some checks failed
    CI / Build and Test (push) Has been cancelled
    Stable

    ryan released this 2026-02-19 22:07:25 +00:00 | 25 commits to main since this release

    Features

    • SSE keepalive pings: 30s ticker writes no-op PatchSignals({}) to prevent proxy/CDN idle timeouts from silently killing SSE connections, and forces Go to detect dead TCP peers within ~30s
    • Client liveness tracking: New lastSeenAt field on Context records every SSE connect attempt — Datastar's retry signals now keep contexts alive through the reaper
    • Smarter reaper: Uses max(createdAt, sseDisconnectedAt, lastSeenAt) for suspend/reap decisions, fully backward-compatible with existing behavior when no retries occur
    Downloads
  • v0.18.1
    Some checks failed
    CI / Build and Test (push) Has been cancelled
    Stable

    ryan released this 2026-02-19 19:03:13 +00:00 | 26 commits to main since this release

    Refactoring

    • Use computed signals in pubsub-crud and chatroom examples
    Downloads