Skip to content

Pre-1.0 stability

Current package: Chattice 0.3.5.

Stable public surface

The documented stable API is the compatibility baseline. Stable package __all__ exports and the public members listed in the public API inventory may grow additively within a minor release line. Existing names, call signatures, and documented semantics remain compatible in patch releases. Bug and security fixes may make invalid or unsafe behavior fail earlier.

Patch releases preserve this surface. Before 1.0, an incompatible change requires a minor-version bump and upgrade notes.

Experimental surface

Everything under chattice.experimental is outside the stable contract. The chattice.experimental namespace is an optional integration layer: stable core primitives remain the supported surface, while anything in the experimental namespace (for example the optional AI integration chattice.experimental.ai) can change or disappear before 1.0.

Google Developer Preview features are also explicitly opted into, for example:

from chattice import Dispatcher
from chattice.capabilities import PreviewFeature

dispatcher = Dispatcher(preview_features={PreviewFeature.REPLACE_CARDS})

The stable preview gate does not make Google's preview feature stable.

Raw and advanced surface

bot.raw.app() / bot.raw.user() expose the official async Google Chat client for the chosen identity. Event .raw preserves the incoming Google payload, and RawWidget provides a card-widget escape hatch. These are intentional, supported extension points for features the curated facade does not yet wrap. Their fields and methods follow Google's SDK, discovery schema, and wire payloads, not Chattice's stable-facade promise.

Prefer the typed facade for common operations; use raw access at a narrow application boundary and test the exact Google schema you depend on.

Version and deprecation policy

The latest pre-1.0 minor line receives normal and security fixes. Patch releases remain backward compatible. After 1.0, deprecated symbols remain available for at least one minor release cycle.

Next: 5-minute Quickstart.

Removed legacy surface (0.3.0)

The pre-0.2 outbound surface and the OutboundCapability / OutboundCapabilities facade were removed in 0.3.0. Every operation moved through the same registry-to-executor path as the resource clients; the old wrappers delegated one-way to that path, so behavior is unchanged. Migrate:

Removed Replacement
Bot.send_message / .update_message bot.app.messages.create / .update / bot.user.messages (attachments stay USER end to end)
Bot.get_message / .delete_message bot.app.messages.get / .delete
Bot.get_space / .list_spaces bot.app.spaces.get / .list
Bot.add_member / .get_member / .list_members / .remove_member bot.app.memberships.create / .get / .list / .delete
Bot.get_attachment bot.app.attachments.get_metadata / bot.app.attachments.download / bot.user.attachments.download
Bot.upload_attachment bot.user.attachments.upload
Bot.download_attachment bot.app.attachments.download / bot.user.attachments.download
Bot.raw_client await bot.raw.app() / await bot.raw.user()
Bot.capabilities / OutboundCapabilities preflight runs inside every resource call
OutboundCapability chattice.capabilities.Operation