From 425cd97a8545babe469a2e7dbbcab1b8e03e4284 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Fri, 6 Feb 2026 18:46:28 +0000 Subject: [PATCH 1/3] Initial plan From 7f4863b5e610f0077bd00a1b2c54c7d8a31b6a64 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Fri, 6 Feb 2026 18:48:11 +0000 Subject: [PATCH 2/3] Initial plan for fixing 8 ESLint errors Co-authored-by: NathanWCarlson <91852549+NathanWCarlson@users.noreply.github.com> --- package-lock.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package-lock.json b/package-lock.json index b0a238c..b17b847 100644 --- a/package-lock.json +++ b/package-lock.json @@ -6806,4 +6806,4 @@ } } } -} \ No newline at end of file +} From 87da3896071917b16fe8e7fffaba7a79327706d8 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Fri, 6 Feb 2026 18:56:58 +0000 Subject: [PATCH 3/3] Fix all 8 targeted ESLint errors (React hooks and HTML entities) Co-authored-by: NathanWCarlson <91852549+NathanWCarlson@users.noreply.github.com> --- src/components/admin/GovernanceDashboard.tsx | 5 ++--- src/components/admin/OpenRecordsManager.tsx | 4 ++-- src/components/dashboard/AIIntake.tsx | 2 +- src/components/dashboard/ConsentPreviewModal.tsx | 2 +- src/components/surveys/SurveyModal.tsx | 2 +- src/components/verification/VerificationModal.tsx | 4 ++-- 6 files changed, 9 insertions(+), 10 deletions(-) diff --git a/src/components/admin/GovernanceDashboard.tsx b/src/components/admin/GovernanceDashboard.tsx index 201752f..84aaeb8 100644 --- a/src/components/admin/GovernanceDashboard.tsx +++ b/src/components/admin/GovernanceDashboard.tsx @@ -52,9 +52,8 @@ export function GovernanceDashboard() { const [checkResults, setCheckResults] = useState(null); const [activeTab, setActiveTab] = useState<'foundations' | 'hos' | 'records' | 'grievances'>('foundations'); - const supabase = createClient(); - const fetchGovernanceData = useCallback(async () => { + const supabase = createClient(); setLoading(true); const { data: docs } = await supabase .from('governance_documents') @@ -74,7 +73,7 @@ export function GovernanceDashboard() { if (docs) setDocuments(docs); if (alertData) setAlerts(alertData); setLoading(false); - }, [supabase]); + }, []); useEffect(() => { fetchGovernanceData(); diff --git a/src/components/admin/OpenRecordsManager.tsx b/src/components/admin/OpenRecordsManager.tsx index 3baff8e..28f0330 100644 --- a/src/components/admin/OpenRecordsManager.tsx +++ b/src/components/admin/OpenRecordsManager.tsx @@ -37,9 +37,9 @@ interface OpenRecordsRequest { export function OpenRecordsManager() { const [requests, setRequests] = useState([]); const [loading, setLoading] = useState(true); - const supabase = createClient(); const fetchRequests = useCallback(async () => { + const supabase = createClient(); const { data, error } = await supabase .from('open_records_requests') .select('*, dim_school(school_name)') @@ -48,7 +48,7 @@ export function OpenRecordsManager() { if (error) console.error('Failed to fetch requests:', error); else setRequests(data || []); setLoading(false); - }, [supabase]); + }, []); useEffect(() => { fetchRequests(); diff --git a/src/components/dashboard/AIIntake.tsx b/src/components/dashboard/AIIntake.tsx index 3085f93..430b0fd 100644 --- a/src/components/dashboard/AIIntake.tsx +++ b/src/components/dashboard/AIIntake.tsx @@ -187,7 +187,7 @@ export function AIIntake() {

Draft Email Created

- Your incident record has been saved. We've also created a draft summary for you to review and send from your email client. + Your incident record has been saved. We've also created a draft summary for you to review and send from your email client.

diff --git a/src/components/dashboard/ConsentPreviewModal.tsx b/src/components/dashboard/ConsentPreviewModal.tsx index cec9396..90ade48 100644 --- a/src/components/dashboard/ConsentPreviewModal.tsx +++ b/src/components/dashboard/ConsentPreviewModal.tsx @@ -34,7 +34,7 @@ export function ConsentPreviewModal({ isOpen, onClose, onConfirm, anonymizedData

- To maintain transparency, we've separated your entry into two views. + To maintain transparency, we've separated your entry into two views. Left: Your full private record which preserves every detail, name, and emotion for your tracking. Right: The community-level report which is stripped of all identities to track trends safely.

diff --git a/src/components/surveys/SurveyModal.tsx b/src/components/surveys/SurveyModal.tsx index c9cb224..da05bf7 100644 --- a/src/components/surveys/SurveyModal.tsx +++ b/src/components/surveys/SurveyModal.tsx @@ -106,7 +106,7 @@ export function SurveyModal({ isOpen, onClose, summary: initialSummary, messages

Draft Email Created

- We've generated a policy-aligned draft for your review. Check your inbox to refine and send to the Board when you are ready. + We've generated a policy-aligned draft for your review. Check your inbox to refine and send to the Board when you are ready.

diff --git a/src/components/verification/VerificationModal.tsx b/src/components/verification/VerificationModal.tsx index b9b0b1c..b3af679 100644 --- a/src/components/verification/VerificationModal.tsx +++ b/src/components/verification/VerificationModal.tsx @@ -394,7 +394,7 @@ export function VerificationModal() {

- "I affirm, under penalty of perjury, that I am the parent or legal guardian of at least one student currently enrolled at {selectedSchool?.school_name}. I understand that intentionally false statements may result in account suspension." + "I affirm, under penalty of perjury, that I am the parent or legal guardian of at least one student currently enrolled at {selectedSchool?.school_name}. I understand that intentionally false statements may result in account suspension."
@@ -519,7 +519,7 @@ export function VerificationModal() { >

Email Verification

-

Enter the sender's email address from a recent official school communication (e.g. re-enrollment, activation).

+

Enter the sender's email address from a recent official school communication (e.g. re-enrollment, activation).