honcho/docs
Vineeth Voruganti 2059215a4e fix(filter): treat a bare null operand as a null check
Routing every operand through _coerce_operand made bare `None` a type
error rather than a null check, so {"session_id": null} raised FilterError
where it previously built IS NULL: _build_field_condition used to end in
`column == value`, which SQLAlchemy renders as IS NULL. Confirmed 422 on
all five column families (text, numeric, boolean, datetime, JSONB).

Nothing caught it. The docs added in this branch promise
`{"session_id": None}` matches unset rows, the comment in
_build_comparison_conditions claimed the equality path already covered it,
and the DSL-wide invariant test accepts "compiles OR raises FilterError",
so a 422 passed. _coerce_operand's docstring already stated the contract
its caller wasn't honoring — "Callers handle None (a null check) and `*`
(a wildcard) before calling" — so the guard restores that rather than
adding a new rule.

The three null forms now agree: {"col": null} is IS NULL, {"col": {"ne":
null}} is IS NOT NULL, NOT [{"col": null}] is (IS NULL) IS NOT true.

Also from review of #947:

- Log filter keys, not the body. That log line is new in this branch and
  operands carry peer/session ids and free-text `contains` values; the
  traceback plus the entry shape is what locates a builder bug.
- Assert whereclause in the _where test helper, so a dropped condition
  fails instead of returning the whole statement to substring-match.
- Cover the raw-key JSONB path via source_ids, a JSONB column outside
  JSONB_COLUMNS reachable through Document's raw-key fallback.
- Drop the orphaned comment left above ENUM_COLUMN_VALUES when
  _coerce_operand replaced SCALAR_OPERAND_TYPES.
- Document that a JSONB column takes an object bare or under `contains`
  and nothing else. Bare {"metadata": X} is containment, so the `ne` this
  branch removed was never its inverse: a row with {"status":"done","x":1}
  satisfied both it and {"metadata": {"status":"done"}}. Per-key operators
  and NOT cover the real intents.
- Rewrite "Negation and Unset Fields" to lead with the operator rule and a
  truth table, forward-linking to Filtering Conclusions instead of using
  conclusions ~525 lines before they are introduced. A conclusion's
  session_id is the only nullable documented filterable field, verified
  across Message/Document/Session/Peer/Workspace.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-12 23:37:19 -04:00
..
changelog August Changelog Docs Sync (#1009) 2026-08-12 17:35:51 -04:00
images chore(docs): Add detailed system diagram to docs 2026-07-01 16:55:15 -04:00
logo color theme and broken link fix (#213) 2025-09-24 16:06:54 -04:00
snippets feat(cli): add `honcho session view` transcript command (#1006) 2026-08-11 10:12:16 -04:00
v1 feat: retry on more httpx exceptions (#467) 2026-04-03 12:20:53 -04:00
v2 Connection Exponential Backoff (#758) 2026-06-01 12:57:07 -04:00
v3 fix(filter): treat a bare null operand as a null check 2026-08-12 23:37:19 -04:00
README.md Add Pre-commit Hooks (#165) 2025-07-22 15:17:53 -04:00
bun.lock v3.0.6 Release Candidate (#550) 2026-04-10 13:16:42 -04:00
docs.json August Changelog Docs Sync (#1009) 2026-08-12 17:35:51 -04:00
favicon.svg [0.0.7] — 2024-04-01 (#50) 2024-04-01 10:58:42 -07:00
package.json v3.0.6 Release Candidate (#550) 2026-04-10 13:16:42 -04:00

README.md

Honcho Docs

These docs are built using Next.js via mintlify.

Setting Up Honcho's Docs Locally

  1. Clone the repository:
git clone git@github.com:plastic-labs/honcho.git
  1. Navigate into the docs folder:
cd honcho/docs/

The docs folder contains the markdown files that make up the documentation. The majority of the files are in the pages directory. Some notable files in this folder include:

  1. Verify that you have Node.js and npm installed in your system. You can check by running:
node --version
npm --version
  1. If not installed, download Node.js and npm from the respective official websites.

  2. Once you have Node.js and npm running, proceed to install pnpm - another package manager that helps to manage project dependencies:

npm install -g pnpm
  1. Install the project dependencies using pnpm:
pnpm i
  1. After the successful installation of the project dependencies, start the local server:
pnpm dev

Now, you should be able to view the docs on your local environment by visiting http://localhost:3000. You can explore the different markdown files and make changes as you see fit.