Skip to main content

stapel-chat

CI coverage pypi downloads python license llms.txt

Conversations, messaging and support chat for the Stapel framework — a reusable Django app you mount in a host project.

One model backs three kinds of thread: direct (1:1, idempotent by participant pair), group, and support (a customer↔operator thread with a queue and assignment lifecycle). Messages carry a monotonic per-conversation seq that is the canonical anchor for history pagination and the resume cursor for realtime — so nothing depends on a socket staying up.

INSTALLED_APPS = [
    # ...
    "stapel_core.django.apps.CommonDjangoConfig",
    "stapel_core.django.users",
    "rest_framework",
    "stapel_chat",
]

# urls.py
urlpatterns = [
    path("chat/", include("stapel_chat.urls")),
]

What you get

  • ConversationsPOST /chat/api/conversations (direct / group / support); direct is get-or-create by participant pair. GET lists your conversations (anchor-paginated) with unread_count.

  • MessagesGET/POST /chat/api/conversations/{id}/messages. History is anchored on seq (newest-first, both directions). Sending allocates the next seq and emits chat.message in one transaction.

  • Read markersPOST /chat/api/conversations/{id}/read (upto_seq).

  • SupportGET /chat/api/support/queue, POST .../support/conversations/{id}/{assign,resolve,reopen}.

  • Realtime (optional)stapel_chat.consumers.ChatConsumer over Channels: hello{last_seq} → replay by seq → live delivery. Install the extra:

    pip install 'stapel-chat[channels]'
    

    and wire it behind stapel_core.django.jwt.channels.JWTAuthMiddlewareStack in your asgi.py.

Configuration (STAPEL_CHAT)

Key Default Meaning
CHAT_KINDS ["direct","group","support"] Enabled thread kinds (drop support to disable the operator queue)
ATTACHMENTS True Allow opaque attachment keys on messages
MAX_BODY_LENGTH 4000 Hard cap on a text body
SCOPE_PROVIDER stapel_chat.scope.DefaultScopeProvider Resolve/enforce the opaque scope_key (e.g. per workspace)

See MODULE.md for the extension seams, comm surface and anti-patterns.

License

MIT — see LICENSE.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

stapel_chat-0.1.8.tar.gz (46.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

stapel_chat-0.1.8-py3-none-any.whl (48.8 kB view details)

Uploaded Python 3

File details

Details for the file stapel_chat-0.1.8.tar.gz.

File metadata

  • Download URL: stapel_chat-0.1.8.tar.gz
  • Upload date:
  • Size: 46.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for stapel_chat-0.1.8.tar.gz
Algorithm Hash digest
SHA256 4e6201de0c679928dec1c3a8e0b7a332cbf6425e3a6cb4b222252ed535fe57b4
MD5 cee3ee7b11843accd661ccab008d6251
BLAKE2b-256 e0fc62e40455376ff1c4c4b530f169af5bd670b4374fed0856d6712a9b63bd8f

See more details on using hashes here.

Provenance

The following attestation bundles were made for stapel_chat-0.1.8.tar.gz:

Publisher: publish.yml on usestapel/stapel-chat

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file stapel_chat-0.1.8-py3-none-any.whl.

File metadata

  • Download URL: stapel_chat-0.1.8-py3-none-any.whl
  • Upload date:
  • Size: 48.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for stapel_chat-0.1.8-py3-none-any.whl
Algorithm Hash digest
SHA256 8e7c74f474d6c962b668a63e993affca9148a92b6906153b4bb2770c89d47917
MD5 0622cd6c9d9f7c74b3c05e8fb9d0d642
BLAKE2b-256 e02cb87ae7f03ce0f88a8a02b508a7c4505d91ef9da3a0f99a64415df4080e9c

See more details on using hashes here.

Provenance

The following attestation bundles were made for stapel_chat-0.1.8-py3-none-any.whl:

Publisher: publish.yml on usestapel/stapel-chat

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

0.10.0

2 files

0.9.3

2 files

0.9.2

2 files

0.9.1

2 files

0.9.0

2 files

0.8.6

2 files

0.8.5

2 files

0.8.4

2 files

0.8.3

2 files

0.8.2

2 files

0.8.1

2 files

0.8.0

2 files

0.7.4

2 files

0.7.3

2 files

0.7.2

2 files

0.7.0

2 files

0.6.3

2 files

0.6.2

2 files

0.6.1

2 files

0.6.0

2 files

0.5.1

2 files

0.4.0

2 files

0.3.1

2 files

0.2.3

2 files

0.2.2

2 files

0.2.1

2 files

0.2.0

2 files

0.1.9

2 files

This release

0.1.8 This release

2 files

0.1.7

2 files

0.1.6

2 files

0.1.3

2 files

0.1.2

2 files

0.1.1

2 files

0.1.0

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page