v0.17.0 — PWA layer, X draft @ restoration, planning docs

Adds installable PWA to projecthermes.tech: web manifest, 10-file icon set generated from master artwork (wordmark and textless variants), iOS meta tags, and manifest/favicon routes in app.py. No service worker — offline support is deferred to v1.5. Restores @{handle} prefix on all 12 X outreach drafts for conventional reply format. Adds tests/test_reply_drafts_integrity.py start-with-@ assertion. Adds internal planning documents: docs/strategy.md and docs/roadmap.md. No changes to audit rules, evidence scoring, or methodology version semantics.

v0.16.0 — X discovery and drafting bot

Adds hermes_x_bot.py, a standalone background agent that discovers UAP-related posts on X, filters candidates, scores them, and enqueues drafts for operator review. Introduces a 30-minute systemd timer (installed, not started). No changes to audit rules, evidence scoring, or methodology version semantics. Reply drafts rewritten in Hermes voice and redirected to /intake. Integrity test added at tests/test_reply_drafts_integrity.py to prevent regression.


v0.15.0 — Operator review queue (X)

Adds the operator-gated X (Twitter) post review queue and associated infrastructure. No changes to audit rules, evidence scoring, or methodology version semantics.

v0.14.0 — Hermes Evidence Score

Every audit record now produces a single float in [−1.0, +1.0] called the Hermes Evidence Score. Negative means conventional explanations remain plausible; positive means they are collectively weakened; zero is inconclusive. The score is a pure, deterministic function of the audit record — no network requests, no rule re-execution. It is version-stamped so it can be reproduced by any third party given the same audit record and SCORE_VERSION.

Posture: the score describes the strength of evidence relative to conventional explanations. It does not identify, classify, or characterise the underlying phenomenon.

v0.13.0 — AI-provenance signal panel

Every media upload now runs a panel of five independent provenance signals designed to surface evidence relevant to AI-generation detection. No signal claims a verdict. Aggregating them into a single AI-or-not score would be dishonest — there is no reliable, generalizable AI-detection algorithm in 2026, and every signal in this panel has a known failure mode. The platform documents what it can measure; the analyst decides what it means.

Posture: footage is a sensor. The panel documents what the sensor can measure about its own provenance. Each signal stands alone. None claims a verdict. The analyst decides.

v0.12.0 — Layer 4: known-object exclusion engine

For every case with sufficient grounding (a usable timestamp AND a usable location), Hermes now queries four independent catalogs of known sky objects and checks whether any of them match the sighting envelope. Every match is surfaced as a candidate explanation. The absence of any match is surfaced as a documented clean result. The engine never sets a verdict — it shows the analyst the evidence and the math.

Posture: footage is a sensor. A sensor is only as good as the data it is grounded upon. This session grounds every sighting against the catalog of known objects in the sky at that time, from that location. Excluded sightings are not failures — they are the platform working correctly.

v0.11.0 — Reused-footage detection pipeline

Every media upload now produces a perceptual fingerprint at upload time, stored on the case under case.provenance.fingerprint, and immediately checked against the existing corpus for near-matches. Near-matches are surfaced for analyst review — never auto-rejected. The goal is not to verdict. The goal is to make reuse visible.

Posture: footage is a sensor. Reused footage breaks every claim it grounds. This pipeline makes reuse visible.

v0.10.0 — Layer 1 file provenance pipeline

Every media upload through /intake now produces a cryptographic provenance record before the file enters any corpus. The record is stored on the case under case.provenance and is locked into the audit hash — once populated, the provenance cannot be silently changed without breaking the hash.

Posture: footage is a sensor. A sensor is only as good as the data it is grounded upon. This pipeline grounds the file itself.

v0.9.0 — witness geometry grounding + operator camera calibration

Two new data layers ground Hermes reports in verifiable geometry. Every submission can now carry a GeoJSON standpoint-and-FOV record from the witness; every profiled camera can carry a GeoJSON viewshed polygon from the operator. Both inputs feed two new audit rules that give the confidence engine honest geometry to reason over, rather than leaving it to work from verbal descriptions alone.

