-
released this
2026-02-20 21:38:03 +00:00 | 4 commits to main since this releaseFeatures
- 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
Downloads
-
released this
2026-02-20 20:23:35 +00:00 | 10 commits to main since this releaseFeatures
- Sync all markers across clients in MapLibre example (#9)
Chores
- Gitignore nats-chatroom directory (#8)
Downloads
-
released this
2026-02-20 20:00:44 +00:00 | 12 commits to main since this releaseFixes
- Fix potential nil
file.Close()panic indevModePersist/devModeRemovePersistedby extractingloadDevModeMap/saveDevModeMaphelpers with proper defer - Fix typos:
percist→persist,percisted→persisted,tmplates→templates
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
.gitignorewith wildcard pattern covering all 19 examples - Remove dead code: commented imports, unnecessary
fmt.Sprintf, no-op Config calls in examples - Replace
go fmtwithgofmt -lcheck in ci-check.sh to fail on unformatted code
Downloads
- Fix potential nil
-
released this
2026-02-20 19:42:00 +00:00 | 13 commits to main since this releaseDownloads
-
released this
2026-02-20 18:31:27 +00:00 | 16 commits to main since this releaseBug 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
-
released this
2026-02-19 23:57:06 +00:00 | 21 commits to main since this releaseChores
- Add worktree support for parallel Claude Code sessions (
.claude/worktrees/gitignored, projectCLAUDE.mdadded)
Downloads
- Add worktree support for parallel Claude Code sessions (
-
released this
2026-02-19 23:37:16 +00:00 | 22 commits to main since this releaseFeatures
- New
maplibresubpackage — Type-safe Go API for MapLibre GL JS maps within Via applicationsmaplibre.Pluginserves vendored MapLibre GL JS v4.7.1 assets and injects them into the document headmaplibre.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 asm- 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
- New
-
released this
2026-02-19 22:24:44 +00:00 | 23 commits to main since this releaseFeatures
- Declarative stream configuration — new
Options.Streamsfield lets you declare JetStream streams that are automatically created whenv.Start()initializes the embedded NATS server, replacing manualEnsureStreamcalls 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
- Declarative stream configuration — new
-
released this
2026-02-19 22:07:25 +00:00 | 25 commits to main since this releaseFeatures
- 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
lastSeenAtfield 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
- SSE keepalive pings: 30s ticker writes no-op
-
released this
2026-02-19 19:03:13 +00:00 | 26 commits to main since this releaseRefactoring
- Use computed signals in pubsub-crud and chatroom examples
Downloads