···13131414Reference differential validation:
15151616-- Run `script/differential-validate` to compare `perlds` against the official published `@atproto/pds` on a focused set of account, repo, sync, and firehose behaviors.
1616+- Run `script/differential-validate` to compare `perlds` against the official published `@atproto/pds` on a focused set of account, repo, sync, firehose, and `importRepo` snapshot-restore behaviors.
1717- Run `PERLDS_DIFF_ACCOUNT_DID_METHOD=did:plc script/differential-validate` to exercise the same harness in PLC-account mode, including recommended DID credentials, PLC signature requests, PLC handle updates, and token-gated PLC signing behavior.
1818- The helper installs the reference runtime into `.tools/reference-runtime` with Node 20 via `fnm`.
1919- Run `PERLDS_RUN_REFERENCE_DIFF=1 prove -lv t/reference-differential.t` to exercise the same harness from the test suite.
+7-1
lib/ATProto/PDS/API/Repo.pm
···177177178178 $registry->register('com.atproto.repo.importRepo', sub ($c, $endpoint) {
179179 my (undef, $account) = require_auth($c, audience => 'access', allow_refresh => 1);
180180- _xrpc_error(400, 'UnsupportedRepoImport', "Repo import is not yet supported for $account->{did}");
180180+ _xrpc_error(400, 'InvalidRequest', 'Service is not accepting repo imports')
181181+ unless $c->config_value('accepting_imports', 1);
182182+ my $car_bytes = $c->req->body // q();
183183+ _xrpc_error(400, 'InvalidRequest', 'Repo import requires a CAR payload')
184184+ unless length $car_bytes;
185185+ $c->repo_manager->import_repo_car($account, $car_bytes);
186186+ return {};
181187 });
182188}
183189