Tags: pixeltable/pixeltable
Tags
[PXT-1344] pxt db logs and pxt service logs (#1593) Adds two CLI verbs that read the logs of a hosted database and of a hosted service, so a failed deploy or an opaque 500 can be diagnosed from the command line: pxt db logs pxt://org:db pxt service logs pxt://org:db/services/NAME Both take --since (30s, 10m, 1h, 2d; default 1h), --tail N (the newest N lines in the window, default 200, at most 10000), --include-health (keep the health probe lines, left out by default) and --json. On the wire this is a new GET_LOGS management operation with its request and response models; the local daemon forwards it to the control plane like the other hosted verbs. The control plane side is in pixeltable-cloud (PR to follow), which reads the records back from CloudWatch. This PR also adds the operation to the read-only set and gives it the longer timeout, since the server waits on a log query.
Normalize kwarg order in FunctionCall deserialization (#1599) When a FunctionCall is stored in postgres, the JSONB dict does not preserve key order. As a result, the display_str() of a FunctionCall may change after a DB round trip. This fix restores the original order of kwargs on deserialization. In particular, it provides a "quickfix" of PXT-1347. We may still want to do a more nuanced expr comparison for `pxt diff`, but we can reevaluate its priority now that the immediate bug is fixed. In any case, we definitely want a normalized kwarg order for display purposes (tbl.describe(), etc)
Docs overhaul for launch: TableModel first run, Cloud, and How it wor… …ks (#1562) ## Summary - Getting Started is Why, Quickstart, then How it works (`diff` / `update` / `prune`). Use-case pages lead with a `TableModel` in `app.py`. - First run: `pxt service example` → `pxt schema update` → `pxt service update` → POST a row. Notebooks and tests still use `pxt.create_table()`. - Cloud: create an API key in the dashboard, set `PIXELTABLE_API_KEY`, then `pxt db update`, `pxt schema update`, and `pxt service update` against `pxt://org:mydb`. `pxt db update` does not insert rows and does not start app endpoints. `pxt service run` is local only. - Self-hosting is five pages: which local process, HTTP serving, infrastructure, operations, security. - Starter kit is two apps: `uvx pixeltable-new myapp` (`agent`) or `--video` (`videointel`). - Hop-1 uses a small Card layout. Hosted capability file is [skill.md](https://docs.pixeltable.com/skill.md). Install stays `npx skills add pixeltable/pixeltable-skill` (2.7.4). - 0.7.x: types are required unless `| None`; B-trees are not automatic; `pxt secret` is documented; names match without regard to case. ## Test plan - [ ] Quickstart: `pxt service example` → `pxt schema update` → `pxt service update` → curl insert - [ ] `uvx pixeltable-new myapp` applies as `agent`; `--video` applies as `videointel` - [ ] Cloud: API key from the dashboard, then `pxt db update` / `pxt schema update` / `pxt service update` against `pxt://org:mydb` - [ ] `/resources/ai-skills` opens the AI Skills page (no bounce to AI coding agents) - [ ] `/howto/deployment/monitoring` redirects to operations#monitoring --------- Co-authored-by: Cursor <cursoragent@cursor.com>
[PXT-880] Add mixed-case schema objects to the test db dump (#1566) Pixeltable identifiers are becoming case-insensitive, stored case-folded, but the metadata converter that folds them has nothing to fold. Rename a directory, a component view, a table and its columns, and one computed column per table, and name one embedding index. Add a column that is dropped again, so that a name survives only in a historical schema version. Regenerate the version 55 dump.
Dashboard - multi-catalog browsing, pipeline inspector, table detail (#… …1494) The dashboard can browse hosted catalogs alongside the local one; table and pipeline views reworked. Two catalog bug fixes come along, both hit while testing against a real catalog. Dashboard - Add hosted catalogs (pxt://org:db) next to the local one; persisted in the browser (lib/catalogs.ts), each tree loaded lazily on open (CatalogTree) - Search spans the local catalog plus every added catalog, returning fully resolvable paths - Table detail reworked: row count, iterator columns marked, computed expressions wrap and expand - Pipeline inspector and column flow diagram simplified; kind badges for table/view/snapshot/iterator - Directory responses missing entries repaired client-side with a one-time warning (api/normalize.ts, unit-tested) Daemon - GET /api/dashboard/search takes repeated catalogs params - GET /api/dashboard/tables/meta returns row_count - Column metadata carries is_iterator_col Catalog fixes - A component view whose iterator can no longer be located crashed on len(None) unless its outputs were persisted; such views now load with their stored data readable - InvalidGeneratingFunction never set name, so get_metadata() and describe() raised AttributeError
PreviousNext