- outline_sync.py: write compare results to /tmp/compare_results.json
with full doc maps for parent-chain lookup during copy operations
- webui.py: /review page with remote-only, local-only, conflict tables;
/review/content endpoint to fetch doc text from either instance;
/review/apply endpoint for copy_to_local, copy_to_remote, keep_remote,
keep_local, skip actions; "Compare Instances" button on dashboard;
"Review Differences" link shown after compare completes
- entrypoint.sh: include local block in generated settings.json
- docker-compose.yml: pass LOCAL_OUTLINE_URL/TOKEN/HOST env vars
- deploy.yml: write LOCAL_* secrets to .env file
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Both the deploy workflow (.env generation) and docker-compose were
missing the local instance env vars, so entrypoint.sh never had them
to write into settings.json.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Add inputs block to workflow_dispatch so Gitea shows the Run button
- Skip version bump on manual triggers to allow redeployment without bumping
- Fall back to VERSION file for APP_VERSION on manual runs
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Dockerfile: ARG/ENV APP_VERSION, copies VERSION file
- compose: passes build arg, removes runtime env var
- webui: reads VERSION file as fallback if env not set
- deploy: explicit build step with --build-arg
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Add VERSION file (starts at 0.1.0)
- Deploy workflow bumps patch on every push, commits back [skip ci]
- APP_VERSION passed into container via env
- Version shown in page header next to title
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Add TS_EXTRA_ARGS=--accept-routes so sidecar uses VPS-advertised subnet
- Use direct container IP (172.29.0.13) instead of unresolvable hostname
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>