···106106107107108108very much still todo but i'm getting tired
109109-- [ ] add a `--heavy` mode that always uses `getRepo` and never `describeRepo`
109109+- [x] add a `--heavy` mode that always uses `getRepo` and never `describeRepo`
110110- [ ] resync: estimate CAR size from `getRecord` mst height; `getRepo` if it's likely very small
111111- [ ] multi-relay subscriber
112112- [ ] special did:web behaviour to keep reusing a stale resolution on failure
+6
src/main.rs
···8585 #[arg(long, action, env = "LIGHTRAIL_DEEP_CRAWL")]
8686 deep_crawl: bool,
87878888+ /// Heavy mode: always fetch the full repo CAR via getRepo for resync,
8989+ /// skipping the cheaper describeRepo fast path.
9090+ #[arg(long, action, env = "LIGHTRAIL_HEAVY")]
9191+ heavy: bool,
9292+8893 /// Max concurrent per-PDS listRepos workers during deep crawl.
8994 #[arg(
9095 long,
···186191 Duration::from_secs(args.describe_repo_fetch_timeout_secs),
187192 Duration::from_secs(args.get_repo_fetch_timeout_secs),
188193 token,
194194+ args.heavy,
189195 )
190196 .await
191197 .inspect_err(|e| warn!(error = %e, "resync exited"))
+2
src/sync/resync/describe_repo.rs
···8686 e => GetCollectionsError::Request(e.to_string()),
8787 })?;
88888989+ // TODO: extract keys from getRecord that we can check against describeRepo
9090+8991 let reader = tokio::io::BufReader::new(std::io::Cursor::new(output.body));
9092 let mut mem_car = DriverBuilder::new()
9193 .with_mem_limit_mb(GET_RECORD_MEM_LIMIT_MB)