Skip to content

v3.32.0 — exports that read like a report

Choose a tag to compare

@cboettig cboettig released this 05 Oct 04:52
· 21 commits to main since this release

The saved export is now a session report that reads like a Quarto or R Markdown document, not a copy of the chat panel. It records which model produced it. Also a fix for private deployments that opt out of the export in config.json, and a docs catch-up.

See it: sample report, re-exported from a real TPL Protected Lands Explorer session.

The export is a session report (#388, #389)

  • One section per question, headed by the user's words verbatim, with a table of contents (floating on wide screens).
  • Code chunks with output. Each SQL-carrying call (query, register_hex_tiles, render_chart, filter_by_query) is a folded code chunk with its output beneath it, in the order it ran, followed by the model's answer as prose. Show all / Hide all code plus the existing R · Python · SQL switch.
  • Charts are figures. Each render_chart the session drew is re-drawn at report width as a captioned figure under its chunk, even if the user closed its panel. A chart drawn from rows the model passed inline (rather than SQL) says so.
  • Intermediate calls are summarised, not dumped. Schema and catalog lookups become one Consulted … line, map actions one line each, and failed or retried calls a count.
  • A session log appendix, collapsed, keeps every call with its arguments and result, lookups and failures included. The body is curated; the log shows nothing was hidden. It stays folded when printed.
  • Model disclosure. Under the title: "Outputs generated with GLEN using <model> on <date>", plus a note that the prose was written by the model. The model is recorded per question, so a mid-session switch shows, and each section names its own when more than one was used. The link goes to the project docs site; set export.project_url to point it elsewhere.
  • Colophon with the GLEN version the app is pinned to, read off the jsDelivr URL.
  • Fixed: every query used to appear twice (once in the call row, once in the result row).

The export is now built from a structured record of the session rather than a clone of the chat DOM. The renderer is a new DOM-free module, app/export-report.js, with 99% line coverage.

Fix

  • "export" in config.json is now honoured (#393). The guide told private deployments to opt out with "export": false in the deploy-time config.json, but main.js never merged that key. An app that opted out only in its ConfigMap still offered the export. If you run a private app, check it actually has the export off after upgrading.

Docs (#392)

  • New sections: GeoJSON upload (upload_enabled), including the bucket's anonymous-PUT + CORS requirement, and the read-tool memo (tool_memo).
  • A table of the config.json keys the app reads.
  • The top-level fields table now lists every opt-in feature block.
  • Corrected deployment guidance that predated version pinning, and updated stale example pins.

Upgrading

Drop-in from v3.31.x. No config changes needed.

  • Exported files are now named glen-session-YYYY-MM-DD-HHMM.html (was glen-chat-…).
  • ChatUI takes an optional fifth constructor argument, the ChartRenderer. main.js passes it, so this only matters to custom bootstraps.
  • Moving live chart panels into the sidebar is planned separately (#391); they still float over the map in this release.

Full changelog: v3.31.0...v3.32.0