Skip to content

Add initial frontend quality gates and TypeScript hardening - #418

Merged
jamiepine merged 1 commit into
jamiepine:mainfrom
erionjuniordeandrade-a11y:erion/initial-hardening
Apr 18, 2026
Merged

jamiepine merged 1 commit into
jamiepine:mainfrom
erionjuniordeandrade-a11y:erion/initial-hardening

Conversation

@erionjuniordeandrade-a11y

Copy link
Copy Markdown
Contributor

Summary

  • add a lightweight CI workflow that enforces typecheck + web build on PRs
  • make root bun run ci meaningful and passing
  • fix the TypeScript issues blocking app/web typecheck
  • update stale version examples in SECURITY.md

Why

  • the repo had release automation, but no PR-time quality gate
  • frontend type errors were being worked around instead of surfaced
  • stale security version examples were drifting behind current releases

Verification

  • bun run typecheck
  • bun run build:web
  • bun run ci

Notes

  • I intentionally did not gate on biome check yet because the repo still has substantial pre-existing formatting/a11y debt that would keep CI permanently red.
  • This PR is the first hardening slice, not the full cleanup.

@erionjuniordeandrade-a11y

Copy link
Copy Markdown
Contributor Author

Follow-up tracking issues opened from this hardening pass:

That gives the repo a cleaner path from “make CI meaningful” to “make architecture maintainable.”

@erionjuniordeandrade-a11y

Copy link
Copy Markdown
Contributor Author

I spun up the next slice as a stacked follow-up PR on my fork:

That branch introduces explicit engine/platform support tiers and lazy-loads the heavy routes. Local verification dropped the main web bundle from about 1069 kB to about 637 kB minified while keeping bun run ci green.

I kept it stacked on top of this hardening PR so the review surface stays sane instead of mixing architecture work into the first patch.

jamiepine added a commit that referenced this pull request Apr 18, 2026
ModelManagement.tsx reads migrationResult.moved (added in #433) but
apiClient.migrateModels() was typed as returning only { source, destination }.
The backend actually returns { moved: int, errors: list[str], source, destination }
(backend/routes/models.py:140, 168). Widen the TS return type so the check
typechecks under the new CI gate from #418.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
jamiepine added a commit that referenced this pull request Apr 18, 2026
#470)

ModelManagement.tsx reads migrationResult.moved (added in #433) but
apiClient.migrateModels() was typed as returning only { source, destination }.
The backend actually returns { moved: int, errors: list[str], source, destination }
(backend/routes/models.py:140, 168). Widen the TS return type so the check
typechecks under the new CI gate from #418.

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@jamiepine
jamiepine merged commit a6ab5f3 into jamiepine:main Apr 18, 2026
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.

2 participants