diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 8bcbe28..62937b5 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -13,6 +13,8 @@ jobs: - uses: actions/checkout@v6 - uses: jdx/mise-action@v4 - uses: Swatinem/rust-cache@v2 + - name: ensure rustfmt/clippy components + run: rustup component add rustfmt clippy - name: check:fmt run: mise run check:fmt - name: check:rs @@ -31,12 +33,6 @@ jobs: run: mise run build:ts - name: test:integration:ts run: mise run test:integration:ts - - name: check:bench - run: cargo bench --no-run - - name: audit - run: | - cargo install cargo-audit --quiet - cargo audit generate-check: name: generated files up-to-date runs-on: ubuntu-latest diff --git a/crates/server/src/lib.rs b/crates/server/src/lib.rs index 38bd9a6..6f8a04e 100644 --- a/crates/server/src/lib.rs +++ b/crates/server/src/lib.rs @@ -357,6 +357,15 @@ pub async fn serve(config: Config) -> Result<()> { } else { Storage::new(&config.data_dir) }; + + // The `default` bucket is auto-managed: clients may PUT/GET against it + // without an explicit POST /v1/buckets. Materialize its directory so the + // write path's rename target exists. Idempotent. + storage + .create_bucket("default", beyond_objects_storage::AccessLevel::default()) + .await + .map_err(|e| anyhow::anyhow!("create default bucket: {e}"))?; + let index = Arc::new(Index::open(&config.index_dir)?); // Reconcile the listing index against the filesystem before serving. diff --git a/sdk/ts/scripts/generate-types.mjs b/sdk/ts/scripts/generate-types.mjs index aadc3a1..f8a25a7 100644 --- a/sdk/ts/scripts/generate-types.mjs +++ b/sdk/ts/scripts/generate-types.mjs @@ -9,3 +9,4 @@ const spec = resolve(root, "openapi/v1.json"); const out = resolve(root, "sdk/ts/src/types.ts"); execSync(`npx openapi-typescript ${spec} -o ${out}`, { stdio: "inherit" }); +execSync(`dprint fmt ${out}`, { stdio: "inherit", cwd: root });