Release 1.4.1 with updates to Sift page and French localization#5
Merged
Conversation
Coordinated 1.4.0 -> 1.4.1 cut. Verified by the superproject pin-coherence gate (22 packages uniform; conanfile / packages.yml / matrix / web / CR_PIN CI-vendoring pins all agree) and the insight-playground integration gate (78/78 green at 1.4.1, real diff_logs resolution). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
The 'hot key / throttling' preset claimed a per-account concentration reveal ('one account is hammering one key') the engine does not surface — it ranks a new template by its SHARE of the run, not per-value concentration (a future field-distribution beat). The demo-bar audit flagged it as the weakest preset: partly grep-able and over-claiming.
Reframe to what actually fires: label -> 'Throttling takes over', description/comment -> a new template now owns ~a third of the run, ranked by dominance; drop the false concentration + 'grep can't see' claims. Fixture unchanged (id hot-key stable); no logic, no i18n, no test touched.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Replace the stale single-section /sift (rendered only InsightDiffShowcase → the old "Your CI went red" red-build hero) with the governed 6-section page per web_copy.md § "Page: Sift": green-vs-green silent-regression hero, PR-comment showcase, un-grep-able value table, free-forever→/tiers, determinism→/how-we-build, install funnel. New `sift` i18n namespace; fr.ts carries EN strings verbatim as a placeholder (Eqya owns the FR pass). Engine-output mocks hardcoded language-neutral. Removed the now-orphaned InsightDiffShowcase + diffShowcase keys (sole consumer was the old /sift). tsc + eslint + vitest 114/114 + production build green; exposure gated to v1 launch. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…tency Bundles the founder's ChatGPT recheck (hero / portfolio / roadmap / maker / footer) with Eqya's QA on the new sift block: « gate » standardized to feminine across the site (matching the validated howWeBuild) with adjective agreement, « Pass/échec » -> « Réussite/échec », and the lone vision-lens « précision d'abord » -> « la précision avant tout ». Engine output labels (Disappeared / Frequency shift / Recovery) kept English by design. Checkpoint — remaining pages still to be reviewed (founder + ChatGPT). Rides 1.4.1. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Applies the founder's ChatGPT review of the Sift page: keep dev/product terms English (Pass/fail, advisory, the engine label 'Recovery — green: "your fix worked"'), 'bossez', 'sont passés', hero CTAs imperative (Ajoutez/Essayez), footer 'là où il faut'. Two Eqya synthesis calls: title 'disent le contraire' (keeps the say-otherwise opposition the founder flagged), paywall 'au compteur. Jamais.' (keeps meter != limit + the punch). Founder-ruled consistency, site-wide: motif -> pattern (3), 'au bit près' -> 'bit pour bit' (4, incl. howWeBuild/howWeCompare), hard gate -> 'bloquante'. PR-comment mock stays English by design (the real comment is EN-only). Checkpoint — logcraft page review next. Rides 1.4.1. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Applies the founder's review: keep dev terms English per the locked register (On ne ship pas, knobs du monde réel, Core C++20, fluent, Lancez Run, Envoyez en stream), Tester (not stresser), service fictif, on-call 'apprend en se faisant pager', heroSubtitle 'simulateur déterministe …', 'alimenter un moteur', step.1 'et c'est terminé'. Site-wide consistency: astreinte -> on-call (4). Kept 'pas de carte bleue' (= no credit card — the no-payment-to-try signal; 'setup' would be a contresens), founder-confirmed. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Founder review: 'cause racine' -> 'root cause' (×2, dev term kept English per the locked register); 'seed' standardized feminine ('une/la seed', 'la même seed', 'de la seed' — ties to 'la graine'). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
InsightDiff.tsx hardcoded its English chrome; wire it through useTranslation via a
new `diff:` namespace. fr.ts gets the keys with EN strings verbatim as placeholders
(Eqya's FR pass comes after — not machine-translated).
- Keyed: hero (eyebrow/title/subtitle), the preset picker intro + per-preset
label/tooltip, baseline/changed input labels + counters, compare/swap buttons,
the trust line, result swap-sides/new-comparison, log-pane titles, section
header, clear-pinned, the interaction hint, empty-result + suppressed sentences,
the "Want this in CI?" callout, error fallbacks, and the severity/kind display
labels (the UI's labels for the engine enums).
- Left English by design (engine emits English regardless of locale): the
diffPresets.ts log fixtures, the engine report rows (change.summary/evidence),
and the result stat line ("N changes, M structurally significant · stability ·
lines") — same convention as the Sift-page mocks.
- diffPresets.ts is now fixtures-only (id + baseline + changed); its picker label
+ tooltip moved to t.diff.presets[id] (keyed by id). Header comment updated.
tsc + eslint + vitest 114/114 + production build green. Held to v1 launch.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
/diff (the CRITICAL gap): full French for the new diff: namespace — titles, buttons, hints, quota/error messages, preset labels + tooltips. Register held: CLI / Action / CI / grep / run / push / build / handler / flag / WARN / p99 kept English; severity + kind badges localized (CRITIQUE / SUSPECT / NOTABLE / FAIBLE / RÉTABLI ; erreur apparue / disparu / décalage / branchage / …). Mirrors committed en.ts diff: (8f43591); tsc green. sift comment.body: 'au besoin', 'épinglé à votre PR, mis à jour à chaque push, déterministe', and the de-literalized 'Même avec une coche verte rassurante, Sift voit le problème là où tout semble validé :'. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
… (founder) Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…défauts->valeurs par défaut (calque fix) Proactive de-calque of the un-reviewed surfaces (logcraft concepts, lab, auth/tiers/cookiePrefs): register + faux-ami sweeps came back clean; only 3 real fixes — 2x 'records'->'enregistrements' and the registry faux-ami 'défauts sensés' (=flaws) -> 'valeurs par défaut sensées' (=defaults). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
… at the core, web at the edge.' (EN+FR) Drops the 'indie engineering shop' / 'where it should' glib filler for a conviction-led brand signature (no-tech-debt ethos), keeping the C++-core/web-edge rigor signal. FR: « Indépendant, et sans compromis. Le C++ au cœur, le web en surface. » Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…wnstream' line (founder) « LogCraft est l'entrée qui manque à tout votre aval » -> « LogCraft génère les signaux réalistes qui manquent à tous les outils qui suivent » — natural FR; EN master unchanged (reads fine). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
… + 2 reframes FR-only: « cascade » reads as waterfall/stunt in French, so every DISPLAYED standalone « cascade(s) » -> « panne(s) en cascade » (~17: marketing prose, titles, the Lab button + its 'lancez/cliquez' references, tips, onboarding). LEFT on purpose (not ambiguous / would break refs): the auto_cascade YAML key, the cascades:/cascadeTip i18n keys, the Auto-cascade(s) feature name. Reframes (founder): problem.points 'Sans bac à sable… Il y a mieux.' -> 'Sans sandbox, les vraies pannes deviennent votre seul terrain d'entraînement. Il existe une meilleure solution.'; 'enregistrements parasites' -> 'record parasite'. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…wide (founder) Aligns with the locked keep-dev-terms-English register (run/diff/pattern/seed/gate/on-call/sandbox…); 'enregistrement' read strange. 10 spots reverted (lab tooltips, drain, concepts, useCases, features). The verb 'le moteur enregistre' (logs/records) is kept — only the noun flips. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…modélise' FR: 'apprend en se faisant pager' -> 'apprend au rythme des alertes en pleine nuit'; deepDiveSubtitle 'stresser tout l'aval' -> 'stresser tout le reste de la chaîne' (kept the 'se place avant votre stack' positioning clause); features 'modélise la forme du trafic… comme la prod' -> 'reproduit le comportement du trafic… comme en production'. EN: on-call title aligned 'by getting paged' -> 'by getting paged at 3 a.m.' (kept 'paged' — idiomatic EN; the franglais issue was FR-only). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…inute/database FR: features Lab item 'Ouvrez l'URL… cliquez Run' -> 'Ouvrez le Lab… Run'; 'un simple portable' -> 'un simple ordi portable' (portable alone = cellphone in FR); conceptsTitle 'fluent' -> 'opérationnel' (revert); incidents example 'à la minute 5, la base' -> 'À la 5e minute, la database'. EN: features Lab item aligned 'Open the URL' -> 'Open the Lab' (keeps 'hit Run'). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…e-wide, EN+FR (founder)
Hero badge + tagline + portfolio subtitle, both languages. The noise->signal dichotomy is punchier, iconic, and on-thesis (it's what the MetaLog distils) vs the abstract 'comprehension'. ('signal exploitable' available if more explicitness wanted on a given surface.)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…m (EN+FR)
Hero EN now mirrors the founder's tighter FR: 'compresses your log noise into deterministic, relevance-ranked structure — precision, not gigabytes of unusable logs' (on-prem stays in the trust badge, CTA is the button, LLM angle on /vision). Roadmap explain-demo item reframed EN+FR to the benefit + the anti-hallucination angle ('no hallucinated interpretation' / 'sans aucune interprétation hallucinée'); FR kept infinitive to match the other roadmap items.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…l intro (founder)
Title (+ footer link + /vision CTA) 'Comment on se compare' -> 'Ce qui nous différencie' (flat literal -> natural). Subtitle -> 'on ne fait pas moins cher. On fait autre chose.' (option A). Intro fully rewritten away from the literal EN translation: 'soyons honnêtes', 'fausse la comparaison' (not 'rend étrange'), 'rivalise sur' (not 'se bat sur'), punchy 'Pas un entrepôt moins cher : une autre machine'. EN side unchanged ('How we compare' reads fine in English).
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…ue sweep, 4 reframes FR howWeCompare: 'machine' metaphor (badge/intro/vs-Datadog) -> 'une autre mécanique' (literal 'votre machine'=your computer kept untouched); 'leur propre réponse' -> 'leur réponse'; 'Vous achetez un objet différent' -> 'une garantie différente'; 'On part d'où part Honeycomb' -> 'On part du même constat qu'Honeycomb'; 'Un pari vous demande' -> 'Leur pari…'. Site-wide FR: 'bit pour bit' -> 'bit-identique' (5 spots, smoother in FR; matches the existing 'Bit-identique'). EN: only 'One bet'->'Their bet' aligned; EN keeps 'machine' (metaphor works in English) + 'object' + 'bit for bit'. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
The 'different machine' metaphor spine — 'conception' (architectural design, no aesthetic ambiguity unlike 'design') across badge/intro/vs-Datadog. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…under-approved)
Consistency: rateTip 'Enregistrements'->'Records' (record-revert case-miss), 'colonne synthétique'->'colonne vertébrale synthétique', 'fictif'->'factice', 'seedé'->'avec seed' (×4). FR-awkward metaphors: 'lentille'->'vue' (×4), literal 'votre machine'->'votre infra' (×4, cross-machine 'd'une machine à l'autre' kept), 'le fatal solitaire'->'l'erreur fatale isolée' (×2). Calques: 'partir à la verticale'->'s'envoler', 'lossy/lossiness'->'perte/perd de l'information', 're-dérivable/se re-dérive'->'traçable/remonte' (×4), 'trie le grain'->'sépare le bon grain de l'ivraie', cookies 'complété'->'terminé'. EN untouched. ('Run'/'Run Demo' button refs left — founder undecided.)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…mo key to EN
Founder: 'Run Demo' reads better in English. The FR marketing copy already uses English 'Run Demo'/'Run' (logcraft ctaSubtitle/ctaTitle). lab.runDemo is an unused key ('Lancer la démo' FR vs 'Run Demo' EN) — aligned FR->EN so it stays English if ever wired. Real launch button is launchAndStart ('Lancer le scénario'), unchanged.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…al d'arrêt', drain title, live Remove the stale 'FR PLACEHOLDER / awaiting Eqya' comment above the (long-translated) sift block; vision.hub canary 'signal de kill' -> 'signal d'arrêt' (matches portfolio.canary); drain.title 'Sink Démo LogCraft' -> 'Sink de démo LogCraft'; lab.live 'En direct' -> 'Live' (consistent with the kept 'live' register). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…nal pass)
free.title 'On ne plaisante pas' (read as confrontational in FR) -> 'Sans conditions.'; free.body terse '…de vos builds, non.' -> explicit '…de vos builds ne l'est pas.'. EN ('We mean it' / 'is not') unchanged.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…our conditionner un déploiement' (founder) Replaces the flat 'Un fait sur lequel vous pouvez poser une gate'; keeps 'déterministe' (the moat) + 'signal' (hero) + the deploy-gating framing. EN 'A fact you can gate on.' unchanged. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…under, EN+FR) Drop the 'alors soyons honnêtes' / 'let's do it honestly' clause; 'C'est légitime.' / 'Fair.' is enough. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
✅ Deploy Preview for elaborate-malasada-e00aa3 ready!
To edit notification comments on pull requests, go to your Netlify project configuration. |
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.
No description provided.