From 68e2710648106d8f5c95ec340d361722f2a311f0 Mon Sep 17 00:00:00 2001 From: vilenarios Date: Mon, 26 Oct 2026 22:53:00 -0400 Subject: [PATCH 1/2] chore: staging publishes with a viewer that has publication mode staging pinned the production viewer (2.90.0), which predates publication mode, so every page published from staging opened on the sign-in screen. staging now pins a build of dev uploaded by 'staging build to arweave' (run 40439644974, dev 59c0ef04f), with configVersion bumped so stored configs pick it up. production is unchanged. Co-Authored-By: Claude Opus 5.5 Claude-Session: https://claude.ai/code/session_015ci1GgKQDUyRt4PcQfdEZy --- assets/config/staging.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/assets/config/staging.json b/assets/config/staging.json index d48a59bad..98cdb4b86 100644 --- a/assets/config/staging.json +++ b/assets/config/staging.json @@ -1,5 +1,5 @@ { - "configVersion": 4, + "configVersion": 5, "defaultArweaveGatewayUrl": "https://turbo-gateway.com", "defaultArweaveGatewayForDataRequest": { "label": "Turbo Gateway", @@ -12,7 +12,7 @@ "allowedDataItemSizeForTurbo": 100000, "stripePublishableKey": "pk_live_51JUAtwC8apPOWkDLMQqNF9sPpfneNSPnwX8YZ8y1FNDl6v94hZIwzgFSYl27bWE4Oos8CLquunUswKrKcaDhDO6m002Yj9AeKj", "enableSyncFromDriveState": true, - "publicationViewer": "ardrive", + "publicationViewer": "zW-6ZxX-hWnMndFC4twsBpFuHADb6jUQpmh1lb2sU_M", "publicationGatewayUrl": "https://ardrive.net", "enableDriveStatePublishing": true, "uploadThumbnails": true, From 387c9757248f22b4e9baa642c598107f85600b9b Mon Sep 17 00:00:00 2001 From: vilenarios Date: Mon, 26 Oct 2026 23:09:47 -0400 Subject: [PATCH 2/2] docs: staging pins its own viewer, production follows ardrive Co-Authored-By: Claude Opus 5.5 Claude-Session: https://claude.ai/code/session_015ci1GgKQDUyRt4PcQfdEZy --- docs/PUBLICATIONS.md | 19 ++++++++++++------- lib/services/config/app_config.dart | 8 +++++--- 2 files changed, 17 insertions(+), 10 deletions(-) diff --git a/docs/PUBLICATIONS.md b/docs/PUBLICATIONS.md index 181c1b6ef..cb7d8e509 100644 --- a/docs/PUBLICATIONS.md +++ b/docs/PUBLICATIONS.md @@ -224,13 +224,18 @@ serving it and the gateway it detected, nothing else. manifest ID (`x-arns-resolved-id`) with a plain HTTP read through ardrive.net. That needs no wallet, so it works before names do in the app (see [Names](#names)). -- Production sets `ardrive`, the name the production deploy moves. Staging has - no name and pushes to `dev` never upload to Arweave, so the staging and - development configs also use `ardrive`: a page published from staging pins - the current production release. To try a viewer built from a branch, run - *Staging build to Arweave* (`staging-arweave.yaml`) and put the manifest ID - from its job summary in the stored config (`flutter.config` in local - storage). The phase 1 test-page tool takes a manifest ID directly. +- Production sets `ardrive`, the name the production deploy moves, and the + development config uses it too. +- Staging has no name, and pushes to `dev` never upload to Arweave. So + `staging.json` pins a fixed manifest ID: a build of `dev` uploaded by + *Staging build to Arweave* (`staging-arweave.yaml`). Pages published from + staging open with that viewer. To move staging to a newer build, run the + workflow again and put the new ID in `staging.json` with a `configVersion` + bump. +- To try a viewer built from a branch, run the same workflow on that branch + and put the manifest ID from its job summary in your stored config + (`flutter.config` in local storage). The phase 1 test-page tool takes a + manifest ID directly. - CI warms the bundle after each deploy by reading every file once through turbo-gateway.com and ardrive.net. diff --git a/lib/services/config/app_config.dart b/lib/services/config/app_config.dart index cc6f5a1a4..46ca2c186 100644 --- a/lib/services/config/app_config.dart +++ b/lib/services/config/app_config.dart @@ -53,9 +53,11 @@ class AppConfig { /// The ArDrive release a new publication runs (docs/PUBLICATIONS.md, "The /// viewer bundle"): a release manifest's transaction ID as it is, or an - /// ArNS name, read through the gateway for the release it points at. Every - /// flavour uses `ardrive`, the production release, so a publication made - /// anywhere opens the way it will for everyone. + /// ArNS name, read through the gateway for the release it points at. + /// Production and development use `ardrive`, the production release. + /// Staging pins a fixed manifest ID of a dev build uploaded by *Staging + /// build to Arweave*, so pages published from staging open with the viewer + /// being tested. final String publicationViewer; /// The one gateway every publication is on, whatever the data gateway