Posture: footage is a sensor. A sensor that isn't grounded in honest geometry is a guess dressed as measurement.

v0.8.3 — service hardening (least-privilege)

No methodology change and no rule change. Operational hardening only: the Hermes app no longer runs as root. METHODOLOGY_VERSION stays at 0.7.0; corpus snapshot hash is unchanged.

v0.8.2 — landing-page truth pass + index reconciliation

No methodology change and no rule change. This release closes the gap between what the homepage claimed and what the system could actually show, and reconciles a stale index where the public counter had drifted from the cases on disk. METHODOLOGY_VERSION stays at 0.7.0; existing audit hashes are unchanged.

Posture: a small honest number is better than a big misleading one. The corpus is small. The methodology is published. The numbers on the homepage are now what the system actually has.

v0.8.1 — calibration intake (operator mode + ground truth)

Hermes now has a separate intake path for calibration cases: submissions where the identity of the object on camera is already known. These cases are the measurement baseline for the photometric, motion, and astrometric analyzers that arrive in v0.9.x. They never enter the public corpus and they never influence witness verdicts.

Posture: we measure against a truth we know. Only then can we say what we do not know.

v0.8.0 — first measurement analyzer (media metadata + tier + consent)

This is the beginning of the video analysis workstream. Hermes now reads files and assigns a provenance tier before any deeper analysis is attempted.

Posture: we measure. We do not determine. When we don't know, we say so.

v0.7.3 (UX) — mission statement

Voice change. Every visitor — witness or researcher — now reads the same opening statement before anything else. No methodology or rule changes. METHODOLOGY_VERSION stays at 0.7.0; audit hashes for existing cases are unchanged.

v0.7.2 (UX) — conversational intake

Release date: 2026-04-23 · interface and witness-UX change; methodology version unchanged at v0.7.0, no audit hashes affected. Two new stored fields added to the case schema (feeling, privacy.location_precision, intake_version) that do not feed the audit trail.

v0.7.1 (UX) — two-door landing page

Release date: 2026-04-23 · interface-only change; methodology version unchanged at v0.7.0, no audit hashes affected.

v0.7.0 — corpus completeness upgrade

Release date: 2026-04-23

v0.6.0 — SAT-LOS-01 + CORR-01

Release date: 2026-04-23

v0.4.1 — audit trail

Release date: 2026-04-22

METHODOLOGY CHANGELOG

Every substantive change to the Hermes analysis methodology, in reverse chronological order. If you are replicating an analysis from a paper, find the version it was published under and read forward.

Current methodology version: 0.16.0
Versions follow semantic versioning against the methodology (not the software). MAJOR: breaking change to analysis output semantics. MINOR: new analysis module or expanded corpus. PATCH: bug fix or documentation clarification with no effect on outputs.

v0.4.0 April 2026

MINOR Corpus expansion + research console + reproducibility hashing.

Breaking effects on prior analyses: none; this is purely additive. Older /api/cohort endpoint remains available but is superseded by /api/cohort/v2 for index-backed queries.

v0.3.0 April 2026

MINOR Multi-network routing + workbench.

v0.2.0 April 2026

MINOR Intake form improvements + teams.

v0.1.0 Initial public release

MAJOR Initial methodology.


Planned changes under review

The following are proposed methodology changes with open review. They are not yet active.

How to propose a methodology change

Hermes welcomes concrete methodology contributions. A well-formed proposal includes: (a) what change, (b) what problem it solves, (c) references or prior art, (d) proposed effect on existing confidence grades or forecast outputs, (e) backward-compatibility plan. The bar for a MAJOR change is that no currently-cited analysis becomes retroactively wrong without a documented migration path.

Version-to-version hash behavior

A reproducibility hash verifies the query, not the output. If the methodology version changes between publication and replication, the hash will still match for the same query, but the numbers returned may differ. Reviewers should always note the methodology version under which an analysis was originally performed.