Skip to content

258 robins stability#259

Merged
InfinityBowman merged 3 commits into
mainfrom
258-robins-stability
Jan 9, 2026
Merged

258 robins stability#259
InfinityBowman merged 3 commits into
mainfrom
258-robins-stability

Conversation

@InfinityBowman
Copy link
Copy Markdown
Owner

@InfinityBowman InfinityBowman commented Jan 9, 2026

Summary by CodeRabbit

Release Notes

  • New Features

    • Added "Not Applicable" response options to ROBINS-I checklist questions across multiple domains.
    • Improved routing structure for project pages with better-organized nested navigation.
    • Introduced ESLint rule to enforce recommended component patterns.
  • Documentation

    • Added comprehensive ROBINS-I audit report documenting current coverage and identified gaps.
  • Chores

    • Removed unused mock reconciliation component and streamlined project context for improved data flow.

✏️ Tip: You can customize this high-level summary in your review settings.

@InfinityBowman InfinityBowman linked an issue Jan 9, 2026 that may be closed by this pull request
@cloudflare-workers-and-pages
Copy link
Copy Markdown

Deploying with  Cloudflare Workers  Cloudflare Workers

The latest updates on your project. Learn more about integrating Git with Workers.

Status Name Latest Commit Preview URL Updated (UTC)
✅ Deployment successful!
View logs
corates f55f641 Commit Preview URL Jan 09 2026, 01:03 AM

@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented Jan 9, 2026

Caution

Review failed

The pull request is closed.

📝 Walkthrough

Walkthrough

This PR introduces a new ESLint rule prohibiting Outlet usage from @solidjs/router, restructures project routing to use ProjectView as a parent route with nested child routes, refactors multiple components to consume projectOps through ProjectContext instead of direct hooks, and extends ROBINS-I checklist scoring to support "Not Applicable" response types with improved error handling in checklist creation.

Changes

Cohort / File(s) Summary
ESLint Rule Addition
eslint-rules/no-outlet.js, eslint-rules/index.js, eslint.config.js
New rule module no-outlet disallows Outlet imports from @solidjs/router, with rule exported and enabled in eslint config.
Route Restructuring
packages/web/src/Routes.jsx
ProjectView becomes parent route at /projects/:projectId with nested children for checklist and reconcile routes; standalone routes replaced with nested structure.
Project Context Updates
packages/web/src/components/project/ProjectContext.jsx, packages/web/src/components/project/ProjectView.jsx
ProjectContext now exposes projectOps for Y.js operations; ProjectView accepts props and uses memoized child-route detection to conditionally render nested children or full project view.
Reconciliation Refactoring
packages/web/src/components/project/reconcile-tab/ReconciliationWrapper.jsx, packages/web/src/components/project/reconcile-tab/ReconciliationWithPdf.jsx, packages/web/src/components/project/reconcile-tab/index.js
ReconciliationWrapper refactored to use ProjectContext instead of hooks; import paths updated; Y.js operations sourced from context with fallback to empty object; export path updated in barrel.
Checklist Component Updates
packages/web/src/components/checklist/ChecklistYjsWrapper.jsx, packages/web/src/components/checklist/ROBINSIChecklist/DomainSection.jsx
ChecklistYjsWrapper switched to useProjectContext for project data and Y.js operations; DomainSection adds three props (domainKey, questionKey, getRobinsText) to SignallingQuestion.
ROBINS-I Scoring Extensions
packages/web/src/components/checklist/ROBINSIChecklist/checklist-map.js, packages/web/src/components/checklist/ROBINSIChecklist/scoring/robins-scoring.js
New response types with NA variants added; judgment constants (JUDGEMENTS, OVERALL_DISPLAY) exported for single source of truth; domain questions updated to use NA-aware response types; rule references updated (D1A.R7 → D1A.R10).
Tests & Scoring Validation
packages/web/src/components/checklist/ROBINSIChecklist/__tests__/robins-scoring.test.js
Test description updated and new test case added for LOW_EXCEPT_CONFOUNDING mapping.
Mock Component Removal
packages/web/src/components/mock/RobinsReconcileSectionBQuestionMock.jsx
Entire mock UI component for ROBINS-I Section B reconciliation removed (214 lines).
Checklist Creation Logic
packages/web/src/primitives/useProject/checklists/index.js
Added try/catch with defensive logging for missing YDoc/study; introduced registry-driven template creation with type-specific handlers; separate fallback path for unknown types; timestamp tracking added.
Documentation
packages/docs/audits/robins-i-forms-audit-2026-01.md
Comprehensive audit document added detailing scope, findings (Critical/High/Medium/Low severity issues), observations, impact, and recommendations for ROBINS-I scoring and UI inconsistencies.

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~45 minutes

Possibly related PRs

  • backend migration to organizations completed #200 — Adds additional context properties (orgSlug, orgId, path builders) to ProjectContext, which overlaps with this PR's context enhancement to expose projectOps.
  • 204 improve org implementation #205 — Modifies the same routing and context files (ProjectContext, ProjectView, ReconciliationWrapper, ChecklistYjsWrapper, Routes), indicating overlapping refactoring of project operations and Y.js integration.
  • 104 refactor project state handlers #105 — Introduces centralized projectActionsStore and reworks project handler wiring, which relates to this PR's shift toward context-provided projectOps for Y.js operations.
✨ Finishing touches
  • 📝 Generate docstrings

📜 Recent review details

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 9254f42 and f55f641.

📒 Files selected for processing (17)
  • eslint-rules/index.js
  • eslint-rules/no-outlet.js
  • eslint.config.js
  • packages/docs/audits/robins-i-forms-audit-2026-01.md
  • packages/web/src/Routes.jsx
  • packages/web/src/components/checklist/ChecklistYjsWrapper.jsx
  • packages/web/src/components/checklist/ROBINSIChecklist/DomainSection.jsx
  • packages/web/src/components/checklist/ROBINSIChecklist/__tests__/robins-scoring.test.js
  • packages/web/src/components/checklist/ROBINSIChecklist/checklist-map.js
  • packages/web/src/components/checklist/ROBINSIChecklist/scoring/robins-scoring.js
  • packages/web/src/components/mock/RobinsReconcileSectionBQuestionMock.jsx
  • packages/web/src/components/project/ProjectContext.jsx
  • packages/web/src/components/project/ProjectView.jsx
  • packages/web/src/components/project/reconcile-tab/ReconciliationWithPdf.jsx
  • packages/web/src/components/project/reconcile-tab/ReconciliationWrapper.jsx
  • packages/web/src/components/project/reconcile-tab/index.js
  • packages/web/src/primitives/useProject/checklists/index.js

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 and usage tips.

@InfinityBowman InfinityBowman merged commit 9d591d6 into main Jan 9, 2026
2 of 3 checks passed
@InfinityBowman InfinityBowman deleted the 258-robins-stability branch January 9, 2026 01:05
This was referenced Jan 11, 2026
This was referenced Jan 18, 2026
@coderabbitai coderabbitai Bot mentioned this pull request Jan 25, 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.

Robins stability improvements

1 participant