infra/stacks
Viktor Barzin 1cbc1e962b excalidraw: native export menu + drawing rename
Users couldn't see Excalidraw's built-in Save as / Export image options:
the app's custom toolbar was drawn exactly on top of the native hamburger
menu button, hiding it. Removed the overlay and integrated Back to
Library / Save now / Rename into the native menu, so the native export
formats (.excalidraw file, PNG, SVG, clipboard) are now reachable.
Viktor asked for exports to work via the native Excalidraw feature and
for drawings to be renameable by clicking their name.

Rename: new PATCH /api/drawings/{id} endpoint (server-side name
sanitization, 409 on conflict) + click-to-rename title pill in the
editor (updates URL in place) + Rename button/modal in the dashboard.
Existing GET/PUT/DELETE semantics unchanged for API compatibility
(emo's upload pipeline). Added main_test.go (httptest) covering rename
+ existing handler behavior; dashboard rows now DOM-built (XSS-safe).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-02 14:29:10 +00:00
..
_template fix: restore tree dropped by 6d224861; land stem95su gdrive-sync (10m) [ci skip] 2026-06-09 08:45:33 +00:00
actualbudget ESO: add force_conflicts to all ExternalSecret manifests (fleet sweep) 2026-06-25 21:28:11 +00:00
affine ESO: add force_conflicts to all ExternalSecret manifests (fleet sweep) 2026-06-25 21:28:11 +00:00
android-emulator android-emulator: fix idle-sleeper dying with SIGPIPE before it could sleep 2026-06-24 08:57:36 +00:00
anisette fix(anisette): wait_for_rollout=false so a slow first start can't strand the deploy out of state 2026-06-14 20:56:30 +00:00
authentik chrome-service: grant emo shared browser access (noVNC + homelab browser CLI) 2026-06-28 15:20:07 +00:00
beads-server ESO: add force_conflicts to all ExternalSecret manifests (fleet sweep) 2026-06-25 21:28:11 +00:00
blog fix: restore tree dropped by 6d224861; land stem95su gdrive-sync (10m) [ci skip] 2026-06-09 08:45:33 +00:00
broker-sync broker-sync: repoint image to ghcr (was frozen on pre-migration DockerHub) 2026-07-02 05:31:00 +00:00
calico calico: fix empty Whisker UI — allow whisker egress to the kube-dns ClusterIP 2026-06-28 09:32:28 +00:00
changedetection ESO: add force_conflicts to all ExternalSecret manifests (fleet sweep) 2026-06-25 21:28:11 +00:00
chrome-service rightsize: raise OOM-tight memory limits (batch 3/N — spike protection) 2026-06-29 15:28:11 +00:00
ci-pipeline-health ESO: add force_conflicts to all ExternalSecret manifests (fleet sweep) 2026-06-25 21:28:11 +00:00
city-guesser fix: restore tree dropped by 6d224861; land stem95su gdrive-sync (10m) [ci skip] 2026-06-09 08:45:33 +00:00
claude-agent-service rightsize: trim over-provisioned memory (batch 2/N) 2026-06-29 15:27:17 +00:00
claude-breakglass rightsize: trim over-provisioned memory limits+requests (batch 1/N) 2026-06-29 14:46:58 +00:00
claude-memory ESO: add force_conflicts to all ExternalSecret manifests (fleet sweep) 2026-06-25 21:28:11 +00:00
cloudflared cloudflared: disable in-place autoupdate (--no-autoupdate) 2026-06-10 21:00:05 +00:00
cnpg fix: restore tree dropped by 6d224861; land stem95su gdrive-sync (10m) [ci skip] 2026-06-09 08:45:33 +00:00
coturn ESO: add force_conflicts to all ExternalSecret manifests (fleet sweep) 2026-06-25 21:28:11 +00:00
crowdsec traefik/crowdsec: remove dead Yaegi-plugin middleware reference (PR1/2) 2026-06-21 00:15:12 +00:00
cyberchef fix: restore tree dropped by 6d224861; land stem95su gdrive-sync (10m) [ci skip] 2026-06-09 08:45:33 +00:00
dashy fix: restore tree dropped by 6d224861; land stem95su gdrive-sync (10m) [ci skip] 2026-06-09 08:45:33 +00:00
dawarich ESO: add force_conflicts to all ExternalSecret manifests (fleet sweep) 2026-06-25 21:28:11 +00:00
dbaas dbaas/mysql: innodb_doublewrite=DETECT_ONLY to halve page-flush writes 2026-06-30 08:47:09 +00:00
descheduler etcd-load-reduction: remove VPA/Goldilocks, disable kyverno reporting, descheduler hourly 2026-06-12 19:41:22 +00:00
diun upgrades: fix hourly gotenberg error + cap update notifications at weekly 2026-07-02 07:16:50 +00:00
ebook2audiobook fix: restore tree dropped by 6d224861; land stem95su gdrive-sync (10m) [ci skip] 2026-06-09 08:45:33 +00:00
ebooks ESO: add force_conflicts to all ExternalSecret manifests (fleet sweep) 2026-06-25 21:28:11 +00:00
echo fix: restore tree dropped by 6d224861; land stem95su gdrive-sync (10m) [ci skip] 2026-06-09 08:45:33 +00:00
excalidraw excalidraw: native export menu + drawing rename 2026-07-02 14:29:10 +00:00
external-secrets external-secrets: enable ESO Vault token cache to cut sdc write churn 2026-06-29 15:32:37 +00:00
f1-stream rightsize: reconcile batch-2/3 stacks blocked by killed #427 (job-hunter, wealthfolio, f1-stream) 2026-06-29 15:59:41 +00:00
fire-planner rightsize: trim over-provisioned memory (batch 2/N) 2026-06-29 15:27:17 +00:00
forgejo rightsize: raise OOM-tight memory limits (batch 3/N — spike protection) 2026-06-29 15:28:11 +00:00
freedify ESO: add force_conflicts to all ExternalSecret manifests (fleet sweep) 2026-06-25 21:28:11 +00:00
freshrss ESO: add force_conflicts to all ExternalSecret manifests (fleet sweep) 2026-06-25 21:28:11 +00:00
frigate feat(nvidia): GPU VRAM budget + watchdog to stop T4 overallocation 2026-06-30 07:57:40 +00:00
goldmane-edge-aggregator monitoring: consolidate all Slack alerting to #alerts, abandon #security 2026-06-26 13:29:44 +00:00
grampsweb ESO: add force_conflicts to all ExternalSecret manifests (fleet sweep) 2026-06-25 21:28:11 +00:00
hackmd ESO: add force_conflicts to all ExternalSecret manifests (fleet sweep) 2026-06-25 21:28:11 +00:00
headscale fix: restore tree dropped by 6d224861; land stem95su gdrive-sync (10m) [ci skip] 2026-06-09 08:45:33 +00:00
health ESO: add force_conflicts to all ExternalSecret manifests (fleet sweep) 2026-06-25 21:28:11 +00:00
hermes-agent ESO: add force_conflicts to all ExternalSecret manifests (fleet sweep) 2026-06-25 21:28:11 +00:00
homepage fix: restore tree dropped by 6d224861; land stem95su gdrive-sync (10m) [ci skip] 2026-06-09 08:45:33 +00:00
immich feat(nvidia): GPU VRAM budget + watchdog to stop T4 overallocation 2026-06-30 07:57:40 +00:00
infra fix: restore tree dropped by 6d224861; land stem95su gdrive-sync (10m) [ci skip] 2026-06-09 08:45:33 +00:00
infra-maintenance fix: restore tree dropped by 6d224861; land stem95su gdrive-sync (10m) [ci skip] 2026-06-09 08:45:33 +00:00
insta2spotify rightsize: trim over-provisioned memory limits+requests (batch 1/N) 2026-06-29 14:46:58 +00:00
instagram-poster instagram-poster: force_conflicts on ESO manifests (fix apply) 2026-06-24 20:49:53 +00:00
isponsorblocktv fix: restore tree dropped by 6d224861; land stem95su gdrive-sync (10m) [ci skip] 2026-06-09 08:45:33 +00:00
job-hunter rightsize: reconcile batch-2/3 stacks blocked by killed #427 (job-hunter, wealthfolio, f1-stream) 2026-06-29 15:59:41 +00:00
jsoncrack fix: restore tree dropped by 6d224861; land stem95su gdrive-sync (10m) [ci skip] 2026-06-09 08:45:33 +00:00
k8s-dashboard ESO: add force_conflicts to all ExternalSecret manifests (fleet sweep) 2026-06-25 21:28:11 +00:00
k8s-portal k8s-portal: document all three cluster-access paths in onboarding 2026-06-27 16:34:36 +00:00
k8s-version-upgrade k8s-upgrade: move version-check cadence from daily to weekly (Sun check, Mon report) 2026-06-29 06:22:20 +00:00
keel upgrades: fix hourly gotenberg error + cap update notifications at weekly 2026-07-02 07:16:50 +00:00
kms ESO: add force_conflicts to all ExternalSecret manifests (fleet sweep) 2026-06-25 21:28:11 +00:00
kured fix: restore tree dropped by 6d224861; land stem95su gdrive-sync (10m) [ci skip] 2026-06-09 08:45:33 +00:00
kyverno upgrades: fix hourly gotenberg error + cap update notifications at weekly 2026-07-02 07:16:50 +00:00
linkwarden rightsize: raise OOM-tight memory limits (batch 3/N — spike protection) 2026-06-29 15:28:11 +00:00
llama-cpp feat(nvidia): GPU VRAM budget + watchdog to stop T4 overallocation 2026-06-30 07:57:40 +00:00
local-path fix: restore tree dropped by 6d224861; land stem95su gdrive-sync (10m) [ci skip] 2026-06-09 08:45:33 +00:00
mailserver ESO: add force_conflicts to all ExternalSecret manifests (fleet sweep) 2026-06-25 21:28:11 +00:00
matrix ESO: add force_conflicts to all ExternalSecret manifests (fleet sweep) 2026-06-25 21:28:11 +00:00
meshcentral fix: restore tree dropped by 6d224861; land stem95su gdrive-sync (10m) [ci skip] 2026-06-09 08:45:33 +00:00
metallb fix: restore tree dropped by 6d224861; land stem95su gdrive-sync (10m) [ci skip] 2026-06-09 08:45:33 +00:00
metrics-server fix: restore tree dropped by 6d224861; land stem95su gdrive-sync (10m) [ci skip] 2026-06-09 08:45:33 +00:00
monitoring upgrades: fix hourly gotenberg error + cap update notifications at weekly 2026-07-02 07:16:50 +00:00
n8n ESO: add force_conflicts to all ExternalSecret manifests (fleet sweep) 2026-06-25 21:28:11 +00:00
navidrome ESO: add force_conflicts to all ExternalSecret manifests (fleet sweep) 2026-06-25 21:28:11 +00:00
netbox ESO: add force_conflicts to all ExternalSecret manifests (fleet sweep) 2026-06-25 21:28:11 +00:00
networking-toolbox fix: restore tree dropped by 6d224861; land stem95su gdrive-sync (10m) [ci skip] 2026-06-09 08:45:33 +00:00
nextcloud onlyoffice: decommission (stack destroyed, dir removed) 2026-07-01 22:35:22 +00:00
nextcloud-todos ESO: add force_conflicts to all ExternalSecret manifests (fleet sweep) 2026-06-25 21:28:11 +00:00
nfs-csi fix: restore tree dropped by 6d224861; land stem95su gdrive-sync (10m) [ci skip] 2026-06-09 08:45:33 +00:00
nodelocal-dns fix: restore tree dropped by 6d224861; land stem95su gdrive-sync (10m) [ci skip] 2026-06-09 08:45:33 +00:00
novelapp ESO: add force_conflicts to all ExternalSecret manifests (fleet sweep) 2026-06-25 21:28:11 +00:00
ntfy fix: restore tree dropped by 6d224861; land stem95su gdrive-sync (10m) [ci skip] 2026-06-09 08:45:33 +00:00
nvidia nvidia: run advertise-gpumem provisioner under bash (dash rejects pipefail) 2026-07-02 05:21:47 +00:00
openclaw ESO: add force_conflicts to all ExternalSecret manifests (fleet sweep) 2026-06-25 21:28:11 +00:00
osm_routing fix: restore tree dropped by 6d224861; land stem95su gdrive-sync (10m) [ci skip] 2026-06-09 08:45:33 +00:00
owntracks ESO: add force_conflicts to all ExternalSecret manifests (fleet sweep) 2026-06-25 21:28:11 +00:00
paperless-ai ESO: add force_conflicts to all ExternalSecret manifests (fleet sweep) 2026-06-25 21:28:11 +00:00
paperless-mcp ESO: add force_conflicts to all ExternalSecret manifests (fleet sweep) 2026-06-25 21:28:11 +00:00
paperless-ngx paperless-ngx: drop TASK_WORKERS 6->4 (6 OOMKilled the pod mid-import) 2026-06-28 15:06:46 +00:00
payslip-ingest ESO: add force_conflicts to all ExternalSecret manifests (fleet sweep) 2026-06-25 21:28:11 +00:00
phpipam ESO: add force_conflicts to all ExternalSecret manifests (fleet sweep) 2026-06-25 21:28:11 +00:00
platform fix: restore tree dropped by 6d224861; land stem95su gdrive-sync (10m) [ci skip] 2026-06-09 08:45:33 +00:00
plotting-book plotting-book: pull image from private ghcr instead of public DockerHub 2026-06-27 15:32:19 +00:00
poison-fountain traefik/crowdsec: remove dead Yaegi-plugin middleware reference (PR1/2) 2026-06-21 00:15:12 +00:00
portal-assistant portal-assistant: land voice stacks + switch TTS to edge-tts (intelligible Bulgarian) 2026-06-17 20:25:29 +00:00
portal-realtime portal-realtime: deploy the v2 full-duplex voice agent (Pipecat) 2026-06-20 08:23:17 +00:00
portal-stt Merge remote-tracking branch 'origin/master' into wizard/gpu-vram-budget 2026-07-02 05:18:34 +00:00
portal-tts postiz+portal: remove broken alert sources (stale backup CronJob, bogus scrape annotations) 2026-07-01 22:35:21 +00:00
postiz postiz+portal: remove broken alert sources (stale backup CronJob, bogus scrape annotations) 2026-07-01 22:35:21 +00:00
priority-pass priority-pass: bump image_tag to 63e118c3 [ci skip] 2026-06-16 17:45:33 +00:00
privatebin fix: restore tree dropped by 6d224861; land stem95su gdrive-sync (10m) [ci skip] 2026-06-09 08:45:33 +00:00
proxmox-csi ESO: add force_conflicts to all ExternalSecret manifests (fleet sweep) 2026-06-25 21:28:11 +00:00
pvc-autoresizer fix: restore tree dropped by 6d224861; land stem95su gdrive-sync (10m) [ci skip] 2026-06-09 08:45:33 +00:00
rbac rbac/apiserver-oidc: back up the apiserver manifest OUTSIDE /etc/kubernetes/manifests 2026-06-26 10:29:19 +00:00
real-estate-crawler ESO: add force_conflicts to all ExternalSecret manifests (fleet sweep) 2026-06-25 21:28:11 +00:00
recruiter-responder rightsize: trim over-provisioned memory limits+requests (batch 1/N) 2026-06-29 14:46:58 +00:00
redis fix: restore tree dropped by 6d224861; land stem95su gdrive-sync (10m) [ci skip] 2026-06-09 08:45:33 +00:00
reloader fix: restore tree dropped by 6d224861; land stem95su gdrive-sync (10m) [ci skip] 2026-06-09 08:45:33 +00:00
resume ESO: add force_conflicts to all ExternalSecret manifests (fleet sweep) 2026-06-25 21:28:11 +00:00
reverse-proxy traefik/crowdsec: remove 6 hard-coded middleware refs the variable sweep missed (PR1/2) 2026-06-21 00:17:40 +00:00
rybbit rybbit/crowdsec-cf-sync: stop Cloudflare Lists-API retry-storm (429 self-DoS) 2026-06-27 15:23:42 +00:00
sealed-secrets fix: restore tree dropped by 6d224861; land stem95su gdrive-sync (10m) [ci skip] 2026-06-09 08:45:33 +00:00
send fix: restore tree dropped by 6d224861; land stem95su gdrive-sync (10m) [ci skip] 2026-06-09 08:45:33 +00:00
servarr ESO: add force_conflicts to all ExternalSecret manifests (fleet sweep) 2026-06-25 21:28:11 +00:00
shadowsocks ESO: add force_conflicts to all ExternalSecret manifests (fleet sweep) 2026-06-25 21:28:11 +00:00
speedtest ESO: add force_conflicts to all ExternalSecret manifests (fleet sweep) 2026-06-25 21:28:11 +00:00
status-page fix: restore tree dropped by 6d224861; land stem95su gdrive-sync (10m) [ci skip] 2026-06-09 08:45:33 +00:00
stem95su ESO: add force_conflicts to all ExternalSecret manifests (fleet sweep) 2026-06-25 21:28:11 +00:00
stirling-pdf rightsize: trim over-provisioned memory limits+requests (batch 1/N) 2026-06-29 14:46:58 +00:00
t3-afk ESO: add force_conflicts to all ExternalSecret manifests (fleet sweep) 2026-06-25 21:28:11 +00:00
t3code t3-probe: fix aiohttp 3.9 compat (ClientWSTimeout is 3.10+) 2026-06-10 21:26:09 +00:00
tandoor ESO: add force_conflicts to all ExternalSecret manifests (fleet sweep) 2026-06-25 21:28:11 +00:00
technitium ESO: add force_conflicts to all ExternalSecret manifests (fleet sweep) 2026-06-25 21:28:11 +00:00
terminal docs: sync CI/CD docs to ADR-0002 final state (ghcr + Woodpecker deploy-only) [ci skip] 2026-06-13 12:55:49 +00:00
tor-proxy fix: restore tree dropped by 6d224861; land stem95su gdrive-sync (10m) [ci skip] 2026-06-09 08:45:33 +00:00
trading-bot ESO: add force_conflicts to all ExternalSecret manifests (fleet sweep) 2026-06-25 21:28:11 +00:00
traefik authentik: dedicated rate-limit carve-out + per-router 5xx observability 2026-06-28 09:10:34 +00:00
trek fix: restore tree dropped by 6d224861; land stem95su gdrive-sync (10m) [ci skip] 2026-06-09 08:45:33 +00:00
tripit ESO: add force_conflicts to all ExternalSecret manifests (fleet sweep) 2026-06-25 21:28:11 +00:00
tts tts: TCP probes — http liveness killed the server mid-synthesis 2026-06-12 20:57:28 +00:00
tuya-bridge ESO: add force_conflicts to all ExternalSecret manifests (fleet sweep) 2026-06-25 21:28:11 +00:00
uptime-kuma uptime-kuma: add CONTEXT.md + ADR-0001 (intentionally lean; sizing/placement review) 2026-06-14 09:11:22 +00:00
url rightsize: raise OOM-tight memory limits (batch 3/N — spike protection) 2026-06-29 15:28:11 +00:00
vault vault: grant emo full read/write on his own secret/emo tree 2026-06-28 11:07:22 +00:00
vaultwarden fix: restore tree dropped by 6d224861; land stem95su gdrive-sync (10m) [ci skip] 2026-06-09 08:45:33 +00:00
vpa etcd-load-reduction: remove VPA/Goldilocks, disable kyverno reporting, descheduler hourly 2026-06-12 19:41:22 +00:00
wealthfolio rightsize: reconcile batch-2/3 stacks blocked by killed #427 (job-hunter, wealthfolio, f1-stream) 2026-06-29 15:59:41 +00:00
webhook_handler ESO: add force_conflicts to all ExternalSecret manifests (fleet sweep) 2026-06-25 21:28:11 +00:00
whisper fix: restore tree dropped by 6d224861; land stem95su gdrive-sync (10m) [ci skip] 2026-06-09 08:45:33 +00:00
wireguard fix: restore tree dropped by 6d224861; land stem95su gdrive-sync (10m) [ci skip] 2026-06-09 08:45:33 +00:00
woodpecker ESO: add force_conflicts to all ExternalSecret manifests (fleet sweep) 2026-06-25 21:28:11 +00:00
xray fix: restore tree dropped by 6d224861; land stem95su gdrive-sync (10m) [ci skip] 2026-06-09 08:45:33 +00:00
ytdlp ESO: add force_conflicts to all ExternalSecret manifests (fleet sweep) 2026-06-25 21:28:11 +00:00