Skip to content

v0.4.0

Choose a tag to compare

@github-actions github-actions released this 17 Sep 20:59
· 16 commits to main since this release

Langolier answers over a local API, and lives in the menu bar without keeping its interface in memory.

Local API

  • A new POST /api/ask returns one JSON object instead of a stream, which is what Shortcuts, Siri and local agents can consume. It runs the same pipeline as the window and the exported page, so there is no second answer path to keep in step.
  • The reply carries the pipeline's own payload, plus a text field holding the answer with its sources spelled out underneath. A shortcut can show text and speak content without walking the sources array.
  • Loopback only, never the network. POST only, so a question never travels in a URL. An Authorization: Bearer token is required, generated when the API is first switched on, and the endpoint stays shut while no token is set. No CORS headers are emitted, and the same twelve questions a minute limit applies.
  • The engine lock is shared with the window: a question from Siri and a question typed in the app never generate at the same time.
  • Switched on under Engines, with the address, the token and a button that checks the API answers. Starting and stopping takes effect without restarting the app.

Menu bar

  • Closing the window now releases it rather than hiding it. The rendering engine goes with it, and on macOS the app steps out of the Dock the way a background agent does. Reopening rebuilds the window and puts it back.
  • Left click on the icon asks a question, right click opens the menu.
  • Watched folders and source processing stand down while Langolier sits in the menu bar. Two settings bring either back, off by default: a folder filled in the meantime is picked up when the window opens again.
  • The menu bar icon is a proper template image on macOS, recoloured by the system for light, dark and selected. Windows and Linux keep the icon in colour, as their trays expect.
  • Windows and Linux end an application with its last window, so the exit is refused while Langolier runs from the menu bar on purpose.

Retrieval on its own

  • POST /api/search returns the passages without writing an answer over them, so a shortcut or an agent can write instead. In lexical and exact, retrieval is pure SQLite: no model is involved, nothing to install, nothing called. hybrid and semantic still embed the question.

The creature

  • The flat logo in the sidebar is now the Langolier itself. It breathes, follows the pointer, and swallows documents while sources are being read, transcribed or vectorised. Clicking it feeds it on demand.
  • The menu bar icon on macOS is a proper template image, drawn from the same creature.

Site and wiki

  • A presentation site lives in docs/, in English and French, published at infinition.github.io/langolier. No CDN, no webfont, no analytics, and a strict content security policy.
  • The wiki is part of it, generated from the markdown in wiki/ by scripts/build-wiki.py, so the GitHub wiki and the site page never drift apart.
  • The sidebar carries three links: the site, the source, and the tip jar.

Fixes

  • Replacing the database when installing a bundle no longer fails on Windows: pooled connections are closed before the file is touched.
  • Tests covering the HTTP surface run without the desktop feature, so the test binary no longer links the Windows GUI stack.

Assets

Installers for macOS (universal .dmg), Windows (.exe) and Linux (.deb, .rpm, .AppImage), plus chatbot-runners-*.zip holding the launchers used by exported chatbots.

macOS builds are ad hoc signed. On first launch, right click the app and pick Open.