Skip to content

v0.7.0

Choose a tag to compare

@github-actions github-actions released this 21 Sep 13:34
· 3 commits to master since this release

Features

  • feat(admin): name the auth style in a probe failure (26f3b4a)
  • feat(bedrock): send a tool's cache_control as a cachePoint (485e8ec)
  • feat(console): manage accounts from Settings (e6b0ecd)
  • feat(admin): manage accounts as an administrator (49f0931)
  • feat(store): list, create and remove accounts (609af0b)
  • feat(console): sign in with a username (64b21bc)
  • feat(console): claim the console with a username (1530ca8)
  • feat(cmd): warn when console is unclaimed (dc699fd)
  • feat(admin): claim the console with first account (e644ef3)
  • feat(admin): log in as a named account (6922a88)
  • feat(store): scope sessions to an owner (c230fa7)
  • feat(store): add user account methods (7d1dc57)
  • feat(store): add users and session ownership (f4b66ae)
  • feat(settings): show what waits for a restart (f8dffcb)
  • feat(settings): edit every stored setting (d720273)
  • feat(settings): add an editor per setting kind (552813d)
  • feat(config-api): serve every setting from the registry (e0f879a)
  • feat(config-registry): declare what each key holds (084e9a0)
  • feat(config-api): write any stored setting through PUT (d2de9d9)
  • feat(store): commit a config patch in one transaction (7899709)
  • feat(config): commit a patch under the reload lock (d4f2518)
  • feat(config-registry): validate each key on the way in (3a4af49)
  • feat(health): surface the pending-restart set on both endpoints (9a5e30e)
  • feat(health): report a skipped setting as invalid (127795f)
  • feat(docker): start with no configuration file (8e34503)
  • feat(config): build the store from the database (2661acd)
  • feat(config): allow a store over an injected loader (8e8d63f)
  • feat(config): track restart-only drift from boot (b7bdbe3)
  • feat(store): drop stored rows that match the default (09443ee)
  • feat(store): load configuration from the database (6fc0a9a)
  • feat(store): add a registry for every stored config key (e0939fd)
  • feat(config): name the keys a cross-key rule failure covers (6c0febc)
  • feat(config): read bootstrap values from the environment (b8ce007)
  • feat(connect): advertise a configurable public domain (be5b99f)

