Update server and client to use images from the local registry
built by the ManyCoqDecks CI pipeline (adds local username/password auth).
Update secrets.example.yaml with local auth config instructions.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
ManyDecks client only supports guest/google/twitch in UI;
local auth is server-side only. Enable guests: {} so users
can sign in without an account.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
The Auth.Config interface expects expiresIn, not duration.
Wrong key caused /api/auth to return {} silently.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
ManyDecks tries to CREATE DATABASE on startup; CNPG must grant
this privilege persistently so reconciliation doesn't revoke it.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
The server doesn't expose a known health endpoint, so use a TCP
socket check on port 8083 instead — this unblocks Service routing.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Old server sends manyDecks as a single object; new server sends an array.
Accept both so the client works during a rolling upgrade or if the server
is older than the client.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Old configs have manyDecks as a plain object; new format is an array.
Wrap the old format in an array so existing deployments keep working
without a config migration.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Changed from Nothing (Maybe) to [] (List) to match the updated
Source.Info type that stores manyDecks as a list of instances.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Elm 0.19 does not support field aliasing in record destructuring patterns
({ field = alias } is not valid syntax). Use a plain argument and access
fields with dot notation instead.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
git config insteadOf is not picked up by submodule update in this
environment; rewrite .gitmodules directly and run submodule sync to
propagate the HTTPS URL before fetching.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
elm-material is a git submodule with an SSH URL; rewrite it to HTTPS
before calling submodule update so the init container can fetch it
without needing SSH keys.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Skip --import-cache when the cache tag doesn't yet exist in the
registry. Some registries time out on missing tags rather than
returning 404, causing buildctl to exit non-zero even after a
successful build and push, which aborted the client build.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Builds coqdecks-server and coqdecks-client Docker images via a
BuildKit Kubernetes job and pushes them to the in-cluster registry.
Uses per-image registry layer caches to speed up incremental builds.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
The ManyDecks source type now carries a baseUrl identifying which
instance a deck belongs to, allowing multiple self-hosted ManyDecks
servers to be configured alongside each other.
Config changes: `sources.manyDecks` is now an array of instances,
each with optional `name`, `baseUrl`, `timeout`, and
`simultaneousConnections`. Existing single-instance configs need to
be wrapped in an array.
When only one instance is configured the deck editor behaves as
before. When multiple instances are configured an instance picker
dropdown appears above the deck code field.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Completely revamped the Spanish localization. List of major changes:
- The plural function was incorrectly programmed, so many words were displayed grammatically incorrect in the game.
- Many misspelled words (typos) have been corrected.
- The words used have been refined to ensure that they are as understandable as possible.
- A list of Spanish language contributors has been added.