Skip to content

chore: add ESLint and document known product limitations - #20

Merged
AlaskanTuna merged 3 commits into
mainfrom
chore/eslint-and-readme-limitations
Jul 29, 2026
Merged

chore: add ESLint and document known product limitations#20
AlaskanTuna merged 3 commits into
mainfrom
chore/eslint-and-readme-limitations

Conversation

@AlaskanTuna

@AlaskanTuna AlaskanTuna commented Jul 29, 2026

Copy link
Copy Markdown
Owner

First shipped work from the Phase 12 revival plan. Two independent tasks, both QA-approved.

Add a linter (#14)

The repo had no linter. pnpm lint was prettier --check against eight hardcoded config files, while pnpm format wrote the whole repo — so "lint" checked almost nothing and didn't match "format" in scope.

  • ESLint 9 flat config with typescript-eslint + eslint-plugin-react-hooks, covering shared/, backend/, frontend/, and services/pdf-service/
  • Prettier stays the formatter; eslint-config-prettier keeps them from fighting
  • Rules tuned so correctness rules error and stylistic ones warn — a linter that fails on first run on a mature codebase just gets disabled
  • Warning baseline pinned at --max-warnings 68, so new warnings fail the run
  • @typescript-eslint/no-explicit-any promoted to error (verified zero-hit), enforcing a project rule that was previously documented but unenforced
  • 13 files reformatted so the repo is genuinely Prettier-clean repo-wide — formatting-only, each verified byte-identical to prettier(git show HEAD:<file>)

Document known limitations (#13)

A Known Limitations section covering the four genuine, current constraints: approximate panel placement, uneven Solar API coverage, NEM figures being an estimate rather than a utility quote, and deferred real-device mobile testing. Resolved issues were deliberately excluded rather than padding the list.

Also a temporary notice that the live deployment is offline pending the database migration.

Verification

  • eslint . → exit 0 (0 errors, 68 warnings)
  • prettier --check . → exit 0
  • pnpm typecheck → exit 0
  • pnpm test → 211 frontend, 117 backend — matches baseline exactly
  • pnpm install --frozen-lockfile resolves clean; CI runs only build + test, so zero blast radius

Closes #13
Closes #14

Summary by CodeRabbit

  • Documentation

    • Added a notice that the live deployment is temporarily offline, with instructions for running the product locally.
    • Documented known limitations, including approximate panel placement, imagery coverage, estimated NEM billing, tariff escalation defaults, and incomplete mobile/touch validation.
    • Improved runbook table formatting for easier scanning and reference.
  • Chores

    • Standardized project linting and formatting checks to improve consistency and code quality.

@coderabbitai

coderabbitai Bot commented Jul 29, 2026

Copy link
Copy Markdown

Review Change Stack

Warning

Review limit reached

@AlaskanTuna, you've reached your PR review limit, so we couldn't start this review.

Next review available in: 46 minutes

Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available.
You're only billed for reviews past your plan's rate limits ($0.25/file).

How can I continue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews.

How do review limits work?

CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability.

For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window.

Please refer docs for additional details.

Review details
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: abaa0861-6579-4e73-a255-e2f4279d4cf4

📥 Commits

Reviewing files that changed from the base of the PR and between ff5517a and 32dd748.

📒 Files selected for processing (2)
  • README.md
  • RUNBOOK.md
✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch chore/eslint-and-readme-limitations

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.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Actionable comments posted: 3

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@eslint.config.js`:
- Around line 16-20: Update the warnings() helper to downgrade only an explicit
stylistic-rule allowlist, leaving correctness rules at their configured error
severity; specifically preserve react-hooks/exhaustive-deps as error. Ensure
enabled rules outside that allowlist are not converted to warnings, while
retaining the existing handling of rule options.

In `@README.md`:
- Around line 45-47: Update the deployment section identified by its live
deployment heading so it consistently communicates that solarsim.tech is
currently offline. Either rename the heading to indicate the offline status or
add the existing status warning alongside the historical URLs and service
details, without presenting them as operational.

In `@RUNBOOK.md`:
- Around line 460-461: Update the troubleshooting table separator row in
RUNBOOK.md to contain exactly three separator cells, matching the three-column
header; remove the extra trailing separator cell.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: 813deaf9-3b1b-4a7c-af8c-753ac585ad04

📥 Commits

Reviewing files that changed from the base of the PR and between 47ab3ba and ff5517a.

⛔ Files ignored due to path filters (1)
  • pnpm-lock.yaml is excluded by !**/pnpm-lock.yaml
📒 Files selected for processing (16)
  • README.md
  • RUNBOOK.md
  • backend/src/services/__tests__/fluxRecomputeService.test.ts
  • backend/src/services/__tests__/locationPipeline.test.ts
  • backend/src/services/chat/__tests__/digest.test.ts
  • backend/src/services/locationService.ts
  • backend/src/services/solarApiService.ts
  • eslint.config.js
  • frontend/src/hooks/usePanelState.ts
  • frontend/src/pages/PrivacyPage.tsx
  • frontend/src/pages/__tests__/AnalyticsPage.test.tsx
  • frontend/src/pages/__tests__/DashboardPage.test.tsx
  • frontend/src/pages/__tests__/ProjectsPage.test.tsx
  • frontend/src/pages/__tests__/SignUpPage.test.tsx
  • frontend/src/pages/__tests__/WorkbenchPage.test.tsx
  • package.json

Comment thread eslint.config.js
Comment thread README.md
Comment on lines +45 to +47
> [!WARNING]
> **The live deployment is currently offline.** The Supabase project backing `solarsim.tech` is paused pending a database provider migration (tracked in open issues). Everything below still describes the shipped product — clone it and run the local quickstart to see it working.

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win

Keep the deployment status consistent throughout the README.

This warning says solarsim.tech is offline, but the deployment section at Lines 307-313 still presents the same URLs and services as the “Live deployment.” Rename that section to indicate the deployment is currently offline, or add the same status warning there so readers do not mistake the historical deployment details for an operational service.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@README.md` around lines 45 - 47, Update the deployment section identified by
its live deployment heading so it consistently communicates that solarsim.tech
is currently offline. Either rename the heading to indicate the offline status
or add the existing status warning alongside the historical URLs and service
details, without presenting them as operational.

Comment thread RUNBOOK.md Outdated
@AlaskanTuna
AlaskanTuna merged commit 5c2af1a into main Jul 29, 2026
3 checks passed
@AlaskanTuna
AlaskanTuna deleted the chore/eslint-and-readme-limitations branch July 29, 2026 10:22
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.

Add a linter and make pnpm lint cover the whole repo Document known product limitations in the README

1 participant