Skip to content

Overview and Velocity are Harbor's (0.26.0) - #32

Merged
adamfortuna merged 1 commit into
mainfrom
overview-velocity
Nov 15, 2026
Merged

adamfortuna merged 1 commit into
mainfrom
overview-velocity

Conversation

@adamfortuna

Copy link
Copy Markdown
Contributor

Overview and Velocity move into Harbor. With this every page of the menu is the engine's own route, so a site with no code of its own has the whole section.

What a site with no code of its own gets

Overview (/factory, the section's own address), read from the records each time it is drawn:

  • At a glance: runs in the last 30 days (failed, under way), spend, agents on, workflows live, automations and runtimes on, the scorers' pass rate, proposals waiting, review rounds. A tile whose page is switched off is left out.
  • One stage, "Work", with who does each task type (the agent routing would give it to, its model and effort), what it runs (every workflow and automation), and how long each task type takes and costs (median and p90 over 30 days).
  • What changed: the newest fifty changes to workflows, agents, agent documents, shared context, task routing, model choices, stage notes and review rules, with a "This week" filter.
  • A note per stage, edited in place: Harbor::StageNote on factory_notes (the migration creates the table when it is missing), handed to config.export on every save.

Velocity (/factory/velocity), over the last 7, 30 or 90 days, 12 weeks or 6 months:

  • Runs: how many, ended ok, failed, median time; per week; by agent with outcome; by task type; by runtime.
  • Spending: total, runs with a cost, mean per run; per week; by agent; by model.
  • Scorers: judge runs and what they cost; each scorer's pass rate, verdicts by label, pass rate by week.

What a host adds

  • Harbor::Overview: stage, part, way_in, steer, change_source, tile, section, hide_section.
  • Harbor::Velocity: tab, remove_tab, tile.
  • Partials: harbor/overview/_intro, harbor/overview/_note_form_hint, harbor/velocity/_intro, harbor/velocity/_spending_cards, harbor/velocity/_runs_cards.
  • config.markdown; Harbor::Agent.edited_here and #effort_label; Harbor::Automation#trigger_data.

README sections "Overview" and "Velocity" have the details, and the changelog has "Upgrading from 0.25".

Notes

  • The stage note's frame and its Turbo Stream answer are written out by hand, so a host without turbo-rails (the dummy app) still draws and saves a note.
  • With the section's pages at the root (path: /), Overview is at /overview, because the root is the host's.
  • The menu tests that used Overview or Velocity as "a page the host owns" use the dummy app's own page (Reports) instead.
  • Version 0.26.0. Not tagged.

Checked

  • bin/test: 940 runs, 8275 assertions, 0 failures, 0 errors, 0 skips.
  • bundle exec rubocop: no offenses.

…bor's records, and the stage notes

Harbor::OverviewController serves the section's front page at the section's
own address (/factory). It is read from the records each time it is drawn:
one number for each thing Harbor keeps (Harbor::Overview::Summary), who does
each kind of work, what runs it (Harbor::Overview::Snapshot), how long it
takes and what it costs (Harbor::Overview::Timings), and what changed lately
(Harbor::Overview::Changes). Harbor::StageNote, on the factory_notes table
(the migration creates it when it is missing), is the one thing written by
hand: a note per stage, edited in place and handed to config.export.

Harbor::VelocityController serves /factory/velocity over a range, with three
tabs from Harbor's own records: Runs, Spending and Scorers
(Harbor::Velocity::Runs, Spending and Scoring).

The menu's Overview and Velocity entries are the engine's own routes, so
every page of the menu is Harbor's and a site with no code of its own has all
of it. The dummy app's menu tests use the page it adds itself (Reports) as
the page a host owns.

A site that declares nothing has one stage holding everything. A host
declares its stages, more lines under a stage, ways in, steering rows, change
sources, tiles and sections (Harbor::Overview), and tabs and tiles
(Harbor::Velocity). It says the headings in its own words and adds cards with
partials (harbor/overview/_intro and _note_form_hint, harbor/velocity/_intro,
_spending_cards and _runs_cards), and says how markdown is drawn
(config.markdown). Which agents count as edited on their page, an agent's
effort and what starts an automation are the host's classes' to say
(Harbor::Agent.edited_here, #effort_label, Harbor::Automation#trigger_data).

0.26.0.
@adamfortuna
adamfortuna merged commit 7034d6f into main Nov 15, 2026
2 checks passed
@adamfortuna
adamfortuna deleted the overview-velocity branch November 15, 2026 00:56
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant