v0.1.0
Latest v0.1.0 ยท Oct 8, 2026Initial release
Commits
- feat: phase 0 skeleton (653024b)
- feat: phase 1 companies and locations (590145b)
- feat: phase 2 doc types and documents (972d71b)
- feat: phase 3 inline editing (94d20e3)
- refactor: move navigation into a left sidebar (5768611)
- feat: phase 4 links, search, and attachments (954e396)
- feat: phase 5 API and integrations (29f7a19)
- feat: phase 6 vault integration (30fb254)
- feat: phase 7 polish for release (e2b740c)
- test: prove OIDC end to end, and add CI (16df56a)
- feat: en-US source language with en-GB as a translation (737a1da)
- chore: keep examples generic in the shipped code (ad60961)
- test: wait for an action to land before checking its effect (1e1e1fe)
- test: scope the revoked-key row to its own name (2ca26c2)
- rename: Strata becomes Bothy (28fa91b)
- rename: drop the compatibility path, this is Bothy only (219eded)
- feat: MCP endpoint so assistants can read the documentation (7bd6ff8)
- feat: run on Cloudflare Workers, with the vault still brokered (96b1b7f)
- fix: an empty environment value means unset (f43f0e5)
- Collapse the top bar user controls into one account flyout (ce13597)
- Let readers choose light, dark, or the system palette (a243dec)
- Limit a user or an API key to named companies (032fc06)
- Document running the container behind a Cloudflare Tunnel (c965c71)
- Let an admin brand the portal, and each company (72a7e7e)
- Decide an attachment by its bytes, and convert HEIC to JPEG (feed758)
- Wait for a company grant to land before reading it back (76f5746)
- Draw registrar, DNS host, and ISP from shared lists (d077bbf)
- Let a domain record look itself up (3affac4)
- Brand each theme, rather than adapting one for both (055d87c)
- Let each client's secrets live in its own vault (e15a886)
- Match the saved value exactly, not loosely (e32e5a1)
- Name the operator in the footer beside the product (9ed6467)
- Credit the product and its maker, and let that be turned off (61eecb6)
- Prove the 1Password path, and give it a sidecar to run in (c179779)
- Draw racks, and colour them by what things are (fd95062)
- Offer the dropdown "+" on the create form, not only in the editor (cb5db22)
- Wait for the doc type to land before remembering the create URL (cbfab75)
- Move administration into its own area, per the interface baseline (693c0f4)
- Give a document a date it needs looking at again (a16b806)
- Give schedules an origin at the doc type (6db3929)
- Bring outside knowledge bases in as collections of their own (3bf12a3)
- Give the knowledge base a public site for readers who have not signed in (95dea7e)
- Accept an API key the way it was handed out (630fbfe)
- Keep a dropdown on what was saved, and let a key be copied with a click (ec25bc7)
- Give the command that connects a repository on one line (ade4a71)
- Keep the pictures an import carries, and show them in its articles (5837e99)
- Let readers of the public site keep favorites, vote, and sort (837d697)
- Give accounts a password policy, a second step, and a way back in (2b09d8f)
- Fold the knowledge base front page, and give signed-in readers the same page (4606371)
- Answer the public knowledge base only on the hostname it is published at (39644c1)
- Read a help center by its structure, keep the files articles came from, and name a folder's category (4dfc576)
- Move unchanged articles to a given category, and make "Uncategorized" mean that (0c6512e)
- Read a crawled site's structure, keep the files an article links, and name where a collection came from (9a7f0e4)
- Make an imported article read as its source did, and outline it from its own headings (c96ccd8)
- Read every character reference in a crawled page's names (9dc5ca4)
- Hold articles back from the public site by keyword, by file, and by category (2828667)
- Keep a page's video, change a hide rule in place, and crawl past a site's archives (5b3f747)
- Keep a runbook's steps apart from its body, and write articles in the app (cadff6c)
- Offer the knowledge base over REST, and announce its changes by webhook (369b5f2)
- Grant a collection to a person by name, and manage people and grants by API (6a70693)
- Read a runbook's steps from every list it has, in sections, and write it again on demand (eedc91b)
- Make the suite say what it means on a database that persists (6168040)
- Send to one endpoint without waiting on another (cabbf03)
- Rename the product to Trove KB (ddf1337)
- Take the old name's blurb out of the README, and say what the knowledge base does (b22d94d)
- Lay the branding page out by mode, and let the text on the accent be stated (9572653)
- Let an integration keep a reader's favorites and votes, and say what each article is made of (7a6fe58)
- Set a key's access to every collection at once, and open public collections to every key (b36c63a)
- Choose a category from the collection's own, and move an article without recreating it (8371c79)
- Give the portal a mark, a tab icon, and a colour of its own (e18e4e2)
- Let the tab icon take the dark accent when the reader's browser is dark (0c4094d)
- Keep the mark in the tab whatever the header shows, in each mode's accent (4886213)
- Colour each character of a revealed secret, and spell it out for the phone (f30c6de)
- Re-run each domain check on its own clock, set in three layers (55cefbe)
- Read a DNS answer the same way every time, and let a finding rename an option (23b080d)
- Put a TXT record's name after the record, where the eye lands second (92fed43)
- Let only a registry's name rename an option; a guess that agrees is a match (3c43935)
- Read a website's own look, and let a company take it as its theme (43b98c4)
- Place a named visitor with a company, and show them its knowledge base (840c6c6)
- Let the public knowledge base carry the operator's credit and the reader's company (779cc6f)
- Give the public knowledge base a setup page of its own (602324b)
- Say that the vendor's credit stays on the installation's own pages (a7e83a8)
- Make roles rows with a permission set, and let an administrator add their own (2e1aa1a)
- Order the admin rail: people, then setup, then what the system tells you, then integrations (2ee3bbb)
- Publish a GitHub Release on each tag and tell the website (29bc171)
- Let an operator put their own tab icon up, one per mode, and take it down (7102316)
- Name the release in the footer, and give the worker back a name it can have (086fc47)