diff --git a/.github/dependabot.yml b/.github/dependabot.yml
index 09e4e38..08c1bab 100644
--- a/.github/dependabot.yml
+++ b/.github/dependabot.yml
@@ -22,6 +22,10 @@ updates:
directories: ["/backend", "/deploy"]
schedule:
interval: monthly
+ ignore:
+ # Caddy 2.11 cancels proxied requests after 60 s; see deploy/lb.Dockerfile
+ - dependency-name: caddy
+ versions: [">= 2.11"]
- package-ecosystem: docker-compose
directories: ["/", "/deploy"]
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 9cc7ed6..57db7ce 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -16,7 +16,10 @@ Notable changes to Knowledge Hubs. The format follows [Keep a Changelog](https:/
- Backend dependencies upgraded to current releases, including FastAPI 0.142 (Starlette 1.7), Pydantic 2.13, sentence-transformers 6, NumPy 2 and Celery 5.6.
- JWTs are handled by PyJWT instead of python-jose, and passwords by `bcrypt` directly instead of passlib. Existing password hashes and sessions keep working.
- Tokens without an expiry are refused.
-- Docker base images: Caddy 2.11, Node 22.
+- Docker base images: Caddy 2.10, Node 22.
+
+### Fixed
+- Reloading a page whose path is also an API path (such as `/knowledge`) made the app show "Failed to load knowledge": the browser reused the cached page for the app's data request. The web server now sends `Vary: Accept`.
### Removed
- Unused dependencies: `openai`, `tiktoken`, `aiofiles`, `python-jose`, `passlib`.
diff --git a/README.md b/README.md
index 9447a7c..b04db03 100644
--- a/README.md
+++ b/README.md
@@ -5,6 +5,21 @@
A **local-first knowledge base** for teams. It turns meeting notes, retros, decision logs, documents, web pages and transcripts into structured knowledge (decisions, risks, lessons, how-tos) that you can review, search, track over time and question in plain English.
+
+
+
+
+  |
+  |
+
+
+ | Decision log: status, history and what replaced what |
+ Review queue: nothing reaches GraphRAG until someone accepts it |
+
+
+
+Screenshots use fictional demo data.
+
- **Runs on your machine.** FastAPI backend, Angular frontend, **ArcadeDB** as the only data store, and local AI: one of three LLMs run by [Ollama](docs/local-models.md) plus sentence-transformers embeddings. There are no cloud AI providers.
- **Personal and group spaces.** Everyone has a private space and can create or join groups that share one. A switcher in the nav picks where you're working.
- **Decisions have a history.** A decision can supersede, reverse or amend an older one, and risks can be mitigated or actually happen. The app tracks each item's status and shows how it evolved.
diff --git a/deploy/Caddyfile b/deploy/Caddyfile
index 08ac3f2..b17af08 100644
--- a/deploy/Caddyfile
+++ b/deploy/Caddyfile
@@ -22,6 +22,10 @@
# Some API prefixes are also app routes (/knowledge, /connectors, /groups,
# /admin/users): a browser page load (GET accepting HTML) gets the app.
+ # Vary: Accept keeps the browser from answering the app's own API request
+ # for such a path with the page it cached on a reload, and vice versa.
+ @shared path /knowledge* /connectors* /groups* /admin*
+ header @shared Vary Accept
@page {
method GET
header Accept *text/html*
diff --git a/deploy/lb.Dockerfile b/deploy/lb.Dockerfile
index be75e51..bf003e0 100644
--- a/deploy/lb.Dockerfile
+++ b/deploy/lb.Dockerfile
@@ -9,6 +9,8 @@ RUN npm ci
COPY frontend/ ./
RUN npx ng build --configuration production
-FROM caddy:2.11-alpine
+# 2.10, not 2.11: Caddy 2.11 cancels proxied requests after 60 s (499), which
+# breaks GraphRAG answers that take longer on a CPU-only machine
+FROM caddy:2.10-alpine
COPY --from=frontend /src/dist/frontend/browser /srv
COPY deploy/Caddyfile /etc/caddy/Caddyfile
diff --git a/docs/images/decisions.png b/docs/images/decisions.png
new file mode 100644
index 0000000..682cb05
Binary files /dev/null and b/docs/images/decisions.png differ
diff --git a/docs/images/graphrag.png b/docs/images/graphrag.png
new file mode 100644
index 0000000..b6dacb9
Binary files /dev/null and b/docs/images/graphrag.png differ
diff --git a/docs/images/review.png b/docs/images/review.png
new file mode 100644
index 0000000..3901b94
Binary files /dev/null and b/docs/images/review.png differ