Skip to content
RoutineOS
Esc
↑↓navigate↵open⌘Jpreview
On this page

Browse and records

Browse lists records of one type with search, filters, columns, sort and CSV export. The record page shows values, sightings, links and the keep, drop again and merge controls.

What it is

  • Browse (#/browse/<type>) lists every record of one type.
  • The record page (#/entity/<type>/<slug>) shows one record in full.

Why it exists

Browse is where people check what a routine found and what its settings cut. The record page is where they correct it: keep a record the settings dropped, merge a duplicate, and add notes the routine never overwrites.

How it works

Browse

  • Search across the record’s text.
  • Show dropped toggle (dropped records are hidden by default and counted in the label).
  • Filters: Starred only, tag, source, drop reason, a time window (all, week, month, last-month), and one select per declared field.
  • Columns: declared fields, agent columns (with an agent badge) and the meta fields.
  • Sort by any column, ascending or descending.
  • Save view writes the current filters to views/<id>. See Views.
  • Export the filtered rows as CSV through downloads. Without it: “Saving a file is not available here. Copy the text below.”
  • Star and tag inline, written to userstate/<id>.

Filter state lives in the route’s query string, so a filtered list can be bookmarked.

The record page

Section Shows or does
About this display values, links, first and last seen
Status Active, dropped with “Settings filters dropped this . Keep it to override them for this record.”, “Kept by a person”, or “Kept (pending next run)”
Keep this Writes decisions/<id> {decision: "keep", at, by}. “A keep is recorded now. Applies from the next run, which keeps this record active.”
Drop again Deletes the keep. “Drop again is recorded now. Applies from the next run, which applies the settings filters again.”
Merge into another Writes merges/<id> {into, at, by}; Unmerge deletes it
Star, tags, note userstate/<id> {star, tags, note}; tags are comma separated
Agent fields agentFields values
Sightings The last 30, newest first

Since 0.5.0:

  • Lists: status defaults to active, with a built-in Dropped view that offers Restore. Meta filters (status, first and last seen ranges, seen count) page through the store 100 at a time. Record-field, tag and star filters read the full filtered set on demand (up to 1000 per read, de-duplicated by id). Targets: first page under 300 ms, full read under 1 s at 5,000 records.
  • Bulk actions: Keep, Drop, Tag, Untag, Star, Export selected, and Merge (exactly two). “Select all N matching” asks to confirm and caps at 1,000. Writes run one at a time, then a summary and a 10 second undo.
  • Record page: Keep, Drop with a reason (decisions/<id> {decision: "drop", reason, at, by}), Star, Tag and Merge, with tabs Summary, Sightings, History and Notes, and a “Drop pending” overlay until the next run.
  • Export: CSV or JSON, Copy or Download, with the hint “You’ll be asked to confirm before the file saves.” The file is named <workspace>-<type plural>-<YYYY-MM-DD>.<ext>.

Worked example

On #/browse/role, the person turns on Show dropped and filters drop reason to not in title_keywords. Five “Hydrogen” roles look right. They open each and press Keep this role. Each page shows “Kept (pending next run)”. The next run marks them active with the sighting note kept by person, and learning counts them toward “Add hydrogen to title_keywords”.

Common pitfalls

  • Expecting a keep to show active at once. The stored status changes on the next run.
  • Notes on the record. Notes, tags and stars live in userstate/, shared by everyone on the Desk.
  • Exporting a huge list on a phone. Export what the filter shows; narrow it first.

Was this page helpful?