Skip to content

launch checklist: hosted web app + CLI #62

Description

@SgtPooki

Description

Tracking issue for launch. Launch means: the page at filecoin.cloud/ipfs2filecoin captures a pasted CID list, shows an estimate, and hands the user's agent the runbook (migrate.md); the agent drives the CLI end to end with no cap; the hosted console covers small self-service runs within its cap. All of it documented well enough that nobody needs to ask us how to use it. This follows the 2026-07-28 product decision: the page is a teaser and router, the CLI is the migration engine.

Cap rationale, measured 2026-07: sequential 32-piece AddPieces commits ran about a minute each including confirmation, and the one measured provider pull ran ~0.18 MiB/s, so a run finishing under 10 minutes is roughly 500 CIDs. Shipped as 500 items / 1 GiB.

Tasks

  • release latest to npm (chore(main): release ipfs2foc 0.5.0 #55)
  • hosted run cap: 500 items structural; byte wall demoted to a 1 GiB ceiling (piece/upload unit) + a latched >10-minute projected-time advisory steering to the CLI
  • canonical-form CID dedupe in the console union ([Feature]: dedupe CIDs in a run and against what the account already stores #58, part 1)
  • per-piece pull status readable from the CLI (status shows the local pull record; report stays chain truth)
  • user guide in docs/, README cleanup
  • wording pass over app and docs (product owns the message and CTAs; naming decision pending from the same pass)
  • web analytics via Plausible: pageview, run-completed, cli-steer, and contact events wired in app/src/analytics.ts, reporting into the existing filecoin.cloud site.. so there is no separate site to create and the old 404 is gone
  • CLI install metrics via @scarf/scarf (dependency + README opt-outs on main; scarf.sh registered; data starts with the next npm release)
  • operational telemetry: error tracking + step/abandon funnel behind the same hosted-only gate; BetterStack source ipfs2foc dApp in FOC WG, wired via repo variables into the Pages build
  • CLI stage telemetry: one anonymous event per command (name and outcome only) to the same BetterStack source; DO_NOT_TRACK and SCARF_ANALYTICS=false honored; disclosed in --help and in migrate.md (744c250; ships with the next npm release)
  • flip the deployed app default network to mainnet (2861cba; the launch-invariants deploy gate now asserts mainnet on every deploy)
  • contact-us / feedback affordance: persistent footer link + tails on all four boundary notices, pointing at https://filecoin.cloud/contact, clicks tracked
  • intake validation feedback: invalid-CID count inline at paste time (invalidCidStrings + InvalidCidNote)
  • landing fit statement: caps, wallet + USDFC/FIL prerequisites, and the CLI pointer sit in the lede before any wallet step; the caps sentence is asserted by the launch-invariants deploy gate
  • aggregate failure summary above the per-row detail: count of unfetchable items with retry, gateway, CLI, and contact options (FailureSummary)
  • storage-duration choice at the cost step: a "store for N months" control driving the estimate, aligned with the self-funding epic's funded-until concept
  • scripted CLI-flow rehearsal on calibration (scripts/rehearse-calibration.sh): probe, analyze, payments gate, upload, report ran end to end with a funded wallet on 2026-08-24; 6/6 CIDs committed on both provider copies (data sets 25443 and 25442), zero discrepancies. The dry runs also surfaced and fixed three exit-code bugs (upload aa307a7, probe 2dc8d5d)
  • console-surface rehearsal: session grant, byte-cap steer, submit ETA (the app surfaces the audit couldn't reach; the CLI rehearsal above does not exercise them)
  • host at filecoin.cloud/ipfs2filecoin (the ipfsto.filecoin.cloud subdomain is dropped), update the official Filecoin developer docs to point at it

Not in launch scope

Fast-follows, tracked separately: p2p retrieval sources for console prepare (#59), pause/resume (#60), foc2foc (#56), provider reassignment (#49), aggregation via PoDSI (#61, parked on upstream), pinning-service API ingestion (no issue yet).

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Fields

No fields configured for issues without a type.

Projects

Status
⌨️ In Progress

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions