This switches demo pages and modules to local web/vendor assets, fixes Three GLTFLoader local import resolution, and documents the runtime-data/agent commit workflow updates.
Made-with: Cursor
Add feature geometry PATCH API support and update MapLibre demo to use OSM raster tiles, load all public/owned features, and let logged-in users drag their own feature markers to persist new positions.
Made-with: Cursor
Expose GET /v1/features/public (optional kind filter) and update Leaflet/MapLibre demos to render all public 3D assets globally, while still merging owner collections after login.
Made-with: Cursor
Both map demos now fetch all user collections and render their features/assets immediately on login, including 3D objects, instead of only showing a single selected collection.
Made-with: Cursor
Copy Share Link now generates a demo URL with asset coordinates so recipients can open the map and immediately see the shared object placement.
Made-with: Cursor
The download endpoint now streams object bytes from storage on the same API URL so clients never get redirected to MinIO/internal hosts, while preserving public/private access checks.
Made-with: Cursor
Switch openmaptiles source URL to MapLibre demo TileJSON to avoid malformed vector tile parsing errors ("Unimplemented type: 4") in the web demo.
Made-with: Cursor
Use relative sprite URLs and a working glyph endpoint so MapLibre no longer requests missing /web/styles/* or /web/assets/fonts/* resources.
Made-with: Cursor
Public asset links now work without bearer auth while private assets remain protected, and the demo ships with the local osm-liberty-gl-style assets for consistent tile rendering.
Made-with: Cursor
This updates developer docs and web demos to use backend upload endpoints, adds a client upload helper, and aligns integration tests with the no-direct-MinIO URL flow.
Made-with: Cursor
This introduces a MapLibre GL + Three.js web demo for object placement and sharing, and changes asset upload flow to use backend upload endpoints so clients no longer receive direct MinIO URLs.
Made-with: Cursor
This updates the example to compute SHA-256 from a selected GLB/GLTF file, create/link asset metadata, upload with signed URL, and use share links plus visibility toggling.
Made-with: Cursor
This replaces old momswap.produktor.duckdns.org references with tenerife.baby and refreshes the TypeScript integration guide to reflect the current asset upload, sharing, and relative-link flow.
Made-with: Cursor
This adds typed asset APIs to the geo client, covers the 3D/image upload-share flow in integration tests, and introduces a simple Leaflet web demo that places objects on map features and manages sharing visibility via backend links.
Made-with: Cursor
This introduces deduplicated per-user image/3D asset records linked into feature properties, adds visibility-controlled download routing, and wires local S3-compatible storage with automatic bucket bootstrap in Docker Compose.
Made-with: Cursor
- Add Import pk from camera: scan QR → restore pb → auto login → refresh
- Add scanner.js (jsQR) for camera QR decode
- QR visibility: pk shown by default, pb hidden by default (toggles)
- Update docs/frontend-development.md with scanner, Import pk, QR behavior
Made-with: Cursor
- bin/gen-server-keys.sh: generate Ed25519 keypair to etc/server-service.{pub,key,env}
- main.go: read keys from file (ADMIN_PUBLIC_KEY_FILE) when env empty
- docker-compose: env_file etc/server-service.env, mount etc/
- bin/up.sh: auto-run gen-server-keys if etc/server-service.env missing
- ErrRegistrationNotConfigured for clearer 503 when keys not set
- etc/README.md, etc/.gitignore
- bin/gen-admin-key.sh for one-off key gen
- .env.example
Made-with: Cursor
- Register by signing service key: GET /v1/service-key, POST /v1/auth/register-by-signature
- Login auto-attempts register first for new users
- Web: default API URL momswap.produktor.duckdns.org, /libs/ static handler
- Docker: webbuild stage for geo-api-client, copy web+libs to runtime
- Bin scripts: test.sh, run.sh, up.sh, down.sh
- docs/ed25519-security-use-cases.md: use cases, message formats, examples
- SERVICE_PUBLIC_KEY env (defaults to ADMIN_PUBLIC_KEY)
Made-with: Cursor
Document identification, challenge-response authentication, protected feature collection write/read flows, and invitation lineage with Mermaid diagrams, and link the guide from README.
Made-with: Cursor
- Map host 8122 to api container for reverse proxy at momswap.produktor.duckdns.org
- Remove buildx cache_from/cache_to to allow docker build on default driver
- Document reverse proxy setup in frontend integration guide
- Update README with port mapping notes
- bun.lock: add deps from bun install for geo-api-client
Made-with: Cursor
Update runtime defaults, compose mappings, frontend defaults, and developer docs to use port 8122 while keeping PostGIS reachable only via the internal compose network.
Made-with: Cursor
Wire API services to PostGIS in docker-compose, broaden CORS handling for cross-origin clients, and align developer docs with the production momswap URL.
Made-with: Cursor
Treat source checkout as best-effort, run Go and Bun tests only when source is available, and emit an explicit warning when infrastructure network limits force test skipping.
Made-with: Cursor
Probe common bridge gateway addresses to reach the self-hosted Gitea service when container DNS aliases are unavailable in the runner network.
Made-with: Cursor
Probe clone endpoints first and, if none are reachable from the runner container, download and extract the repository archive so test steps can still execute.
Made-with: Cursor
Probe multiple internal and external repository URLs, then fetch the target commit from the first reachable endpoint before running tests.
Made-with: Cursor
Align manual clone URL with this Gitea server's accepted path format while keeping TLS verification disabled for the runner environment.
Made-with: Cursor
Replace actions/checkout with a manual git fetch using sslVerify=false so the runner can clone from the self-hosted Gitea endpoint and continue pipeline execution.
Made-with: Cursor
Force actions/checkout to use the public git.produktor.io endpoint instead of the internal gitea hostname so runners can fetch repository contents.
Made-with: Cursor
Add a cache-optimized multi-stage Dockerfile with non-root runtime, compose service definitions for local/dev execution, CI Go version alignment, and docs/path cleanup updates.
Made-with: Cursor
Add a Go HTTP API with Ed25519 auth and invitation onboarding, user-scoped GeoJSON Point management, a Bun-tested @noble/ed25519 TypeScript client, static Vue/Vuetify frontend integration, and a Gitea CI workflow running both Go and Bun test suites.
Made-with: Cursor