Fixes

  • fix(ci): avoid duplicate catalogue PR authentication (fd4a793)
  • fix(catalog): repair provider catalogue refresh (b242454)
  • fix(admin): bound a local IPv6 /64's logins together (2c4ec98)
  • fix(exec): keep a cut refresh wait off the credential (c7b6131)
  • fix(web): drop a deleted chat's unsaved exchanges (fc0ed10)
  • fix(bedrock): keep documents within Converse's rules (11378f3)
  • fix(web): let the row pin shrink with new data (46869af)
  • fix(web): warn when a keyless add is not routed (d05c04a)
  • fix(web): size log tab columns in ch (d8c37f4)
  • fix(bedrock): render documents as Converse blocks (cdcf14c)
  • fix(anthropic): send text documents as a text source (57731ce)
  • fix(edge): base64-encode an Anthropic text document (a98f930)
  • fix(exec): end a forward at its terminal event (44eda45)
  • fix(exec): name connect after a token refresh (b847867)
  • fix(exec): name timeouts the transport enforces (55c8c58)
  • fix(exec): keep a firing timeout's bound name (2821b99)
  • fix(exec): record failed unary writes as cancelled (769fa3a)
  • fix(exec): pass flush errors through body capture (95bf5da)
  • fix(exec): stop blaming clients for shutdown cuts (6a05aaa)
  • fix(exec): record a finished forward as a success (238b76f)
  • fix(exec): prefer a provider error to a hang-up (6319321)
  • fix(exec): end a cancelled forward with an error (590312c)
  • fix(admin): keep the alias pin when If-Match mixes * (cf360b0)
  • fix(admin): refuse a location on a non-vertex provider (72a7cab)
  • fix(store): fill a provider location only once (3d25344)
  • fix(admin): key LAN IPv6 logins per address (259aa0d)
  • fix(admin): count a keyless provider's cooldowns (4ac0375)
  • fix(web): take routing state from the last key write (b06bceb)
  • fix(web): disable a refused key that cannot be refetched (aeaa077)
  • fix(admin): redact each field of a structured secret (d77eaeb)
  • fix(admin): reject an AWS key only on its own refusal (95d784e)
  • fix(admin): keep an OpenAI key missing scopes (dcf4ec2)
  • fix(providers): unpin actions below extra-large width (0850a55)
  • fix(web): never measure the empty-state row (f8bb786)
  • fix(providers): offer location only for Vertex (3d247ce)
  • fix(requests): pin rows to the measured height (0a3327a)
  • fix(providers): apply the free-models box on retry (0a6992f)
  • fix(providers): warn when a saved change is not routed (42be3dc)
  • fix(providers): keep answered prompts after a failure (d941c38)
  • fix(providers): show cancelled test runs as neutral (02eeb6a)
  • fix(playground): keep held saves held and scoped (6526394)
  • fix(auth): require a JSON object for a vendor refusal (86cdcb2)
  • fix(store): classify NFS, FUSE and transient lock errors (9bd9244)
  • fix(catalog): cap the calls a custom lister makes (b1b172e)
  • fix(catalog): grade tokens at an unquoted cache rate (c0b4862)
  • fix(store): fence only the last rollup day from prune (b801634)
  • fix(gemini): stop calling Flash Thinking non-thinking (33e421a)
  • fix(bedrock): send tool cachePoints to listed models (e45ff8a)
  • fix(anthropic): parse custom-typed tools as functions (784b900)
  • fix(gemini): read snake_case parameters_json_schema (725ca93)
  • fix(openai): name document types without mime.types (8c436e2)
  • fix(xlate): keep converted Gemini schemas valid (373ff98)
  • fix(store): report no lock on non-unix platforms (31cc2d1)
  • fix(exec): name the timeout bound that fired (55586ac)
  • fix(exec): record a failed sub-batch's status (77a44ee)
  • fix(vertex): reach the us and eu multi-regions (c69a1cb)
  • fix(gemini): fail over past a dead API key (c31de24)
  • fix(admin): keep a key OpenAI refuses for its IP (2903ae9)
  • fix(admin): validate vertex and bedrock endpoints (7f00882)
  • fix(adapter): refuse a host-moving region or location (8d08d76)
  • fix(catalog): cool a Gemini key refused with a 400 (b9486d0)
  • fix(admin): keep a key the provider answers 403 (07e1a23)
  • fix(admin): length-prefix fields in the cursor hash (df7f1bf)
  • fix(web): show a client hang-up apart from failure (4f9fba7)
  • fix(store): leave client hang-ups out of error rate (f5da192)
  • fix(exec): record a hang-up after commit as cancelled (5c3a496)
  • fix(exec): redact a token-count send's error (2075092)
  • fix(config): warn when shutdown_grace outlasts the stop (72b0fa1)
  • fix(store): lock on NFS and survive mounts without locks (c883cf6)
  • fix(exec): let an upload use all of max_body_bytes (e22ceec)
  • fix(exec): bound embedding sub-batches like a send (e06ea66)
  • fix(exec): bound a trickling unary body by total (2f43de4)
  • fix(web): keep the Free tier badge on one line (8b94aa8)
  • fix(adapter): convert Gemini OpenAPI schemas for others (86ad4ac)
  • fix(gemini): sign unsigned current-turn calls for 3.x (1068e82)
  • fix(gemini): send no thinking config to 1.x and 2.0 (4d6aea5)
  • fix(gemini): rejoin a thought's signature for clients (520f29d)
  • fix(gemini): cap generated tool call ids at 40 chars (8ee5181)
  • fix(openai): decode plain data URIs and infer file MIME (48ba528)
  • fix(anthropic): carry a delta's redacted data on open (f045377)
  • fix(openaicompat): order index-less embeddings by position (6bd5b65)
  • fix(web): skip saving a setting retyped as stored (a7e6bf2)
  • fix(web): say what a failed local rollback left (fbc7323)
  • fix(web): space the requests window by rendered rows (9d639fc)
  • fix(admin): mark unloaded config saves routing_updated (807c738)
  • fix(admin): key IPv6 login buckets by /64 (d389111)
  • fix(admin): accept an If-Match list on alias saves (5dc40ee)
  • fix(admin): let a patch fill a missing location (1ede268)
  • fix(admin): flag key refusals behind other statuses (1a1537f)
  • fix(web): wrap long model ids in the trace drawer (ca421ba)
  • fix(web): wrap alias chain actions below targets (59dc9f3)
  • fix(web): unpin provider actions in a narrow table (39070bc)
  • fix(web): stop the requests table crushing columns (fb9f854)
  • fix(web): warn when a local runtime is not routed (e0de375)
  • fix(web): keep a new chat's saves in one queue (9d86dbe)
  • fix(web): send the prompt a reasoning-only reply met (f3e9b42)
  • fix(web): keep a stopped test reply out of history (832c123)
  • fix(web): say when provider usage did not load (51b90d2)
  • fix(web): compare settings by value, not spelling (d9998e5)
  • fix(web): give back bulk lines as typed on retry (cadc8bc)
  • fix(admin): judge overview health by enabled creds (5b2690f)
  • fix(catalog): use platform.claude.com for OAuth tokens (97a1a0e)
  • fix(catalog): grade a cost by the cache rate it used (ca0a7b8)
  • fix(store): keep only cache rates a listing quoted (cf69bf4)
  • fix(auth): describe Anthropic's object-shaped errors (28a202f)
  • fix(auth): stop a forgotten unsaved rotation serving (299fb1e)
  • fix(catalog): bound each lister call, not the listing (7f19180)
  • fix(exec): keep query-param keys out of error text (8240128)
  • fix(exec): end a forwarded stream with one error (929c971)
  • fix(exec): report a cut in a forwarded raw tail (0cf749a)
  • fix(exec): blame a stalled client, not the provider (5bc1ba4)
  • fix(gemini): render client schemas in their own field (108ccf9)
  • fix(gemini): follow each model's thinking levels (e529d93)
  • fix(bedrock): send cache TTL only where supported (84ecdbd)
  • fix(vertex): forward only betas Vertex accepts (00f98e8)
  • fix(adapter): decide tool choice from rendered tools (b20b9e5)
  • fix(ir): keep nameless typed tools out of BuiltIn (462ec01)
  • fix(auth): treat a non-JSON 400/401 refresh as transient (3ea2f63)
  • fix(catalog): leave free models' cache rates at zero (8ac4f75)
  • fix(catalog): list Ollama Cloud from /v1/models (7772bde)
  • fix(catalog): keep models_url for rows on its host (99e57f9)
  • fix(store): keep rollup catch-up off pruned days (1e91ba7)
  • fix(admin): report a committed provider as created (d88f0d8)
  • fix(web): skip provider creation on a fast retry (5fe2ad1)
  • fix(web): count a stored key as added when unrouted (0b04741)
  • fix(admin): report a committed credential as created (b6bd9cc)
  • fix(admin): let a patch skip an endpoint it leaves (f86650e)
  • fix(admin): keep a Vertex key a 403 does not reject (60b9efe)
  • fix(web): keep rows when showing newer requests (0d38f94)
  • fix(web): note a failed refresh over an empty log (2ca7bee)
  • fix(web): align provider-list load banners with detail (d675113)
  • fix(web): count a reasoning-only test reply as served (9c2159b)
  • fix(web): keep a failed partial reply out of history (caa28a0)
  • fix(web): explain an idle provider's flat sparkline (d5be5ea)
  • fix(web): queue chat saves per conversation (16726ca)
  • fix(web): retry chat saves refused with 408 or 429 (e484f98)
  • fix(web): quote a tilde in connect shell snippets (ad2e066)
  • fix(web): refresh caches when an alias save misfires (99471ac)
  • fix(web): rebase the alias draft onto a refetch (fa892a4)
  • fix(admin): serve the alias ETag from the stored table (052c22d)
  • fix(admin): accept a weak or star If-Match on aliases (c8da0b4)
  • fix(web): show a request-list failure instead of no requests (59afb95)
  • fix(web): stop Load more from restarting after the last page (4e82592)
  • fix(admin): refuse a stale alias save with 409 (2fc290e)
  • fix(web): report a persisted alias save that did not take effect (f849eef)
  • fix(web): save chat exchanges whole, in order (823e146)
  • fix(web): keep unanswered chat turns out of history (0592101)
  • fix(web): hold playground sends on unreadable JSON (63c93cf)
  • fix(web): let ladder rows grow and scroll when narrow (45135a6)
  • fix(web): keep unsaved settings across a refetch (e0c9d54)
  • fix(web): parse number boxes with a decimal point (7e8dabb)
  • fix(web): quote config values in client snippets (8d49a21)
  • fix(admin): let the console show model media (c8faf57)
  • fix(store): catch the rollup up after downtime (f75e43c)
  • fix(admin): show failed runs in a provider's test log (de59b81)
  • fix(web): start usage drilldowns at the chart window (45e36cd)
  • fix(web): draw idle days on usage charts (e2ab778)
  • fix(web): keep requests without an alias out of dates (2dc88b1)
  • fix(store): window usage by calendar days (f5c6710)
  • fix(server): keep restore failures out of readiness (a19cb03)
  • fix(exec): split embeddings to the upstream's limits (d6079cd)
  • fix(exec): refuse embeddings short of their inputs (6ba1fd7)
  • fix(vertex): carry the Anthropic beta header over (3dd99b1)
  • fix(bedrock): read every inference-profile page (3a4a516)
  • fix(bedrock): keep cache TTLs, budget and placements (c56aa58)
  • fix(bedrock): honour Claude request-shape restrictions (973ae2a)
  • fix(bedrock): turn thinking off explicitly for Claude (bbc6556)
  • fix(bedrock): send a Claude budget as thinking (b46e42b)
  • fix(gemini): honor per-model thinking limits (5741837)
  • fix(gemini): send JSON Schema via the JSON Schema fields (4026c46)
  • fix(anthropic): warn on an unhonored JSON-object mode (297a49c)
  • fix(adapter): drop other providers' built-in tools (91a3989)
  • fix(gemini): commit streamed media and warn on drop (7bf8d7f)
  • fix(gemini): name function calls Gemini left unnamed (51c73ff)
  • fix(gemini): split a thought's text from its signature (b25106f)
  • fix(anthropic): keep redacted thinking data on start (03e7cd6)
  • fix(web): ask cloud providers where their endpoint is (8824f86)
  • fix(admin): accept the endpoints shipped presets use (f69e9a1)
  • fix(admin): send an OAuth probe to the provider (b83f9c4)
  • fix(admin): bound the console's upstream calls (fcd913f)
  • fix(admin): count every page of a probed listing (f48b657)
  • fix(admin): probe with the provider's own auth style (943f6ee)
  • fix(openaicompat): send only strict as a function extra (70c5563)
  • fix(openaicompat): commit a forward on reasoning (e444746)
  • fix(gemini): close the stream past truncated call args (44fd191)
  • fix(gemini): keep a function allowlist in translation (113d1a7)
  • fix(openai): split a Responses file_data data URI (af2acb3)
  • fix(openai): translate a Responses text.format fully (90a8e80)
  • fix(openai): pair a legacy function result with its call (7b5b1eb)
  • fix(anthropic): keep a closed block's stream index (511c166)
  • fix(cmd): refuse rotate-key while the gateway runs (19b7bfa)
  • fix(admin): enforce the login limiter's bucket bound (fbabc92)
  • fix(auth): bound the service-account token exchange (d16666e)
  • fix(auth): finish a token refresh its caller left (7aafa13)
  • fix(auth): keep a rotated token when persisting fails (6cde0d1)
  • fix(auth): persist a refresh only over its own secret (399ae9d)
  • fix(auth): treat a malformed token response as transient (5c1230a)
  • fix(admin): report a write the router did not load (b281dba)
  • fix(provider): serialize provider reloads (cfe9ffe)
  • fix(store): refuse the last admin deletion atomically (a8c28ce)
  • fix(server): bound each write to a client that stops reading (142cedd)
  • fix(exec): record a failure after commit against health (8677c60)
  • fix(exec): renew idle while body bytes keep arriving (244210d)
  • fix(exec): refuse a 2xx error body before forwarding (128b39d)
  • fix(exec): keep a typed in-stream error's class (c8bf63c)
  • fix(exec): classify a mid-body hang-up as the client's (cf3fead)
  • fix(exec): step past a target that cannot be rendered (c1411bc)
  • fix(exec): send a static key where its style declares (754d313)
  • fix(exec): leave a request with no usage unpriced (25e6c7f)
  • fix(exec): spend multipart headers and parts from the cap (27a0309)
  • fix(localcli): end a failed stream in an error event (02a57a4)
  • fix(web): ask sigv4 and gcp-sa for their documents (5486cfd)
  • fix(web): show provider query failures as failures (f0b0c04)
  • fix(admin): show a provider's own models on its page (2c38dda)
  • fix(web): plot usage series under CSS-safe ids (cb0aa71)
  • fix(web): fail drawer runs on stream errors (f5dc85e)
  • fix(web): cancel drawer test runs on Stop and close (5e24766)
  • fix(web): keep failed turns out of drawer history (d006a2a)
  • fix(web): create a keyless provider once per drawer (7356bd6)
  • fix(web): keep failed credentials in the add dialog (8f23e2c)
  • fix(admin): keep a new key when its check cannot finish (9b20d33)
  • fix(web): clear the key draft when switching provider (6862067)
  • fix(web): judge provider health by enabled keys only (afce94d)
  • fix(presetgen): fail when an excluded family file is gone (bc8bed6)
  • fix(catalog): fill cache rates a listing did not quote (599dbbe)
  • fix(catalog): give every Anthropic-shaped preset traits (1d2bab1)
  • fix(catalog): read Ollama Cloud's native model listing (3fa0efd)
  • fix(catalog): carry the synced free tier into routing (e586e04)
  • fix(catalog): list from a moved base URL, not the preset (439e8ff)
  • fix(catalog): bound a custom lister by the probe timeout (cf1621a)
  • fix(catalog): skip the keyless fallback for a keyed sweep (2e7882a)
  • fix(catalog): keep credentials out of discovery errors (a8c5ad3)
  • fix(adapter): validate parsed embedding vectors (4e29da5)
  • fix(vertex): stop embeddings truncating input (e468855)
  • fix(adapter): reject error and empty unary envelopes (7d56529)
  • fix(adapter): bound unary chat response bodies (a7ef894)
  • fix(adapter): fail a stream that ends unfinished (8ee6dad)
  • fix(sse): cap one event's accumulated data (5f9b5da)
  • fix(compose): grace-period the container past drain (90124ca)
  • fix(ci): pin write-privileged jobs' actions by SHA (17eead8)
  • fix(ci): scan the image before publishing its tags (bca95c3)
  • fix(ci): stop piping release-bump greps (04813e6)
  • fix(localcli): anchor a relative auggie binary path (1f63ee2)
  • fix(store): clear the truncated Vertex URL on rows (c23059b)
  • fix(exec): keep unsent failures out of the breaker (f6ac67d)
  • fix(localcli): remove auggie's tools by their real names (43a880f)
  • fix(health): stop callers stranding the probe (b83804d)
  • fix(catalog): ship Vertex with an empty base URL (6903b89)
  • fix(playground): save a turn left by opening another (38d796e)
  • fix(server): keep proxy auth on after last revoke (7c5bcaa)
  • fix(catalog): follow listing pagination to the end (4a81bf7)
  • fix(catalog): authorize generic discovery requests (abd2da8)
  • fix(catalog): seed Vertex before the listing probe (7632055)
  • fix(console): keep catalog capabilities on override (0b9da6f)
  • fix(edge): write stream usage that follows the stop (e3d02a4)
  • fix(pricing): count reasoning inside output once (a34f929)
  • fix(tokenize): bound and cancel local token estimates (81d8c94)
  • fix(gemini): cap media fetched per request (942567d)
  • fix(bedrock): send adaptive thinking to Claude 4.7+ (a60b12e)
  • fix(presetgen): apply explicit zero-value overrides (f8d7634)
  • fix(localcli): sandbox auggie's directory, env and tools (29ce5ba)
  • fix(console): correct account-scoped wording (96369a6)
  • fix(cmd): warn when a claim check cannot run (f4d585c)
  • fix(admin): cap bcrypt on the claim endpoint (2a41634)
  • fix(console): stop scaring members off Settings (6558b19)
  • fix(admin): name the caller in the account listing (1bc7ca2)
  • fix(settings): match server's new refusal text (0def57d)
  • fix(admin): count bcrypt work, not verify calls (1903dc5)
  • fix(settings): scope the bare-domain placeholder (8420823)
  • fix(settings): give a refusal one place to appear (d8478fd)
  • fix(startup): surface startup warnings in the console (ebb51c8)
  • fix(config-api): bound the detached write context (dcc0764)
  • fix(settings): say the settings are writable now (a850ea8)
  • fix(store): keep the numbers in a rule refusal (5671fd9)
  • fix(store): judge a save by the table it would leave (ac827c9)
  • fix(store): begin write transactions immediately (6b45afd)
  • fix(config): match warnings by prefix and read the token raw (c19b431)
  • fix(config-api): report policy source and validity honestly (44e8b96)
  • fix(settings): stop promising a live edit of an environment value (fa7f07f)
  • fix(health): key config_valid on skipped, not warnings (d5e0c3a)
  • fix(config): correct the restart-only field set (9c6864a)
  • fix(admin): report a stored setting as coming from the database (ee511ac)
  • fix(store): revert the key a rule named, not all 32 (51ac63c)
  • fix(config): normalize a stored public_url domain (0b27e5e)
  • fix(store): leave policy to the loader, not the overlay (913686a)
  • fix(config): rebase pending-restart onto the overlay (975d7db)
  • fix(store): reject an unknown key before deleting it (a63076b)
  • fix(config): default every optional bool field to true (553037a)

