Skip to content

Revisions

  • Fix nine false or stale claims, verified against the tree A page-by-page audit of all 23 pages against repo master found seven claims that are simply false and two that are stale. Each was re-checked against the tree before being changed rather than taken on trust. False: - /events/recent as the dashboard feed endpoint. No such route: events is index + collection { get :search }, and there is no recent.js.erb. The feed refreshes via GET /events.js; EventsController#recent is unreachable dead code. (Interface.md.) - "Every management index screen is paginated at 25 rows". systems is deliberately unpaged, as are services, words (fixed 20), alerts, events, polling_priorities. - The list of screens pagination replaced: that commit touched twelve controllers, systems was not one of them, and hunks -- which it did touch -- was omitted. windows_targets and active_directory_connections inherited it later. - A Search row as a string "plus its time window". searches carries string, user_id, description, short_description and nothing else; no timeframe column has ever existed, so it is chosen again at run time. - "the systemd units set /var/DAD/offline_storage, mode 0700". No unit sets the variable; the path comes from the default plus WorkingDirectory. And nothing in the app sets 0700 -- EventPartitionBackup uses mkdir_p, so the directory gets the umask default. This one is load-bearing: it told operators a directory of raw log lines was permission-protected when nothing protects it. - db:seed "seeds the two maintenance jobs" -- it seeds four. - JobHandler::HANDLERS as "seven operations" -- eight since poll_windows_events. Stale: - "Below 720px" in three pages; the media query is max-width: 768px. - Statistical-Alerting.md crediting a Math monkey patch; the helpers are Stats.mean/variance/standard_deviation, and the patch was removed. Also documents the new self-logging stack: every service but syslog ships its own stdout/stderr to the collector, the two measured traps that decide whether anything is stored at all (the log driver resolves syslog-address in the daemon's namespace, and the frame format decides the Service), the resulting single-System attribution, and the CI step that asserts Service names rather than merely a row. Checked and left alone: the Viewer rights row. An earlier audit flagged it for omitting preferences, but preferences is Admin-gated in CONTROLLER_RIGHTS, so the row is correct as written. Co-authored-by: openhands <openhands@all-hands.dev>

    @openhands-agent openhands-agent committed Nov 12, 2026
  • Update the wiki for PostgreSQL-only dev/test and the deleted provision.sh SQLite is no longer the development and test engine, and Vagrantfile and provision.sh are gone, so most pages described a setup that no longer exists. - Installation: drop the Vagrant quick-start, make the manual path create a Postgres database per environment and use db:migrate_from_scratch, and move the secret-file guidance off provision.sh onto the systemd units. - Development: replace "Two databases, and why CI has both" with "PostgreSQL everywhere", documenting why db:migrate_from_scratch is required, why maintain_test_schema is now unconditionally false (its old DATABASE_URL condition inverted once Postgres became the default), and what test/support/scratch_database.rb and query_plan.rb are for. Suite counts updated to 436 runs / 1237 assertions / 0 skips. - Search: expand the collation finding to the actual mechanism -- the [term, term + U+10FFFF) range and why no sound upper bound exists under en_US.UTF-8 -- with an explicit "do not reintroduce" note. - Architecture, Retention, Jobs, Access-Control, Home: correct the engine claims and provision.sh references. - What Changed Since 2016: new "Removed: SQLite as the development and test engine" section, including the two guards that look like dead SQLite support but handle an unpartitioned Postgres install. Co-authored-by: openhands <openhands@all-hands.dev>

    @openhands-agent openhands-agent committed Nov 11, 2026
  • Record the dead events_words index drop and close the secret_key_base item Architecture: state that events_words carries exactly one index, the composite covering index search reads, and why the standalone generated index was removed. Search: the plan note claimed joining drives events_words "through the generated index" -- that index no longer exists. Reworded, and the idx_scan evidence and identical timings recorded. What Changed Since 2016: new section on the removed index, including the two figures that did not survive re-measurement (the 2.3-185x search claim, and ~6% vs 5.1% insert cost), and the partitioned-index drop constraint. Marks the secret_key_base item closed: no live deployment holds the key, so rotation is moot and history rewriting stays declined. Development: only a development-env db:migrate rewrites schema.rb, since test.rb sets dump_schema_after_migration = false. A test-env migrate runs the migration and leaves the file stale. Co-authored-by: openhands <openhands@all-hands.dev>

    @openhands-agent openhands-agent committed Nov 10, 2026
  • Update wiki for the search-form fix and the 8.1.4.1 lock Co-authored-by: openhands <openhands@all-hands.dev>

    @openhands-agent openhands-agent committed Nov 8, 2026
  • Add interface screenshots and correct disk/search documentation Adds an Interface page with screenshots of the running UI (login, dashboard, search results, jobs, users/roles/rights, preferences, alerts, displays, exclusions, stored searches, systems) taken against a seeded demonstration dataset, and threads the relevant ones into the pages they describe. Corrects the record on disk utilization: there is no dashboard disk gauge. The author commented it out in bec738c ("Hiding disk gauge", 2015-02-28); the live surfaces are the disk_utilization job and preferences.archiveFreeSpacePercent. Documents the open search-form bug (RECOMMENDATIONS 2.3): the Rails check_box always submits timesearch_enabled[enabled]=0, and EventsController#search branches on the presence of that key, so every form search takes the absolute date branch with a now->now window and reports 0 events. Co-authored-by: openhands <openhands@all-hands.dev>

    @openhands-agent openhands-agent committed Nov 8, 2026
  • Search: document what the index actually contains stage_event downcases the line and replaces every character outside - _ : @ * / . with a space before tokenising, so a search term holding any other punctuation matches nothing at all. That reads as a broken search rather than as the index working as designed. hunks keeps the original line, so the index and the event views are built from different strings. Co-authored-by: openhands <openhands@all-hands.dev>

    @openhands-agent openhands-agent committed Nov 8, 2026
  • Bring the wiki in line with the current project The wiki last changed in April 2016 and described an alpha that let you type Ruby into the Jobs form and the display editor. Both of those designs are gone, so the pages were not just stale but actively misleading. New pages: Architecture, Installation, Search, Displays (rewritten), Jobs, Retention and Archives, Access Control, Exclusions, Development, and What Changed Since 2016, which maps the 2015 material onto the current code. The eight alerting recipes are kept as a recipe archive with a banner and an API-status table on Example Jobs: the analysis shape still ports, but they call a Job design that no longer exists, and Math.mean/variance/standard_deviation were removed in favour of Stats. Home is now a landing page with a status summary and a task-based index. Co-authored-by: openhands <openhands@all-hands.dev>

    @openhands-agent openhands-agent committed Nov 8, 2026