Skip to content

Tables

Tables are typed data grids for anything that belongs in rows and columns: an asset register, expenses, readings, a parts list.

  • Each column has a type (text, number, currency, percent, date, checkbox, select, URL, formula, reference and more), so the grid can total a column, sort dates properly and refuse a word where a number belongs.
  • A table can have several tabs, like sheets in a spreadsheet. A reference column links to a row in another tab.
  • Start with New table (the plus button). Import loads a spreadsheet file into a table.
  • Edits are saved as a draft. Press Commit to publish them, or Discard to drop them.

Assistant

  • “How much did I spend on diesel last quarter?”
  • “Add a row to the maintenance table: pump 3, serviced today.”
  • “Which assets have no service date?”
  • “Turn the spreadsheet I just sent into a table.”

The assistant answers from the data itself, so a question with an exact answer gets one. Rows it adds land in the draft, like yours: check them, then commit.

Technical

Each table is its own SQLite file under TABLE_DB_DIR, with a separate .draft.sqlite file while edits are uncommitted. Each tab is a SQL view named after its columns. The table is also an ordinary item in the brain, with a summary, so it turns up in search.

The assistant reads with table_schema (every tab’s columns, types and row counts) and table_sql (a read-only SELECT, which can join tabs in one table). It adds and changes rows with table_row_add and table_row_update, and imports with table_from_file. Building grids is the Ledger specialist’s job. Deleting a table needs the Table admin group, which no agent has by default.