14 Commits
Author SHA1 Message Date
Jannis Braun 95b545d8b2 chore(deploy): allow a gitignored local override for deploy targets
deploy.sh now sources ./.deploy.local at runtime if it exists, letting a
maintainer point the script at their own hosts without committing them — the
tracked defaults stay placeholders. .deploy.local and .deploy-local/ are
gitignored so real hostnames/IPs never land in the repo.
2026-07-07 19:45:51 +02:00
Jannis Braun cb16c8feac docs: add screenshot showcase to README + gallery
Replace the placeholder Screenshots section with a hero voice/video shot
and a curated 6-shot grid (chat, screen-share controls, spaces, federated
DMs, social discovery, federation admin), linking to a new
docs/screenshots.md gallery of all 14 shots grouped by feature.

Images are optimized to 1600px WebP (~1.2MB total vs ~45MB raw); raw
originals in demo-pictures/ are gitignored.
2026-07-01 01:06:08 +02:00
Jannis Braun 8dd76f3435 Public-release prep: ELv2 license, README/CLA/NOTICE, SSRF safeFetch, identifier genericization, export tooling 2026-06-22 16:04:03 +02:00
Jannis Braun 4829746efc chore: gitignore .claude/worktrees and scheduled_tasks.lock
Worktrees are embedded git repos; if any future agent runs `git add -A` they
get committed as a submodule pointer, which causes partial-checkout breakage
on clones. Always-ignore so the trap isn't reachable.
2026-05-15 15:05:41 +02:00
Jannis Braun 69cd2dc537 chore: ignore .playwright-mcp/ session artifacts 2026-05-05 20:55:10 +02:00
Jannis Braun f661d112fa chore: gitignore tests/.tmp/ and tests/reports/ scratch dirs 2026-05-03 23:07:22 +02:00
Jannis Braun a888828941 chore: gitignore installers and include pending web changes
Add installers/ to .gitignore and remove from tracking — binaries
should not be in git.

Also includes:
- Re-push Electron activities after WebSocket reconnect (sleep/wake)
- Merge activity map instead of replacing to preserve local state
- Nori mascot design plan
2026-03-23 00:25:31 +01:00
Jannis Braun dd33a62b22 fix: replace inline save banners with toast notifications
Removes layout-shifting "Settings saved" / "Role saved" inline
banners from 5 settings panels. Uses existing addToast from
uiStore instead. Error banners kept inline.
2026-03-22 04:49:10 +01:00
Jannis Braun eb835f7e22 docs: add system prompt and design system reference files 2026-03-20 19:06:10 +01:00
Jannis Braun 8dda8b0b83 chore: add .worktrees/ to .gitignore 2026-03-17 15:26:43 +01:00
Jannis Braun 3f15a8e282 docs: add federation roadmap with batched execution plan
Comprehensive audit of the federation implementation identified:
- Solid data plumbing (multi-WS, origin routing, asset normalization)
- Missing on-ramps (can't join remote servers, no discovery, no UI indicators)
- 4 bugs (stale voice state, logout cleanup, reply-to normalization, HTTPS assumption)

Roadmap defines 6 batches for incremental execution:
- Batch 1: Bug fixes
- Batch 2: Password enforcement (same password across all instances)
- Batch 3: Cross-instance server joining (invite URL parsing, remote join routing)
- Batch 4: Phase 5 UI (instance grouping, badges, username collision display)
- Batch 5-6: Deferred (explore system, cross-instance friends)
2026-03-04 01:27:21 +01:00
Jannis Braun 617999500b feat: all-in-one production deployment with install script
Redesign deployment as a single docker-compose with Backspace, Caddy
(auto-HTTPS), and LiveKit (voice/video) using hybrid networking:
Backspace+Caddy on isolated bridge, LiveKit on host mode for WebRTC.

- Add install.sh: interactive installer that handles Docker setup,
  domain/DNS verification, secret generation, LiveKit config, and
  deployment with health-check wait
- Add Caddyfile: static reverse proxy config using Caddy env vars,
  routes /livekit/* to host-mode LiveKit via host.docker.internal
- Rewrite docker-compose.yml: all-in-one with profiles (voice),
  no external volumes/networks, bind mount ./data for visibility
- Fix livekit.ts: use LIVEKIT_URL env var directly instead of
  Host-header derivation that made the env var dead code
- Fix Dockerfile: health check reads $PORT dynamically
- Update .env.example: add DOMAIN, COMPOSE_PROFILES documentation
- Update .gitignore: add livekit.yaml (contains secrets)
2026-03-03 19:51:51 +01:00
Jannis Braun 176f4db27e chore: remove 62 tsc emit artifacts from src/, add noEmit to tsconfig
tsc was emitting compiled .js files directly into packages/web/src/
alongside the .tsx source files because noEmit was not set. These
artifacts were never used — Vite compiles from .tsx source directly.

- Add noEmit: true to packages/web/tsconfig.json (tsc = type-check only)
- Delete all 62 orphaned .js files from src/ (-6,129 lines)
- Add packages/web/src/**/*.js to .gitignore as safeguard
2026-02-23 00:54:51 +01:00
Jannis Braun 4fd17084a5 chore: Initial commit of Opencord base state 2026-02-18 02:49:21 +01:00