Skip to content

Commit 770622e

Browse files
devlintLaurent Guitton
andauthored
docs(website): sync content with the v3.4.0 conflict engine (#119)
The site described the engine as it was several releases ago. Audited every engine-facing page against the real registry and fixed: - Remove the phantom `section_only_change` pattern — it was listed as an auto-applied pattern on the landing page and conflict-engine page but has never existed in packages/core. Replaced with real patterns; the grids now show the true 12-entry registry with accurate auto/proposed/opt-in flags. - Correct the hardcoded "10 patterns" count everywhere (landing 5 locales, conflict-engine, features, llms.txt, 5 compare pages, 1 blog post) to "8 deterministic patterns" (the auto-applied deterministic count) — the marketing number, distinct from the full registry. - Normalize the 95% claim to "trivial conflicts" where it read "of merge conflicts" (index.md, conflict-engine.md); keep the figure. - Document the v3.4.0 capabilities in guide/conflict-resolution.md: token_level_merge, refactoring_aware_merge, llm_proposed, the base-recovery pipeline step, and value_only_change's semver/timestamp-max resolution. - core-api.md: fix "8 types", add the missing exports (summarizeTiers, resolveAsync, TokenMergeTrace, ResolutionTier, TierSummary, …). - index.md JSON-LD softwareVersion 3.2.0 → 3.4.0, and add that field to bump-version.sh so it can't drift again. - Refresh the hero announce + "New in vX" badge to v3.4 (5 locales). Website build passes. (Left for a separate copy pass: the "What's New" tab feature cards still show v2.x features.) disabled Co-authored-by: Laurent Guitton <laurent.guitton@dendreo.com>
1 parent 4b4c523 commit 770622e

15 files changed

Lines changed: 142 additions & 76 deletions

scripts/bump-version.sh

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -109,6 +109,13 @@ bump website/public/.well-known/mcp/server-card.json \
109109
bump packages/mcp/src/server.ts \
110110
"s/version: \"${OLD}\"/version: \"${NEW}\"/"
111111

112+
# ── website/index.md (JSON-LD softwareVersion) ───────────────────────────────
113+
# Generic semver pattern: this field historically drifted (was pinned to an
114+
# older release than the rest) because it wasn't in the bump set — the generic
115+
# match fixes it regardless of what it currently holds.
116+
bump website/index.md \
117+
"s/\"softwareVersion\": \"[0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\"/\"softwareVersion\": \"${NEW}\"/"
118+
112119
# ── README.md (badge URL) ────────────────────────────────────────────────────
113120
bump README.md \
114121
"s/version-${OLD}-/version-${NEW}-/"

website/.vitepress/theme/ConflictEnginePage.vue

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,19 @@
11
<script setup lang="ts">
2+
// 8 deterministic patterns auto-apply (auto: true). token_level_merge proposes
3+
// a merge you confirm; refactoring_aware_merge and llm_proposed are opt-in;
4+
// complex is the fallback that always hands the hunk back with its trace.
25
const PATTERNS = [
36
{ name: 'same_change', conf: 'certain', auto: true, desc: 'Both branches made the exact same edit.' },
47
{ name: 'one_side_change', conf: 'certain', auto: true, desc: 'Only one branch touched this block.' },
8+
{ name: 'delete_no_change', conf: 'certain', auto: true, desc: 'One side deleted the block, the other left it untouched.' },
59
{ name: 'non_overlapping', conf: 'high', auto: true, desc: 'Additions at different positions in the block.' },
610
{ name: 'whitespace_only', conf: 'high', auto: true, desc: 'Same logic, different indentation or spacing.' },
711
{ name: 'reorder_only', conf: 'high', auto: true, desc: 'Same lines, different order.' },
812
{ name: 'insertion_at_boundary', conf: 'high', auto: true, desc: 'New lines added at the edge of a hunk.' },
9-
{ name: 'value_only_change', conf: 'high', auto: true, desc: 'A scalar value (JSON, config) updated on one side.' },
10-
{ name: 'section_only_change', conf: 'high', auto: true, desc: 'A document section edited on one side only.' },
11-
{ name: 'llm_proposed', conf: 'medium', auto: true, desc: 'LLM-proposed resolution above the confidence threshold.' },
13+
{ name: 'value_only_change', conf: 'high', auto: true, desc: 'A scalar value (version, timestamp, hash) updated on both sides — keeps the higher semver / later timestamp.' },
14+
{ name: 'token_level_merge', conf: 'medium', auto: false, desc: 'Both sides changed disjoint tokens on the same line — proposes a merge you confirm, never auto-applied.' },
15+
{ name: 'refactoring_aware_merge', conf: 'high', auto: false, desc: 'Rename/move detected and replayed across the conflict (opt-in).' },
16+
{ name: 'llm_proposed', conf: 'medium', auto: false, desc: 'AI-proposed resolution, validated post-merge (opt-in).' },
1217
{ name: 'complex', conf: 'low', auto: false, desc: 'Overlapping edits — surfaced with full classification trace.' },
1318
] as const
1419
</script>
@@ -19,7 +24,7 @@ const PATTERNS = [
1924
<div class="ph-inner">
2025
<span class="ph-badge">Conflict engine</span>
2126
<h1 class="ph-h1">Deterministic conflict resolution. <span class="grad">No guessing.</span></h1>
22-
<p class="ph-sub">Every hunk runs through a classifier of 10 deterministic patterns, each with its own confidence profile and automatic resolver. The trivial 95% is resolved without you. The rest is surfaced with a full decision trace — never a black box.</p>
27+
<p class="ph-sub">Every hunk runs through a classifier of pattern recognizers — 8 of them resolve deterministically on their own, each with its own confidence profile. The trivial 95% of conflicts is resolved without you. The rest is surfaced with a full decision trace — never a black box.</p>
2328
<div class="ph-ctas">
2429
<a href="/guide/conflict-resolution" class="ph-btn ph-btn--primary">Read the deep dive</a>
2530
<a href="/" class="ph-btn">← Back to home</a>
@@ -56,8 +61,8 @@ const PATTERNS = [
5661

5762
<section class="ph-section ph-section--alt">
5863
<div class="ph-inner">
59-
<h2 class="ph-h2">10 patterns. Deterministic. Auditable.</h2>
60-
<p class="ph-secsub">Each pattern has its own confidence profile and automatic resolver. The classifier never guesses — when it can't be certain, it hands the hunk back to you with the trace.</p>
64+
<h2 class="ph-h2">8 auto-applied patterns. Deterministic. Auditable.</h2>
65+
<p class="ph-secsub">Eight deterministic patterns resolve on their own; the rest below either propose a merge you confirm, are opt-in, or hand the hunk back with its trace. The classifier never guesses — when it can't be certain, it stops.</p>
6166
<div class="pat-grid">
6267
<div v-for="p in PATTERNS" :key="p.name" class="pat" :class="{ 'pat--dim': !p.auto }">
6368
<div class="pat-head">

website/.vitepress/theme/FeaturesPage.vue

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ const GROUPS = [
33
{
44
title: 'Core Git',
55
items: [
6-
['Smart resolution', '10 resolution patterns with a pattern registry and confidence scoring. 95%+ of trivial conflicts resolved without intervention.'],
6+
['Smart resolution', '8 deterministic patterns with a pattern registry and confidence scoring. 95%+ of trivial conflicts resolved without intervention.'],
77
['Integrated Pull Requests', 'Review GitHub, GitLab, Bitbucket and Azure DevOps PRs directly in the app — comments, reviews, CI status, conflict preview.'],
88
['Visual diff', 'Unified diff viewer with syntax highlighting, hunk-level staging, and merge preview.'],
99
['Folder tree diff', 'Flat ↔ tree toggle in the file list with per-folder aggregates, click-to-filter and a resizable sidebar.'],

0 commit comments

Comments
 (0)