Skip to content

Import plain HTML and CSS projects safely #27

Description

@robinbraemer

Outcome

Import ordinary static HTML, CSS, JavaScript, assets, archives, directories, and Git repositories into a canonical Flect workspace with a precise compatibility report and no source execution during inspection.

Product-quality coverage

FQ-03.6, FQ-08.1 through FQ-08.7, and FQ-24.1 through FQ-24.3, FQ-24.6.

Dependencies

Consumes #3, #4, #5, and #25. It establishes the simplest importer before the React/Vite work in #8 and Vue/Svelte work in #9.

Required behavior

  • Inspect source structure, HTML entrypoints, assets, CSS imports, modules, URLs, forms, storage, workers, and network assumptions without executing repository code.
  • Produce a preserved, adapted, unsupported, and permission-required report before mutation.
  • Copy supported source into a new Git branch or repository, adapt only reviewed portability boundaries, build, and preview in the isolated renderer.
  • Exclude secrets, credentials, .env values, host paths, generated caches, and unsupported binaries by default.
  • Preserve the original source and last accepted workspace after every failure.

Acceptance criteria

  • Versioned real-browser fixtures cover a static site, multi-page site, ES modules, CSS and assets, forms, unsupported remote assumptions, and malicious archives.
  • Import report and generated commits are attributable and reviewable.
  • Traversal, symlink, archive bomb, hidden credential, executable, unsupported scheme, CSP escape, and network attempts fail before activation.
  • Imported source remains recognizable, exports with ordinary Git history, and runs without a proprietary service after dependencies are cached.
  • Unsupported behavior names a safe alternative or clearly states that no compatible path exists.

Non-goals

  • Reproducing a closed website from its URL.
  • Executing arbitrary scripts during compatibility analysis.
  • Claiming behavioral equivalence without fixture tests.

Metadata

Metadata

Assignees

No one assigned

    Labels

    area:authoringBrowser authoring, building, and source importenhancementNew feature or requestpriority:P1Next after the core live-editing loop is provenstatus:implementedImplemented and locally verified; awaiting publication workflow

    Type

    No type

    Projects

    Status
    Done

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions