Skip to content

fix: repair three cross-merge breakages redding main's CI - #6517

Merged
NicholasRBowers merged 1 commit into
mainfrom
fix/drivepage-unused-eslint-disable
Aug 28, 2026
Merged

fix: repair three cross-merge breakages redding main's CI#6517
NicholasRBowers merged 1 commit into
mainfrom
fix/drivepage-unused-eslint-disable

Conversation

@CrysisDeu

@CrysisDeu CrysisDeu commented Aug 28, 2026

Copy link
Copy Markdown
Collaborator

Problem / Motivation

main is red on every open PR's merge ref (and on its own CI) from three independent cross-merge collisions:

  1. Frontend Lint & Type Check: the whole-file jsx-a11y/control-has-associated-label eslint-disable at the top of website/src/apps/aws-control/DrivePage.tsx (added in feat(aws-control): the cloud drive becomes a page #6446) no longer suppresses anything, so eslint counts the directive itself as a warning (Unused eslint-disable directive) — putting src/ at 665 warnings against the job's hard ceiling of 664 (npx eslint src/ --max-warnings 664).

  2. Backend Tests (3.10, 3) + Backend Tests (Windows) (3): test_session_storage.py's TestCotenantRefusalTextIsForgeSafe monkeypatches cotenant_sids with zero-arg lambdas (added in fix: repr co-tenant names in reclaim refusal text (#6430) #6444), but fix(session-storage): give the co-tenant lookup the scan cache's opt-in caching #6313 (merged after) gave cotenant_sids a keyword-only cached parameter and move_to_trash now calls cotenant_sids(cached=...)TypeError: ... got an unexpected keyword argument 'cached'. fix(session-storage): give the co-tenant lookup the scan cache's opt-in caching #6313 updated the two named test doubles in the same file (claimed_late, unreadable_late) but missed these two lambdas.

  3. Backend Tests (3.10, 2): test_dashboard_chat.py's new test_slot_create_inherits_nearest_folder_project (added in fix(dashboard): inherit folder project when creating sessions #6465) builds its cfg as a bare MagicMock; the slot-create handler stamps cfg.default_agent (a truthy MagicMock) as the slot's agent on an agent-less create, and the coalesced slots broadcast dies in json.dumps (Object of type MagicMock is not JSON serializable) → 500. Pinned default_agent to a string like the sibling cfg mocks in the same file. (Reproduced on pristine main tip 5c925e4e3 — the commit that added it.)

Why it matters

Every open PR currently inherits both reds regardless of its own diff. The lint gate's own comment says to ratchet the ceiling down, never up — so the correct fix is removing the dead directive, not raising the number.

What changed (motivation → approach → change)

  • Deleted the unused eslint-disable block in DrivePage.tsx (8 comment lines). The suppression is genuinely dead: the file lints at zero problems without it, and npx eslint src/ returns to exactly 664.
  • Fixed the two stale lambdas to accept the keyword (lambda *, cached=False: ...), matching the signature fix(session-storage): give the co-tenant lookup the scan cache's opt-in caching #6313 already gave the named doubles in the same file.

Tests

Full test/test_session_storage.py: 174 passed (was 1 failing on both affected shards). The frontend-lint CI job is itself the regression test for the eslint half.

Manual verification

npx eslint src/apps/aws-control/DrivePage.tsx → 0 problems; npx eslint src/ --max-warnings 664 → exit 0 at 664. isort/flake8/black clean on the touched test file.

Screenshots / video

N/A — no user-visible change (comment deletion + test-double signature fix).

no linked issue: main-CI breakage discovered while driving PR #6513; filed directly to unblock all open PRs.

@CrysisDeu
CrysisDeu requested a review from a team August 28, 2026 09:41
@CrysisDeu
CrysisDeu requested a review from a team as a code owner August 28, 2026 09:41
@github-actions github-actions Bot added the readiness: checking Automated validation is still running label Aug 28, 2026
@github-actions

github-actions Bot commented Aug 28, 2026

Copy link
Copy Markdown
Contributor

UX Review (Fable 5) — ✅ PASS

UX-level review of 976860831a46fc7ff2513b027789c6fbde640321 — updated in place on each push. A BLOCK verdict blocks PR readiness; PASS/CONCERNS are advisory.

The diff contains only backend test fixes and the removal of a lint-suppression comment — no user-facing strings, components, rendered states, or behavior change anywhere in this PR.

UX-Verdict: PASS

No user-visible surface changes: two test-only fixes plus a deleted eslint comment leave every rendered pixel and string untouched.

[UX-REVIEWED] 9768608

@github-actions

github-actions Bot commented Aug 28, 2026

Copy link
Copy Markdown
Contributor

GPT 5.6 Review — ✅ no blocking findings

GPT 5.6 completed its review of 976860831a46fc7ff2513b027789c6fbde640321 and found no blocking issues.

This comment is updated in place on each push.

Review details

No findings.
[GPT-REVIEWED] 9768608

False positive or not applicable? A repository writer can comment:
/ai-review override gpt 976860831a46fc7ff2513b027789c6fbde640321: <one-sentence reason>

@github-actions

github-actions Bot commented Aug 28, 2026

Copy link
Copy Markdown
Contributor

Opus 4.8 Review — ✅ no blocking findings

Reviewed 976860831a46fc7ff2513b027789c6fbde640321 — this comment is updated in place on each push.

Review details

No findings.

[OPUS-REVIEWED] 9768608

Verdict parsed from the review's SHA-scoped output markers for commit 976860831a46fc7ff2513b027789c6fbde640321.

False positive or not applicable? A repository writer can comment:
/ai-review override fable 976860831a46fc7ff2513b027789c6fbde640321: <one-sentence reason>

@github-actions

github-actions Bot commented Aug 28, 2026

Copy link
Copy Markdown
Contributor

Design Review (Fable 5) — ✅ PASS

Design-level review of 976860831a46fc7ff2513b027789c6fbde640321 — updated in place on each push. A BLOCK verdict blocks PR readiness; PASS/CONCERNS are advisory.

Design-Verdict: PASS

Three real, independently verified main-breaking regressions, each fixed at its root (dead directive removed, doubles matched to the real signature) rather than papered over.

Notably, the lint fix removes the dead suppression instead of raising the 664 ceiling — the right call given the ratchet-down convention — and the cotenant_sids doubles now match the actual keyword-only signature (session_storage.py:836), so the fix tracks the source of truth rather than the old test shape.

[DESIGN-REVIEWED] 9768608

@github-actions

github-actions Bot commented Aug 28, 2026

Copy link
Copy Markdown
Contributor

First Principles Review (Fable 5) — ✅ PASS

Premise-level review of 976860831a46fc7ff2513b027789c6fbde640321 — why this exists and whether the shipped surface is the smallest honest version. Updated in place on each push. A BLOCK verdict blocks PR readiness; PASS/CONCERNS are advisory.

All claims verified against the repo. Emitting the review.

First-Principles-Verdict: PASS

A pure CI unwedge: one deletion and two test-double corrections, each traced to its named breaking commit, with zero riders and zero unfixed siblings.

What this change ships

Intent: turn main's CI green again by fixing three independent cross-merge collisions — a FIX.

  1. Dead eslint-disable comment removed from the Drive page; lint count back under the 664 ceiling — justified (itself a subtraction; the ceiling is a measured constraint).
  2. Two cotenant_sids test lambdas now accept the real cached keyword — justified; grepped every monkeypatch.setattr(..., "cotenant_sids", ...) site (5 total): the 3 others already accept it, so 0 unfixed siblings remain.
  3. Folder-slot-create test pins default_agent = "" so the handler (chat_handlers.py:1993 stamps cfg.default_agent or "") can't serialize a MagicMock — justified; matches the one sibling cfg mock that already pins it (test_dashboard_chat.py:6936).

Every item is declared in the description. Only one of the two lambda tests was actually red (reclaim_block_reason calls cotenant_sids() bare, so its zero-arg lambda still worked), but the second lambda is the same root cause — signature drift in a hand-rolled double — so fixing both is the general fix at cause level, not a rider: its zero option leaves a latent TypeError armed for the next caller that passes cached=. No new surface, no config, no public symbol; the diff's only permanent artifact is an 11-line explanatory comment in a test, which states a non-obvious constraint and costs nothing.

[FIRST-PRINCIPLES-REVIEWED] 9768608

@CrysisDeu
CrysisDeu force-pushed the fix/drivepage-unused-eslint-disable branch from 782004a to 2424dda Compare August 28, 2026 09:51
@CrysisDeu CrysisDeu changed the title fix: drop an unused eslint-disable that breaches the warning ceiling fix: repair two cross-merge breakages redding main's CI Aug 28, 2026
@github-actions github-actions Bot added readiness: passed Eligible automated validation passed for the current revision and removed readiness: checking Automated validation is still running labels Aug 28, 2026
@NicholasRBowers
NicholasRBowers enabled auto-merge (squash) August 28, 2026 10:23

@NicholasRBowers NicholasRBowers left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Tier 1 auto-approve: fix (2 files). Criteria: no conflict, no requested changes, security path denylist clean, design-doc gate clean, SAST annotations clean, security checklist all-NO, AI reviewers green. Category: cross-merge CI repair with clear root cause -- test monkeypatch updated for the new cotenant_sids cached kwarg, plus removal of a stale eslint-disable comment.

@CrysisDeu CrysisDeu added the no-screenshots PR has no visual delta; screenshot gate exempt label Aug 28, 2026
Main is red on every PR's merge ref (and its own CI) from three independent cross-merge collisions:

1. Frontend Lint & Type Check: the whole-file jsx-a11y/control-has-associated-label eslint-disable in website/src/apps/aws-control/DrivePage.tsx (added in #6446) no longer suppresses anything, so eslint counts the directive itself, putting src/ at 665 warnings against the hard ceiling of 664. Deleting the dead directive re-introduces nothing and returns the tree to exactly 664.

2. Backend Tests (3.10, 3) + (Windows) (3): test_session_storage.py's TestCotenantRefusalTextIsForgeSafe monkeypatches cotenant_sids with zero-arg lambdas (added in #6444), but #6313 (merged after) gave cotenant_sids a keyword-only 'cached' parameter — TypeError. Fixed both lambdas to accept the keyword, matching the named doubles #6313 already updated in the same file.

3. Backend Tests (3.10, 2): test_dashboard_chat.py's new test_slot_create_inherits_nearest_folder_project (added in #6465) builds its cfg as a bare MagicMock; the handler stamps cfg.default_agent (a truthy MagicMock) as the slot's agent on an agent-less create, and the coalesced slots broadcast then dies in json.dumps ('Object of type MagicMock is not JSON serializable'), 500ing the create. Pinned default_agent to a string like the sibling cfg mocks in the same file.

Verified on this branch (rebased onto 5c925e4): TestFolderCRUD 50 passed, test_session_storage.py 174 passed, npx eslint src/ back at 664; isort/flake8/black clean on touched files.
@CrysisDeu
CrysisDeu force-pushed the fix/drivepage-unused-eslint-disable branch from 2424dda to 9768608 Compare August 28, 2026 10:42
@github-actions github-actions Bot added readiness: checking Automated validation is still running and removed readiness: passed Eligible automated validation passed for the current revision labels Aug 28, 2026
@CrysisDeu CrysisDeu changed the title fix: repair two cross-merge breakages redding main's CI fix: repair three cross-merge breakages redding main's CI Aug 28, 2026
@github-actions github-actions Bot added readiness: action required A blocking check or review needs attention readiness: checking Automated validation is still running readiness: passed Eligible automated validation passed for the current revision and removed readiness: checking Automated validation is still running readiness: action required A blocking check or review needs attention labels Aug 28, 2026

@iamwhatever iamwhatever left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Tier 1 auto-approve: fix (3 files). Criteria: no conflict, no requested changes, security path denylist clean, design-doc gate clean, SAST annotations clean, security checklist all-NO, AI reviewers green. Category: repairs three cross-merge CI breakages -- pins mock_cfg.default_agent to a string so the slots broadcast stays JSON-serializable, updates two cotenant_sids monkeypatches to the new keyword-only signature, and drops a now-stale jsx-a11y eslint-disable; test-only plus one comment removal, no runtime behaviour change.

@NicholasRBowers
NicholasRBowers merged commit e48ea42 into main Aug 28, 2026
110 of 113 checks passed
@NicholasRBowers
NicholasRBowers deleted the fix/drivepage-unused-eslint-disable branch August 28, 2026 12:03
@github-actions github-actions Bot removed the readiness: passed Eligible automated validation passed for the current revision label Aug 28, 2026

@dwu96 dwu96 left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Tier 1 auto-approve: fix (3 files). Criteria: no conflict, no requested changes, security path denylist clean, design-doc gate clean, SAST annotations clean, security checklist all-NO, AI reviewers green. Category: repairs three independent cross-merge CI breakages at cause — a dead eslint-disable directive removed, and two hand-rolled cotenant_sids test doubles updated to the real keyword-only signature, plus a MagicMock cfg field pinned to a string; test-only plus one comment deletion, no runtime behaviour change.

@bolichen97 bolichen97 left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Tier 1 auto-approve: fix (3 files). Criteria: no conflict, no requested changes, security path denylist clean, design-doc gate clean, SAST annotations clean, security checklist all-NO, AI reviewers green. Category: repairs three cross-merge CI breakages on main (test mock pinned to string, cotenant_sids signature updated in two test callsites, stale eslint-disable removed) with clear per-file root causes.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

no-screenshots PR has no visual delta; screenshot gate exempt

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants