You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit c966743
Browse filesBrowse the repository at this point in the historyBrowse files
-`services/sync-worker/`: read-only S3 sync, run status and logs
24
24
-`services/scheduler/`: periodic sync trigger
25
-
-`packages/model-catalog/`: shared model definitions and route defaults
25
+
-`packages/model-catalog/`: fixed model and provider constants
26
26
-`showcase-website/`: separate marketing website
27
27
-`infra/`: Docker Compose, AWS IAM, Cloudflare and systemd configuration
28
28
@@ -54,27 +54,13 @@ sfw pnpm --filter lattice-web dev
54
54
55
55
Backend containers expose ports only on the Docker network. Running only the web process on the host does not make those services reachable automatically.
56
56
57
-
## Models and authentication
57
+
## Model and authentication
58
58
59
-
New chats default to GPT-5.5 through **OpenRouter API billing**. The existing catalog also includes Claude Sonnet 4.6, Claude Opus 4.6, and Gemini 2.5 Pro. `OPENCODE_MODEL`controls the backend default model; model definitions live in `packages/model-catalog/catalog.json`.
59
+
All questions use **GPT-6 Luna (`openai/gpt-6-luna`) through OpenRouter**. Set `OPENROUTER_API_KEY`; there are no model or billing-route pickers. ChatGPT subscription authentication and `OPENCODE_MODEL`overrides are no longer supported.
60
60
61
-
The OpenAI route toggle supports OpenRouter and ChatGPT subscription OAuth. There is no direct OpenAI API-key integration. Existing explicit subscription choices and legacy OpenAI chat choices remain preserved.
61
+
Existing threads migrate to Luna/OpenRouter for future questions. Historical answers retain their original model and route metadata. Old OAuth files are no longer mounted or used by Lattice; existing files on disk are left untouched.
62
62
63
-
### Optional subscription access
64
-
65
-
API-only setup does not require an OAuth file. To also use subscription authentication:
66
-
67
-
1. Copy the OpenCode `auth.json` from a machine where you are already logged in to repository-root `opencode-auth.json`.
68
-
2. Set `OPENCODE_OPENAI_AUTH_HOST_FILE=../../opencode-auth.json` in `.env`.
Use `SUBSCRIPTION=1` for subsequent `make up` calls while retaining subscription access. The overlay bind-mounts the file at `/app/opencode-data/opencode/auth.json` and disables automatic host-path creation. OpenCode token refreshes persist to that file. Never commit or log it; Git and Docker build contexts exclude it.
63
+
Luna uses Chat Completions with reasoning disabled so it can call OpenCode's file tools. Both the main and helper model are pinned to Luna in the worker configuration.
78
64
79
65
## Environment
80
66
@@ -85,9 +71,7 @@ Use `SUBSCRIPTION=1` for subsequent `make up` calls while retaining subscription
85
71
|`CHAT_DB_PATH`| Chat SQLite database path inside the web container |
86
72
|`WEB_AUTH_MODE`|`dev`, `cloudflare`, or `auto`|
87
73
|`WEB_DEV_USER_EMAIL`| Development identity; optional fallback with `auto`|
88
-
|`OPENROUTER_API_KEY`| API key for all OpenRouter-backed models |
89
-
|`OPENCODE_MODEL`| Default model ID; invalid/unset values fall back to GPT-5.5 |
90
-
|`OPENCODE_OPENAI_AUTH_HOST_FILE`| OAuth file used only by the subscription Compose overlay |
74
+
|`OPENROUTER_API_KEY`| Required API key for GPT-6 Luna through OpenRouter |
91
75
|`OPENCODE_QUERY_TIMEOUT_MS`| Inactivity timeout; default 120000, `0` disables it |
|`OPENCODE_WORKER_SHUTDOWN_GRACE_MS`| Grace period before process-group force-kill; default 5000 |
@@ -125,7 +109,7 @@ After upgrading from a version containing QMD, remove the orphaned service conta
125
109
docker compose --env-file .env -f infra/docker/docker-compose.yml up --build -d --remove-orphans
126
110
```
127
111
128
-
Include the subscription overlay when needed. This does not delete old bind-mounted index/cache directories.
112
+
This does not delete old bind-mounted index/cache directories. Start with only the main Compose file to remove the old subscription authentication mount.
CI runs type checks, unit/integration tests, production builds, and container builds. SQLite tests use disposable databases; OpenCode integration tests use isolated configuration and make no paid model calls. Actual provider answers still require a configured API key and a manual query checking streaming, citations, file tools, and cancellation.
141
125
142
-
Use `make logs`, `make ps`, and `scripts/healthcheck.sh` for diagnostics. For provider failures, verify `OPENROUTER_API_KEY`, selected model availability, or the optional subscription mount. For sync failures, inspect AWS permissions and sync-worker logs.
126
+
Use `make logs`, `make ps`, and `scripts/healthcheck.sh` for diagnostics. For provider failures, verify `OPENROUTER_API_KEY`, OpenRouter credits, and GPT-6 Luna availability. For sync failures, inspect AWS permissions and sync-worker logs.
0 commit comments