Skip to content

fix: restore full-suite green — i18n parity (FN-7658) + chat core mock (FN-7675) + verification-followup-dedup (FN-7658)#1965

Merged
gsxdsm merged 3 commits into
mainfrom
fix/full-suite-flaky
Jul 8, 2026
Merged

fix: restore full-suite green — i18n parity (FN-7658) + chat core mock (FN-7675) + verification-followup-dedup (FN-7658)#1965
gsxdsm merged 3 commits into
mainfrom
fix/full-suite-flaky

Conversation

@gsxdsm

@gsxdsm gsxdsm commented Jul 8, 2026

Copy link
Copy Markdown
Collaborator

Summary

Follow-up to #1947. The full-suite on main is still red on 3 surfaces introduced by post-#1947 commits. This PR fixes the two real test failures and the i18n parity gap.

Fixes

  • i18n key parity (FN-7658)settings.scheduling.autoArchiveDuplicateTasks + ...Help were added to en but not the 5 non-en catalogs, breaking the i18n parity gate (parity.test.ts, i18n-gate-coverage.test.ts). Added the 2 keys (empty-string per the untranslated-entry convention) to zh-CN, zh-TW, fr, es, ko in packages/i18n/locales (the single source of truth; dashboard/app/locales is gitignored and synced in CI).
  • chat.test.ts (FN-7675)chat.ts now imports FUSION_RUNTIME_SELF_AWARENESS from @fusion/core (CHAT_SYSTEM_PROMPT embeds it); the hand-written core mock didn't stub it, so the module failed to load. Added a stub (importOriginal intentionally avoided to preserve the fs-cascade block).
  • verification-followup-dedup.test.ts (FN-7658) — the "remains additive with FN-4892 same-agent duplicate intake" test asserts the ARCHIVE path, but FN-7658 made same-agent auto-archiving opt-in (autoArchiveDuplicateTasksEnabled defaults false → flag-in-place in triage). The test now opts into the legacy archive behavior it asserts.

Note on shard-2 engine[2/2] timeout

The full-suite shard 2 times out on @fusion/engine [2/2] (watchdog 900s). Locally [2/2] runs in ~96s and is green (the lone provider-registration.test.ts failure is local-only pi-ai@0.79.9 staleness — the lockfile pins 0.80.3 which exports /compat, so CI resolves it). The verification-followup-dedup failure above is the only real [2/2] defect; this PR fixes it. If the CI timeout persists it's aggregate real-git load, which I'll address separately (not a code bug).

Verification

  • i18n parity + i18n-gate-coverage: 7/7 ✅
  • chat.test.ts: 14/14 ✅
  • verification-followup-dedup: 5/5 ✅
  • engine --shard=2/2 (excluding the local-staleness file): 363 files / 4483 tests ✅ in ~96s

No production behavior change; no changeset needed (i18n catalog + test-only).

Summary by CodeRabbit

  • New Features
    • Added scheduling settings for automatic duplicate-task archiving, including label and help text entries (currently placeholders) across Spanish, French, Korean, Simplified Chinese, and Traditional Chinese.
  • Bug Fixes
    • Updated “awaiting confirmation” merger messaging to better reflect when auto-merge proceeds automatically.
  • Tests
    • Updated reliability interaction tests to explicitly opt into legacy duplicate-task archiving behavior.
    • Adjusted chat-related tests by extending the runtime mock to satisfy a new core import requirement.

@coderabbitai

coderabbitai Bot commented Jul 8, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: 38479012-44ce-4965-8c45-74a0d1092437

📥 Commits

Reviewing files that changed from the base of the PR and between 0bfe7e8 and 5815cd1.

📒 Files selected for processing (1)
  • .changeset/fn-7692-merger-confirmation-copy.md
✅ Files skipped from review due to trivial changes (1)
  • .changeset/fn-7692-merger-confirmation-copy.md

📝 Walkthrough

Walkthrough

This PR updates a test mock and a reliability test, adds new empty localization keys for auto-archiving duplicate tasks in five locales, and revises a changeset summary about merger confirmation copy.

Changes

Test mock and behavior flag updates

Layer / File(s) Summary
Chat test mock export fix
packages/dashboard/src/__tests__/chat.test.ts
Adds FUSION_RUNTIME_SELF_AWARENESS stub to the @fusion/core mock so chat.js loads with the newly required import.
Dedup test archive flag opt-in
packages/engine/src/__tests__/reliability-interactions/verification-followup-dedup.test.ts
Explicitly enables autoArchiveDuplicateTasksEnabled via updateSettings to opt into the legacy archive path, with an explanatory comment.