Other changes

  • ci: allow time for production-cost authentication race tests (a65b094)
  • test: stabilize race tests and reduce database fixture overhead (e2fc479)
  • test(exec): remove unused capture helper (09d8156)
  • test(admin): pin routing_updated on credential patch (df35b79)
  • refactor(admin): drop unreachable nil-DB config checks (9fcbc33)
  • chore(ci): name the exact release on action pins (7089281)
  • docs(ops): document the lock gap on non-Unix (f94d923)
  • docs(server): fix stale write deadline comment (de5248b)
  • test(web): guard the failed disable report index (37a6f42)
  • refactor(admin): drop unreachable nil-DB alias branches (3b7e4ec)
  • test(settings): cover the reseed after a save (0b72321)
  • test(store): give recent-stats records fixed ids (fdf942c)
  • test(auth): guard the unsaved rotation after Forget (861435c)
  • test(catalog): widen the lister timeout margins (792de73)
  • perf(catalog): rank grades with a switch (d9447a5)
  • test(golden): pin Bedrock's one-hour cachePoint (4d1021a)
  • test(vertex): restore the endpoint refusal tests (21bdfde)
  • test(admin): freeze the clock in the login limit test (c7adee0)
  • docs(web): tie shutdown grace to the stop period (e974f3f)
  • test(admin): pin the clock in today-spend tests (28c0166)
  • refactor(server): share the write-deadline wrapper (fa842b6)
  • chore(ci): SHA-pin the actions in read-only jobs (29dd90a)
  • docs(deploy): say when --env-file breaks a quoted key (f4dc002)
  • perf(vertex): estimate embedding tokens from text shape (3b794f4)
  • refactor(anthropic): drop unread redacted start data (1df2ea7)
  • refactor(catalog): share the listing page loop (cd233f8)
  • test(admin): pin the clock usage windows are read by (17482ea)
  • refactor(web): share request failure handling (385eb44)
  • docs: record accounts in schema and deploy notes (3a85036)
  • test(admin): refuse a member the delete route (7858de4)
  • docs(mockups): fix login route, prune dead CSS (bf85048)
  • docs(decisions): drop dead hash-in-compose entry (c77adaa)
  • docs(decisions): record the console claim reversal (df61216)
  • docs(admin-api): fix stale setup comment, count (06878d2)
  • docs(accounts): sweep prose past the hash grep (bd6a8e0)
  • docs: describe accounts, not a shared password (eadde72)
  • refactor(admin): share the credential validator (9826c35)
  • docs(ops): fix cascade pragma, column wording (4e9c3a5)
  • docs(ops): give recovery a working remedy (b0d0885)
  • docs(ops): fix upgrade fix count to three (7f9a1d0)
  • docs(ops): describe claiming rather than recovering (4454475)
  • refactor(console): share the password guard (9e29a00)
  • test(admin): pin the change-password refusal (1d23578)
  • style(admin): gofmt after the Deps field removal (0016565)
  • test(admin): hash the id the rotation test checks (b2d478a)
  • test(e2e): authenticate the harness as an account (1d5ee07)
  • refactor(admin): delete the shared password machinery (f0af116)
  • test(store): race ClaimFirstUser for one winner (c785704)
  • docs(plan): correct test helper names and signatures (1e33408)
  • docs(plan): plan user accounts across all three phases (f41bcaa)
  • docs(spec): design user accounts and first-run onboarding (da65a23)
  • docs: correct how the console checks a password (9df6247)
  • docs: rewrap two edited paragraphs (1246ee1)
  • test(config): require the doc anchor to occur once (74ccf08)
  • docs: drop the last descriptions of the file era (130faf4)
  • docs(ops): name pending_restart as the durable set (4d12603)
  • docs(config): describe the log level variable (eb7acc1)
  • docs(decisions): record the restart-only PUT reversal (a1d891f)
  • test(config): pin the documented restart-only list (ab336de)
  • docs(deploy): note the recovery step's first-restart no-op (89755fc)
  • docs(deploy): the console edits every setting now (2700201)
  • docs(config): correct what the phases changed (ba05ea2)
  • docs(plan): add the phase 4 documentation plan (68c5cd6)
  • docs(plan): record what phase 4 inherits (754e305)
  • refactor(settings): build rows from the values map (92b11fd)
  • refactor(console): read config from the flat values map (02972bb)
  • docs(plan): add the phase 3 console plan (e763c46)
  • docs(plan): record what phase 3 inherits (dd1d367)
  • refactor(config): delete the providers block (a53994c)
  • test(provider): move the rest off the YAML source (c828039)
  • test(provider): add a fixed source for tests (b4e588c)
  • docs(comments): drop the file-era wording (db690d6)
  • refactor(store): retire the policy-only write path (238582b)
  • refactor(admin): route policy and aliases via config (402fe59)
  • refactor(store): extract the config builder (bba4a54)
  • docs(plan): use the in-package db test helper (1b89646)
  • docs(plan): add the phase 2 write-path plan (3bd2136)
  • test(startup): pin the -config flag and readyz under bad settings (c1a7b58)
  • refactor(store): delete the retired YAML import machinery (d8c4648)
  • docs(config): stop telling operators to edit a file that is gone (d00912d)
  • chore(store): drop the last of the file-era warnings (03b4968)
  • refactor(config): delete the YAML loader and the watcher (0c8d32a)
  • test(config): build stores from a config, not a file (3268a0e)
  • test(store): assert the row filter and the proxy token (568f262)
  • test(store): make the timeout revert assertion bite (d76890c)
  • docs(config): add the config-in-database spec and plan (e087777)
  • chore(config): move default ports to 18080 and 18081 (1193182)

Full changelog: v0.6.2...v0.7.0

Image

docker pull darkraise/darkrouter:0.7.0

Digest: sha256:360252967b191f41d994c5b7b9251535a3c8cc5e238fa00b9a71186b2295795c