Skip to content

feat: add ESLint with TypeScript support for runtime anti-pattern detection - #493

Merged
bradygaster merged 1 commit into
devfrom
squad/477-code-quality-linting
Mar 22, 2026
Merged

bradygaster merged 1 commit into
devfrom
squad/477-code-quality-linting

Conversation

@bradygaster

Copy link
Copy Markdown
Collaborator

Summary

Adds ESLint 9 (flat config) with TypeScript ESLint and eslint-plugin-n to detect runtime anti-patterns that \ sc --noEmit\ misses.

Working as FIDO (Quality Owner) — this is a quality infrastructure addition.

What's included

  • \�slint.config.mjs\ — flat config targeting \packages/\ (type-aware) and \ est/\ (basic rules)

  • pm run lint:eslint\ — new script to run ESLint across packages and tests
  • ESLint + @typescript-eslint/parser\ + @typescript-eslint/eslint-plugin\ + \�slint-plugin-n\

Rules enabled (all warnings)

Rule What it catches
@typescript-eslint/no-floating-promises\ Fire-and-forget promises, missing \�wait\
\
/no-sync\ (allowAtRootLevel) Synchronous I/O inside functions
\
o-console\ (allow warn/error) \console.log\ in production code

Key design decisions

  • Warnings only — 1,098 existing warnings, 0 errors, exit code 0. No disruption.
  • Split config — Source packages get full type-aware linting via \projectService; test files get non-type-aware rules only (no tsconfig coverage for \ est/).
  • Existing scripts untouched —
    pm run build\ and
    pm run lint\ (tsc) still work identically.

Verification


  • pm run lint:eslint\ — exits 0 with warnings

  • pm run build\ — passes

  • pm run lint\ — passes (tsc --noEmit unchanged)

Closes #477

…ection

Add ESLint 9 (flat config) with @typescript-eslint and eslint-plugin-n to
detect patterns that tsc --noEmit misses:

- @typescript-eslint/no-floating-promises (warn): catch fire-and-forget promises
- n/no-sync (warn, allowAtRootLevel): flag sync I/O inside functions
- no-console (warn, allow warn/error): prevent console.log in production

Configuration:
- Source packages (packages/**) get full type-aware linting via projectService
- Test files (test/**) get non-type-aware rules only (no tsconfig coverage)
- Ignores node_modules, dist, .squad directories

All rules set to 'warn' — 1098 existing warnings, 0 errors, exit code 0.
Existing build and lint scripts unaffected.

Closes #477

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@bradygaster bradygaster added squad Squad triage inbox — Lead will assign to a member squad:fido labels Mar 22, 2026
@bradygaster
bradygaster merged commit ee09aae into dev Mar 22, 2026
1 of 2 checks passed
chrislomonico pushed a commit to clomonico/squad that referenced this pull request Mar 26, 2026
Session: 2026-02-24-wave-d-kickoff
Requested by: Brady

Changes:
- Logged orchestration for Hockney (PR github#487), Keaton (issues github#488–github#493), Fenster (timeout fix)
- Created session log for Wave D kickoff with summary and next steps
- Merged Wave D readiness assessment from inbox into decisions.md
- Notified Cheritto, Kovash, Fortier of Wave D Batch 1 assignments via history.md updates
- Cross-agent updates: Cheritto assigned P1 UX items (github#488–github#490), Kovash P2 hardening (github#491–github#492), Fortier streamBuffer cleanup (github#493)

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
chrislomonico pushed a commit to clomonico/squad that referenced this pull request Mar 26, 2026
Waves A-C complete. Wave D issues github#488-github#493 filed.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
chrislomonico pushed a commit to clomonico/squad that referenced this pull request Mar 26, 2026
Adds defensive streamBuffers.delete() in all error paths to prevent
stale buffer entries from accumulating when streaming errors occur.

- StreamBridge onError: delete buffer for failed agent
- dispatchToAgent catch: delete buffer when session evicted
- dispatchToCoordinator catch: delete coordinator buffer on failure
- handleCancel: clear all buffers on user cancellation

No functional behavior changes on success path.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
chrislomonico pushed a commit to clomonico/squad that referenced this pull request Mar 26, 2026
Session: 2026-02-24T07-30-00Z-wave-d-batch1-impl
Requested by: Coordinator

Changes:
- Logged orchestration for Cheritto (github#488, PR github#495): Unified Status Display
- Logged orchestration for Fortier (github#493, PR github#494): StreamBuffer Cleanup on Error
- Logged orchestration for Kovash (github#491, PR github#496): Message History Cap
- Session log: Wave D batch 1 implementation summary
- Decision inbox: empty (no new decisions to merge)

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@bradygaster
bradygaster deleted the squad/477-code-quality-linting branch August 8, 2026 08:40
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

squad Squad triage inbox — Lead will assign to a member

Projects

None yet

Development

Successfully merging this pull request may close these issues.

PRD: Code Quality Linting for Squad Monorepo

1 participant