Auto-archive duplicate tasks locale strings

Layer / File(s) Summary
New locale keys across languages
packages/i18n/locales/es/app.json, packages/i18n/locales/fr/app.json, packages/i18n/locales/ko/app.json, packages/i18n/locales/zh-CN/app.json, packages/i18n/locales/zh-TW/app.json
Adds autoArchiveDuplicateTasks and autoArchiveDuplicateTasksHelp keys under settings.scheduling with empty string values.

Merger confirmation copy update

Layer / File(s) Summary
Changeset summary rewrite
.changeset/fn-7692-merger-confirmation-copy.md
Updates the changeset summary text to clarify the awaiting-confirmation copy when auto-merge proceeds automatically.

Estimated code review effort: 1 (Trivial) | ~5 minutes

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately summarizes the PR as a suite-green fix covering the three main change areas.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch fix/full-suite-flaky

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@greptile-apps

greptile-apps Bot commented Jul 8, 2026

Copy link
Copy Markdown
Contributor

Greptile Summary

This PR restores a green full-suite by fixing three independent test/i18n breakages introduced after #1947, with no production behavior changes.

  • i18n parity: Adds the two new autoArchiveDuplicateTasks / autoArchiveDuplicateTasksHelp keys as empty-string placeholders to all five non-en locales (es, fr, ko, zh-CN, zh-TW), satisfying the parity gate.
  • chat mock: Stubs the new FUSION_RUNTIME_SELF_AWARENESS export in the hand-written @fusion/core mock so chat.js can load without pulling in real fs modules.
  • verification-followup-dedup test: Explicitly opts into autoArchiveDuplicateTasksEnabled: true for the test that asserts the ARCHIVE path, since FN-7658 changed the default to false.

Confidence Score: 5/5

All changes are test-only or i18n placeholder additions with no runtime behavior change; safe to merge.

Every touched file is either a test fixture, an i18n locale JSON with empty-string placeholders, or a changeset description tweak. The test fixes accurately reflect the real behavioral change (opt-in flag default) and the mock extension is intentionally minimal to avoid the fs cascade the mock exists to prevent.

No files require special attention.

Important Files Changed

Filename Overview
packages/dashboard/src/tests/chat.test.ts Adds FUSION_RUNTIME_SELF_AWARENESS: "" stub to the hand-written @fusion/core mock so chat.js can load without triggering the real fs cascade.
packages/engine/src/tests/reliability-interactions/verification-followup-dedup.test.ts Opts the ARCHIVE-path assertion into autoArchiveDuplicateTasksEnabled=true, aligning the test with FN-7658's new opt-in default.
packages/i18n/locales/es/app.json Adds autoArchiveDuplicateTasks and autoArchiveDuplicateTasksHelp as empty-string placeholders per untranslated-entry convention.
packages/i18n/locales/fr/app.json Same two empty-string placeholder keys added as in es/app.json.
packages/i18n/locales/ko/app.json Same two empty-string placeholder keys added as in es/app.json.
packages/i18n/locales/zh-CN/app.json Same two empty-string placeholder keys added as in es/app.json.
packages/i18n/locales/zh-TW/app.json Same two empty-string placeholder keys added as in es/app.json.
.changeset/fn-7692-merger-confirmation-copy.md Minor wording refinement to the merger awaiting-confirmation changeset description; no behavioral change.

Flowchart

%%{init: {'theme': 'neutral'}}%%
flowchart TD
    A[Full-suite red on 3 surfaces] --> B[i18n parity gate]
    A --> C[chat.test.ts load failure]
    A --> D[verification-followup-dedup test]

    B --> B1[Add 2 empty-string keys to es/fr/ko/zh-CN/zh-TW]
    B1 --> B2[parity + i18n-gate-coverage green]

    C --> C1[Stub FUSION_RUNTIME_SELF_AWARENESS in core mock]
    C1 --> C2[chat.test.ts 14/14 green]

    D --> D1[Set autoArchiveDuplicateTasksEnabled=true in fixture]
    D1 --> D2[verification-followup-dedup 5/5 green]
