launch checklist: hosted web app + CLI
- Dominant language
- TypeScript
- Stars
- 1
- Forks
- 0
- Avg merge
- 5d 21h
- Merged PRs (30d)
- 1
Description
## 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
- [x] release latest to npm (#55)
- [x] 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
- [x] canonical-form CID dedupe in the console union (#58, part 1)
- [x] per-piece pull status readable from the CLI (`status` shows the local pull record; `report` stays chain truth)
- [x] 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)
- [x] 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
- [x] CLI install metrics via [@scarf/scarf](https://www.npmjs.com/package/@scarf/scarf) (dependency + README opt-outs on main; scarf.sh registered; data starts with the next npm release)
- [x] 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
- [x] 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)
- [x] flip the deployed app default network to mainnet (2861cba; the launch-invariants deploy gate now asserts mainnet on every deploy)
- [x] contact-us / feedback affordance: persistent footer link + tails on all four boundary notices, pointing at https://filecoin.cloud/contact, clicks tracked
- [x] intake validation feedback: invalid-CID count inline at paste time (`invalidCidStrings` + `InvalidCidNote`)
- [x] 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
- [x] aggregate failure summary above the per-row detail: count of unfetchable items with retry, gateway, CLI, and contact options (`FailureSummary`)
- [x] 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
- [x] 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).
Contributor guide
Assessment
This issue has not been assessed yet.