v1.3.0 — SDK file uploads, host blobs, private follow-ups
New
- SDK file uploads on slash commands. Extensions can declare
type: "attachment"options. Metadata lands oni.options.<name>; load bytes withhost.files.read(base64, up to ~20 MB) orhost.files.ingest(host-heldblobId, up to ~25 MB — preferred for large files). - Host blob pipeline for external APIs.
host.fetchacceptsbodyBlobId(send raw blob as the request body) andresponseBlob: true(store the response as a host blob). Reply/send withfiles: [{ name, blobId }]so compress-and-return (and similar) flows never put large binaries through the sandbox. - File output on replies.
i.reply/i.followUp/host.discord.sendacceptfileswithtext,contentB64, orblobId(max 10 attachments, ~25 MB total). - Private multi-step slash replies. If the first
replyisephemeral: true, laterfollowUps stay private by default (override withephemeral: falseif you need a public result).
Other
- Soft caps raised for SDK/file fetch paths (20 MB base64 / 25 MB host blobs); command sandbox memory headroom increased for base64-heavy handlers.
- Docs for slash flows and the SDK host table cover attachments, blobs, and the compress-style pipeline.
- Automated coverage in
tests/test_sdk_files.py(caps, blobs, mocked fetch, bridge ephemeral inheritance).
Install
Download the macOS .dmg (Apple Silicon) or Windows .exe below. The app is unsigned:
- macOS — clear Gatekeeper once:
xattr -dr com.apple.quarantine /Applications/Olisar.app - Windows — SmartScreen may warn; choose More info → Run anyway.
Already on 1.2.3? Open the tray → Check for Updates… (or wait for the automatic check) to install this in place.