Loading
%%{init: {'theme': 'base', 'themeVariables': {"darkMode": true, "background": "#0d1117", "primaryColor": "#21262d", "primaryTextColor": "#e6edf3", "primaryBorderColor": "#8b949e", "lineColor": "#8b949e", "textColor": "#e6edf3", "edgeLabelBackground": "#161b22", "actorBkg": "#21262d", "actorBorder": "#8b949e", "actorTextColor": "#e6edf3", "actorLineColor": "#8b949e", "signalColor": "#8b949e", "signalTextColor": "#e6edf3", "noteBkgColor": "#373320", "noteBorderColor": "#d4a72c", "noteTextColor": "#f0e6c0", "labelBoxBkgColor": "#21262d", "labelBoxBorderColor": "#8b949e", "labelTextColor": "#e6edf3", "loopTextColor": "#e6edf3", "activationBkgColor": "#30363d", "activationBorderColor": "#8b949e"}}}%%
flowchart TD
    A[Full-suite red on 3 surfaces] --> B[i18n parity gate]
    A --> C[chat.test.ts load failure]
    A --> D[verification-followup-dedup test]

    B --> B1[Add 2 empty-string keys to es/fr/ko/zh-CN/zh-TW]
    B1 --> B2[parity + i18n-gate-coverage green]

    C --> C1[Stub FUSION_RUNTIME_SELF_AWARENESS in core mock]
    C1 --> C2[chat.test.ts 14/14 green]

    D --> D1[Set autoArchiveDuplicateTasksEnabled=true in fixture]
    D1 --> D2[verification-followup-dedup 5/5 green]
Loading

Reviews (3): Last reviewed commit: "fix: shorten FN-7692 changeset summary u..." | Re-trigger Greptile

@gsxdsm gsxdsm force-pushed the fix/full-suite-flaky branch from ec1f73d to 0bfe7e8 Compare July 8, 2026 22:18
@gsxdsm gsxdsm merged commit f617dd7 into main Jul 8, 2026
7 checks passed
@gsxdsm gsxdsm deleted the fix/full-suite-flaky branch July 8, 2026 22:37
gsxdsm added a commit that referenced this pull request Jul 9, 2026
…tor-list regex (round 3) (#1969)

## Summary

Round 3 of full-suite greening on `main`. The post-#1965 full-suite
still failed on 6 UI/CSS test files in shards 3+4 (pre-existing
test-drift from recent UI commits, surfaced after the chat/i18n fixes
landed). All fixed.

## Fixes (all test-only; no production change)
- **TaskCard badge/footer tests** (`TaskCard.badge-height`,
`TaskCard.badge-wrap`, `TaskCard.footer-wrap`) — `RuntimeFallbackBadge`
now calls the dashboard `useToast()` hook, but these suites render
`<TaskCard>` without a `ToastProvider`. Added the `useToast` mock (same
pattern as the sibling `TaskCard.test.tsx` and `PlanningModeModal`
suites).
- **`TaskDetailModal.github-tracking-header`** — the github/gitlab
tracking header CSS rules were consolidated into a shared selector list
(`.detail-github-tracking-section .detail-source-header,
.detail-gitlab-tracking-section .detail-source-header {…}`), so the
test's `\s*\{` (selector immediately followed by `{`) no longer matched.
Updated the 3 CSS regexes to `[^{]*\{` to tolerate the selector list
while still pinning the layout contract.
- **`GraphTaskNode` tests** (`fusion-plugin-dependency-graph`) — same
`useToast` issue: `GraphTaskNode` renders the REAL `TaskCard` (to verify
prop pass-through, unlike sibling suites that mock it), hitting
`RuntimeFallbackBadge`→`useToast`. Added the
`@fusion/dashboard/app/hooks/useToast` mock to both files.

## Note on shard-2 engine[2/2]
Shard 2 still times out (watchdog 900s) on `@fusion/engine [2/2]`. This
is the engine-reliability real-git tier running single-threaded under
4-shard concurrent load — locally `[2/2]` is ~96s and green. It's
slow-test-debt / CI-load, not a code bug in these commits; I'm
investigating the specific slow/hanging file separately (the silent CI
reporter hides it).

## Verification
- TaskCard badge/footer: 14/14 ✅
- TaskDetailModal.github-tracking-header: 1/1 ✅
- GraphTaskNode + GraphTaskNode.drag: 29/29 ✅

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

* **Tests**
* Stabilized several dashboard and dependency-graph test suites by
mocking toast behavior to prevent provider-related failures.
  * Improved robustness of task card and graph node interaction tests.
* Updated task detail modal CSS/layout assertions to better align with
current responsive styling and selector patterns.
* Reduced test flakiness for step-session retry timing by using
controlled fake-timer advancement.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant