Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 0 additions & 11 deletions .changeset/release-traps.md

This file was deleted.

12 changes: 12 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,17 @@
# @smooai/file

## 2.2.20

### Patch Changes

- d4cb3a3: Three release and test traps that each report success while doing nothing.

**`go test ./...` served a cached pass against a corrupted fixture.** Go's build cache doesn't invalidate on a file loaded from outside the package directory, which is exactly the shape of the shared contract fixtures under `spec/`. Verified: zeroing every `sha256` and setting `headBytes` to 999 still printed `ok (cached)`. `go:test` now passes `-count=1`, and the same corruption fails immediately. Until this, the Go quarter of the five-port lazy contract proved nothing.

**`release.yml` ran `pnpm format` in write mode.** Whatever it rewrote was either swept into the release commit unreviewed, or — in publish mode, where the changesets action commits nothing — left the tree dirty for `cargo publish --locked`, which would fail every release now that `--allow-dirty` is gone. The workflow now runs `format:check`, and the formatting the release genuinely needs runs inside `pnpm run version`, before the action commits. Changesets' generated `CHANGELOG.md` is confirmed not oxfmt-clean, so without that ordering `format:check` would redden every future release PR.

**Publishing to PyPI, crates.io, NuGet and the Go tag was gated on npm having published in the same run.** If npm succeeded and a later step failed, the retry found nothing new for npm, so all four skipped — a green run that published nothing, stranding four ports on the previous release indefinitely. Each step is now gated on whether its own registry carries `package.json`'s version, so a retry ships exactly what is missing, and a final step fails the run if npm published a version the others didn't.

## 2.2.19

### Patch Changes
Expand Down
2 changes: 1 addition & 1 deletion dotnet/src/SmooAI.File.S3/SmooAI.File.S3.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
<PackageId>SmooAI.File.S3</PackageId>
<RootNamespace>SmooAI.File.S3</RootNamespace>
<AssemblyName>SmooAI.File.S3</AssemblyName>
<Version>2.2.19</Version>
<Version>2.2.20</Version>
<Description>S3 helpers for SmooAI.File — createPresignedUploadUrl, createFromS3, uploadToS3, saveToS3.</Description>
<PackageReadmeFile>README.md</PackageReadmeFile>
</PropertyGroup>
Expand Down
2 changes: 1 addition & 1 deletion dotnet/src/SmooAI.File/SmooAI.File.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
<PackageId>SmooAI.File</PackageId>
<RootNamespace>SmooAI.File</RootNamespace>
<AssemblyName>SmooAI.File</AssemblyName>
<Version>2.2.19</Version>
<Version>2.2.20</Version>
<Description>File utilities with magic-byte MIME detection (via Mime-Detective) and typed validation errors. Use SmooAI.File.S3 for S3 upload/download helpers.</Description>
<PackageReadmeFile>README.md</PackageReadmeFile>
</PropertyGroup>
Expand Down
2 changes: 1 addition & 1 deletion go/file/version.go
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package file

// Version is the current version of the smooai-file Go package.
const Version = "2.2.19"
const Version = "2.2.20"
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@smooai/file",
"version": "2.2.19",
"version": "2.2.20",
"description": "File operations that don't lie — magic-byte MIME detection catches spoofed extensions, size + content validation is built in, and presigned S3 uploads are one call away. Stream-first so large uploads don't blow your memory.",
"homepage": "https://github.com/SmooAI/file#readme",
"bugs": {
Expand Down
2 changes: 1 addition & 1 deletion python/pyproject.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[project]
name = "smooai-file"
version = "2.2.19"
version = "2.2.20"
description = "A unified file handling library for working with files from local filesystem, S3, URLs, and streams."
readme = "README.md"
authors = [{ name = "SmooAI", email = "brent@smooai.com" }]
Expand Down
2 changes: 1 addition & 1 deletion python/src/smooai_file/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
S3, URLs, and streams.
"""

__version__ = "2.2.19"
__version__ = "2.2.20"

from ._content_disposition import parse_content_disposition
from ._detection import detect_from_bytes, detect_from_extension, extension_from_mime
Expand Down
2 changes: 1 addition & 1 deletion rust/file/Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion rust/file/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "smooai-file"
version = "2.2.19"
version = "2.2.20"
edition = "2021"
description = "A unified file handling library for working with files from local filesystem, S3, URLs, and streams."
license = "MIT"
Expand Down
Loading