Files
Charon/docs/plans/archive/caddy_import_firefox_assessment.md
2026-03-04 18:34:49 +00:00

2.4 KiB

Caddyfile Import Firefox Issue - Final Assessment

Issue: GitHub #567 Reported: January 26, 2026 Resolved: February 1, 2026 (Commit eb1d710f) Verified: February 3, 2026


FINAL VERDICT: ISSUE RESOLVED

Root Cause

API contract mismatch between frontend and backend:

  • Frontend sent: {contents: string[]}
  • Backend expected: {files: [{filename: string, content: string}]}

Fix Applied (Commit eb1d710f)

  1. API Client (frontend/src/api/import.ts):

    • Added CaddyFile interface with filename and content fields
    • Updated uploadCaddyfilesMulti() to send {files: CaddyFile[]}
  2. UI Component (frontend/src/components/ImportSitesModal.tsx):

    • Changed state from string[] to SiteEntry[] (with filename + content)
    • Updated form to construct proper CaddyFile[] payload
  3. Error Handling (frontend/src/pages/ImportCaddy.tsx):

    • Added warning extraction from 400 error responses
    • Improved UX for backend validation warnings

Why Firefox Was Affected

The bug was browser-agnostic (affected all browsers), but Firefox's stricter error handling and network stack behavior made the issue more visible to users.

Verification Evidence

Code Review:

  • API contract matches backend expectations exactly
  • Component follows new contract correctly
  • Button event handler has proper disabled/loading state logic

Test Coverage:

  • Comprehensive E2E tests exist (tests/tasks/import-caddyfile.spec.ts)
  • Tests validate full import flow: paste → parse → review → commit
  • Test mocks confirm correct API payload structure

Documentation Updated:

  • API documentation (docs/api.md) reflects correct contract
  • Changelog (CHANGELOG.md) documents the fix

Recommendation

Action: Close GitHub Issue #567

Rationale:

  1. Root cause identified and fixed
  2. Fix verified through code review
  3. Test coverage validates correct behavior
  4. No further changes needed

Follow-up (Optional):

  • Monitor production logs for any new import-related errors
  • Consider adding automated browser compatibility testing to CI pipeline

References

  • Frontend Analysis: docs/plans/caddy_import_frontend_analysis.md
  • Backend Analysis: docs/plans/caddy_import_backend_analysis.md
  • Fix Commit: eb1d710f504f81bee9deeffc59a1c4f3f3bcb141
  • GitHub Issue: #567 (Jan 26, 2026)

Status: Investigation Complete - Issue Confirmed Resolved