Repository navigation
ECHO-1052 feat: Verify and Explore work well out of the box - #1369
Open
JorimTheuns wants to merge 9 commits into
Open
JorimTheuns wants to merge 9 commits into
JorimTheuns wants to merge 9 commits into
Conversation
… the box Verify: the approved topic prompts (English and Dutch) and shared rules, the new built-in topic "heard", new labels in eight languages, project context and key terms as delimited reference material, and the key terms the PII allow-list refers to. The participant's email and name no longer reach the model or the logs. Untouched global topics move to the new text on the next migrate; nothing selected now means the table check alone. Explore: one open question by default, two "What if" prompts in brainstorm, in all eight languages; custom prompts keep their wrapper. New project setting is_get_reply_cross_pollination_enabled (off for every project): off, Explore reads only this conversation; on, the others come in as "another group", never by name. ENABLE_PARTICIPANT_EMAIL (off): asking for email and report notifications cannot be newly switched on by the PATCH, the assistant, templates or setup suggestions; a project that has them keeps them. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01BKdjPZBaxnCMragWmqzZTL
…the options behind it Portal: the recorder's button is named after where it goes. Only Verify: "Verify", straight to it; only Explore: "Explore", straight to a question; both: "Verify or explore", which opens two full-box choices with an icon, a label and one line each (control grey edge, 44px, focus, pressed and locked states, label and line as accessible name and description). The Verify picker lists topics as buttons with one line each; one topic still starts at once. The finish reminder says "Before you finish". Portal editor: every Verify option with its one line, Phosphor icons for topics, "One question" for the default Explore mode, and the Cross-pollination switch inside Explore. Asking for email and report notifications sit behind ENABLE_PARTICIPANT_EMAIL (off): hidden unless a project already has them on. Strings in eight languages; non-English ones are model-translated and listed in the machine-translations ledgers. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01BKdjPZBaxnCMragWmqzZTL
bun packages/verify/test/prompt-pack/run.ts --out <dir> writes, for the five tables in demos/example-en and six synthetic Dutch tables, every Verify topic and Explore mode as the model got it before (templates at origin/main, assembled as the old code did) and as it gets it now. --run also asks Vertex multi_modal_pro for each payload. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01BKdjPZBaxnCMragWmqzZTL
…only when opened, and a screenshot harness The choice screen and the Verify picker open after a minute of recording, so they leave the portal's first load. The harness renders every portal state at phone width and the editor's Verify and Explore sections, in English and Dutch (E2E_SHOTS=<dir> saves screenshots). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01BKdjPZBaxnCMragWmqzZTL
Catalog conflicts resolved by keeping every string from both sides, then extract and compile. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01BKdjPZBaxnCMragWmqzZTL
JorimTheuns
force-pushed
the
echo-1043-proposed-key-terms
branch
from
November 10, 2026 17:35
589d148 to
60cbb42
Compare
JorimTheuns
force-pushed
the
echo-1052-verify-explore
branch
from
November 10, 2026 17:35
3faa975 to
d1b8836
Compare
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01BKdjPZBaxnCMragWmqzZTL
…is ECHO The combined button carries the product name, untranslated, in every language; the choice behind it is unchanged. The "available soon" note follows it in eight languages (model-written, in the ledger). The harness renders the real Stop label and checks the footer stays on one row at 390px in Dutch and German. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01BKdjPZBaxnCMragWmqzZTL
Every Dutch prompt template that used formal address (the Explore system wrapper and ten others) now uses je and jouw; the reply prompt snapshot follows. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01BKdjPZBaxnCMragWmqzZTL
…cts never start asking With ENABLE_PARTICIPANT_EMAIL off, a duplicate keeps the source's email and notification settings; a blank project, every template and any overrides leave both off. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01BKdjPZBaxnCMragWmqzZTL
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Stacked on #1368
Linear: ECHO-1052 "Verify and Explore work well out of the box".
What changes for existing projects
agreements,disagreements,actions,gems,truths,moments, newheard).summarize, shown as "Default", now "One question") asks one open question of at most 25 words instead of summarising. Brainstorm gives two "What if...?" prompts. All eight languages. Projects with a custom Explore prompt keep their prompt and wrapper.Privacy fixes
packages/verify/test/prompt-privacy.integration.test.tscaptures every model call for all seven topics and a revision with a participant who has a name and an email, and asserts neither appears; it also makes the model fail and asserts the logs hold neither the email, the name nor the transcript.packages/conversations/test/reply-cross-pollination.integration.test.tsdoes the same for Explore with cross-pollination off and on.New options
is_get_reply_cross_pollination_enabled(migration 0052, not null, default false), accepted by the project PATCH, read by the assistant's settings, and allowed as a template preset field (for ECHO-1053).Portal behaviour per state (participant)
The flag
ENABLE_PARTICIPANT_EMAIL(server config, default false, documented in the schema) andENABLE_PARTICIPANT_EMAIL = falseinfrontend/src/config.ts. Off: the portal editor hides "Ask for email?" and "Report notifications" unless the project already has them on; the PATCH refuses switching either on with 422project.participant_email_off; the assistant does not see (so cannot propose) them unless already on; setup suggestions never propose them; and they are no longer template preset fields, so neither a template nor create overrides can set them. Duplicating a project copies its existing setting (a host's earlier decision); say if that should change too.Analytics
The portal already autocaptures clicks; no
track()calls and no new person-level tracking were added. Element changes for dashboards:portal-audio-echo-button: text was "ECHO", now "Verify", "Explore" or "ECHO" (both on); it also carriesdata-mode=verify|explore|both.portal-echo-verify-card/portal-echo-explore-card: same test ids, new text (label plus "Check what we captured together" / "Get a question to go deeper").portal-verify-topic-<key>: same ids, new labels and a description line.portal-editor-ask-name-checkbox; it is nowportal-editor-ask-email-checkbox. New:portal-editor-cross-pollination-switch,portal-editor-verify-topic-<key>.Changes to the approved prompt texts (and why)
Prompt comparison pack
bun packages/verify/test/prompt-pack/run.ts --out <dir>renders OLD (templates at origin/main, assembled as the old code did) and NEW payloads for every topic and Explore mode, for the five tables indemos/example-en/fixture.jsonand six new synthetic Dutch tables (dominant voice with a minority view, quiet dissent, a point said once that matters, Dutch and English mixed, a 70-second recording, a working session with actions and owners). Add--runwith Vertex credentials to write the model's answers beside each payload. Model outputs were not generated here (no credentials in this container).i18n
Every new or changed string in eight locales; non-English strings are model-translated and listed in
src/locales/machine-translations.jsonand the error catalog's ledger, except "Kruisbestuiving", which was given.Not tested
Fix round
get_reply_system.nl.jinja(the Explore wrapper) and the ten other Dutch templates that said u/uw (assign_aspect_centroid,generate_aspect_long_summary,generate_aspect_short_summary,generate_conversation_summary,generate_insight_summary,generate_insight_title,generate_view_extras,initialize_view,system_report,translate_transcription). The other languages' templates address the model, never the participant, in their formal forms, so none changed here (German moves to du in the stacked German PR).ENABLE_PARTICIPANT_EMAILoff, duplicating a project keeps its email and notification settings; a blank project, every template and any overrides leave both off (overrides naming either field are a 422).Generated by Claude Code