Remove three stale lint suppressions; say which DB the migrator manages - #300
Merged
Merged
Conversation
Two small accuracy fixes found while reviewing, neither changing behaviour. 1. Three `eslint-disable-next-line react-hooks/exhaustive-deps` comments suppress nothing. eslint reports them as unused directives, which means the rule no longer fires on those lines — the dependency arrays were completed and the suppressions left behind. AdminPage.jsx was a plain duplicate: two identical directives on consecutive lines, so the first applied to the second comment rather than to any code. These matter more than the count suggests. A stale exhaustive-deps suppression silently swallows the next genuine missing dependency on that line, which is a real bug class in effect hooks — exactly the kind of thing the rule exists to catch. Lint drops 47 -> 44 problems, still 0 errors. 2. app/core/migrations.py opened with "Lightweight schema sync for SQLite", and all of its caveats are written in SQLite terms, which reads as though it were self-host-only machinery. It is not: main.py calls sync_schema() unconditionally on every boot against whatever engine is configured, so on Fly this module plus create_all() IS the production Postgres schema management — there is no Alembic in this repo. Says so now, and notes where the SQLite caveats read differently on Postgres. ruff clean, 864 backend tests pass, frontend lint exits 0. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Two accuracy fixes found during the second system review. Neither changes
behaviour.
1. Three lint suppressions that suppress nothing
eslint reports all three as unused directives — the rule no longer fires
on those lines, because the dependency arrays were completed and the
eslint-disablecomments were left behind.AdminPage.jsxwas a plain duplicate:The first applied to the second comment rather than to any code.
Why this matters more than "3 warnings": a stale
exhaustive-depssuppression silently swallows the next genuine missing dependency on that
line. That's a real bug class in effect hooks — stale closures reading old
state — and it's precisely what the rule exists to catch. The explanatory
comments above two of them ("orgId: tear down + reconnect the stream under
the new org's token") are kept; only the dead directives go.
Lint: 47 → 44 problems, still 0 errors.
2. The migrator says SQLite; it manages production Postgres
app/core/migrations.pyopened with "Lightweight schema sync for SQLite",and every caveat in it is written in SQLite terms — which reads as though it
were self-host-only machinery.
It isn't.
main.pycallssync_schema(engine, Base.metadata)unconditionallyon every boot against whatever engine is configured, and there is no Alembic
in this repo, so on Fly this module plus
create_all()is the productionPostgres schema management. The header now says so, and notes where the SQLite
caveats read differently on Postgres (an
ADD COLUMNwith a non-volatiledefault is metadata-only on PG11+, where SQLite rewrites).
Verified
ruff check→ All checks passedpytest→ 864 passednpm run lint→ exit 0, 44 warnings🤖 Generated with Claude Code