Roadmap & release notes

Current version 0.4.0 · latest release v0.3.0 (2026-08-08) · page updated 2026-08-11

Everything the annotator can do, by the version it arrived in — and what we're building next.

What's next

In progress

Built or being built now — this is what 0.4 becomes.

Next

Committed, not yet started.

Exploring

Wanted, with an open question in front of it.

A roadmap, not a schedule. These are the things being worked on and the order they are wanted in. Nothing here carries a delivery date; the dates on this page are the ones we can stand behind, which are the releases below.

Release history

Each release lists what it added. A version in development is already built and in testing — it reaches annotators as the next install.

v0.4.0

in development

Multi-team tenancy: a team owns its own annotation schema and its own set of surfaces, and every page that reaches across organizations is admin-only.

Platform access
  • Which sites and AI chats a team may annotate on is a setting now, not a briefing: an admin ticks the 13 surfaces per organization and per team, so a team scoped to one research question — or an agreement that doesn't cover AI-chat transcripts — is enforced rather than explained.
  • The layers intersect. An organization's list is a ceiling its teams narrow but never widen, and a surface the organization has turned off shows as unavailable on the team's row rather than as a box that can be ticked to no effect.
  • A team with no list of its own inherits. Enforcement runs in the page (no Annotate button on a surface the team doesn't hold) and again when the submission arrives, since the first check runs on the annotator's own machine.
  • Nothing is restricted out of the box — the shipped policy is empty, so every team keeps all 13 surfaces until an admin unticks something.
Teams and organizations
  • Each team assigns its own annotation schema. Resolution runs team → organization → default, so re-pointing one team leaves its siblings untouched.
  • An acting-team switcher: the team you are annotating for decides the schema, the destination and the meters, while what you can SEE still spans every team you belong to.
  • Cross-tenant pages are admin-only. A lead's oversight covers every team inside their own organization — that is depth, not a reach into another organization's names, rosters or totals.
  • The organizations page is one collapsible table of organizations and their teams, with drag-and-drop between them over the same confirmed move the buttons use.
  • Every move confirms against a dry run that NAMES the people it re-files: existing annotations stay where they are, only future work moves, and a vague “are you sure?” never conveyed that.
  • Moves now warn before they break. A member missing from the target organization, or a team schema that organization hasn't published, is reported up front instead of surfacing later as a failed submission.
  • The teams page shows every team in your organization; a team you're not on renders read-only rather than as a form that would be refused on save.
  • A platforms page sets which sites and AI chats each organization and team may annotate on. A team can narrow what its organization allows and never widen it, so an organization-level limit is a real ceiling rather than a suggestion.
  • Platforms a team isn't cleared for simply don't show the annotation tools, and a submission from one is refused at the service too — the policy holds whether or not the browser honours it.
Annotating
  • Custom schemas match the built-in panel: re-opening an annotation now pre-fills the answers you already gave. Re-submitting overwrites the previous annotation, so an editor that opened blank was quietly replacing finished work — this was the release's most important fix.
  • The flag pill, the thread-context box (on a chat: the opening request and the eliciting prompt) and the AI explanation all reached custom schemas, so a team on its own schema stops judging a response with no sight of the question.
  • Annotation schemas are versioned, so an answer always renders against the definition it was asked under, however often the schema is edited afterwards.

v0.3.0

2026-08-08

The platform set nearly doubled, and the annotation panel became configurable per organization instead of fixed in the code.

Annotable after this release — 13 surfaces: X, YouTube, Rumble, TikTok, Reddit, Instagram, 4chan, and ChatGPT, Claude, Grok, Gemini, DeepSeek, Qwen.

New surfaces
  • Rumble and TikTok — both the video and its comments.
  • Three more assistants: Gemini, DeepSeek and Qwen.
  • Reddit submissions themselves became annotable, with the submission carried as context for its comments.
Annotating
  • Flag and Annotate moved into the chat's own action row, so the buttons sit where every other control on that response sits — and stopped landing in the middle of a long answer.
  • A highlighted passage now anchors to that passage. A partial highlight used to be filed against the whole response, which turned a precise piece of evidence into a vague one.
  • The editor opens centered as a modal on extension pages, where there is no post behind it for a side drawer to leave visible.
  • On Qwen, Annotate and Flag join the platform's own selection menu instead of fighting it for the same corner of the screen.
Flagged sources
  • Citations to watchlisted outlets are marked inline in an assistant's response, with the reason a click away.
  • Anyone can report an unlisted outlet; leads triage reports into the watchlist every annotator's extension fetches, with no rebuild.
  • Detection only — a flagged citation is never an automatic hate label.
Per-organization annotation schemas
  • A schema builder with visual, JSON and layout tabs, and a live preview that renders through the same renderer the annotators use.
  • Custom HTML and CSS layouts with field placeholders, validated the same way on the client and the server so a layout can't pass one and fail the other.
  • Starting-point presets, so a new schema begins from a working example.
AI budget
  • AI use is metered per organization, team and person, with monthly limits and a Usage & limits page.
  • Every account starts with 5 pre-annotations and 5 explanations a month — a default allowance rather than an unbounded one.
Reliability and safety
  • A security review pass: hardened sign-in and queue authorization, HTTPS-only ingest, rate and cost limits, and baseline security headers on every response.
  • The normalized annotation database became the authoritative store for every submission.
  • Every network call carries a timeout. A connection that is accepted and then never answered used to hang forever, which could leave the extension looking dead on the page.
Workspace
  • Platform brand logos on every queue and history row.
  • One shared token set behind the whole interface, so the popup, the panel and the workspace stop drifting apart.

v0.2.0

2026-08-04

Five more surfaces, and adding a colleague stopped requiring a shared password or a redeploy.

Annotable after this release — 8 surfaces: X, YouTube, Reddit, Instagram, 4chan, and ChatGPT, Claude, Grok.

New surfaces
  • Grok conversations.
  • Reddit and Instagram comments.
  • 4chan threads.
Accounts
  • An admin can invite a colleague from the console: a passwordless account with its permission group, team and organization already set, claimed by signing in with Google.
  • The accounts roster groups by team, permission group or role, collapses, and searches — a flat list had stopped working past about thirty accounts.
Fixes
  • Post identity is stable on YouTube, so the badge marking an already-annotated comment (and the flag pill beside it) no longer disappears and reappears as the page re-renders.
  • A flag placed on a permalink is recognized wherever that post appears.
Permissions
  • The extension asks for no site-access permission beyond the ingest service itself. Every request it makes goes there and nowhere else, so the platform permissions it used to request bought nothing.

v0.1.0

2026-07-16

The first release: annotate in place on the platform itself, with a lead's approval standing between a submission and the corpus.

Annotable after this release — 3 surfaces: X, YouTube, and ChatGPT and Claude conversations.

Annotating in place
  • Hover any post or comment → Annotate (or Alt+A) → classify in a drawer beside the post, against the AddressHate label space. No copy-pasting into a separate tool, and the post stays on screen.
  • The thread comes with it: reply chains, quoted posts, the parent comment, the video or conversation the post sits in, and its media.
  • Keyboard navigation between posts, contextual co-text picking for the comments that make a post legible, and a five-second undo on every submit.
  • ChatGPT and Claude conversations are annotable as well — an assistant turn, or a selected excerpt of one, with the prompt that elicited it captured as context.
Sync that doesn't lose work
  • Submissions queue locally and deliver with retry, so annotating through a dead connection, a slept laptop or a browser restart keeps the work.
  • The editor stays on screen until a submission is acknowledged, rather than closing hopefully.
The review gate
  • An annotation is archived immediately but stays pending until a lead approves it; approval is what commits it to the database and runs the AI second opinion.
  • Leads get an approval inbox with the captured evidence, a conflicts view where annotators disagree on the same post, and coaching feedback that reaches the annotator on their own history rows.
Evidence flags
  • Flag a post for someone else to annotate, with the passage that prompted it highlighted.
  • Flagging inside a private conversation is consent-gated, and the evidence is only ever readable in the workspace — nobody else can open someone's chat by its URL.
Accounts and roles
  • Username/password or Google sign-in, with capabilities coming from permission groups — admin, lead, senior annotator, annotator, flagger — resolved live, so a change to a group applies immediately.
  • Teams as the isolation unit: two teams do not see each other's flags or annotations.
  • A one-time onboarding agreement before first use.
The workspace
  • A full-page Items dashboard over the shared work queue: directories, paste-a-list to create, assignment and filtering.
  • History with gate status per row, date and project filters, and export to .xlsx.
AI second opinion
  • An optional model pre-annotation and a plain-language explanation beside the annotator's own answer, scored for agreement — a second opinion, never a substitute for the annotator's.
Hosting
  • The ingest service on Cloud Run with a durable archive of every submission envelope.
  • These public pages — privacy, data deletion, terms and support.

How versions are numbered

The annotator is pre-1.0, so every release so far sits on the 0.x line: the middle number moves for a release, the last for a fix shipped on its own. The version above is the version in the extension's manifest — the one Chrome shows on its extensions page — so what you are running and what you are reading always match. 1.0 is reserved for the point the tool is stable across every surface it claims, not for a date.

Questions about a release: jmurry@addresshate.org. Setup and troubleshooting live on Support.