Skip to content

Add memory support, release automation, and full test coverage - #22

Merged
elfominty merged 13 commits into
devfrom
feat/memory-release-coverage-support
Oct 7, 2026
Merged

elfominty merged 13 commits into
devfrom
feat/memory-release-coverage-support

Conversation

@ahmeda-cominty

@ahmeda-cominty ahmeda-cominty commented Aug 25, 2026 •

Copy link
Copy Markdown
Contributor

@coderabbitai

coderabbitai Bot commented Aug 25, 2026 •

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration
  • Configuration used: defaults
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: 7079df53-5864-4c7b-94ce-0af267d34abf

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
  • Autopilot · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@ahmeda-cominty

Copy link
Copy Markdown
Contributor Author

like that ? @elfominty

@ahmeda-cominty
ahmeda-cominty requested a review from mous222 August 25, 2026 12:01
@elfominty

elfominty commented Aug 25, 2026 •

Copy link
Copy Markdown
Collaborator

like that ? @elfominty

@ahmeda-cominty Perfect ! Thanks

@ahmeda-cominty ahmeda-cominty self-assigned this Aug 31, 2026
BREAKING CHANGE: client.memory methods no longer send user_id. Every call
(except list()) now requires a namespace, a caller-chosen bag name (max 128
chars). create()/get()/update()/delete() require it as a keyword argument;
list(namespace=None) filters when given, lists every bag when omitted.
MemoryFileOut and MemoryFileSummaryOut gain a namespace field. New
list_namespaces() lists every bag with at least one file.

chat.start() gains an optional memory_namespace kwarg that attaches the new
thread to a bag, frozen for its lifetime. chat.send() does not accept it: a
follow-up cannot change a thread's namespace.
Enable ruff's TID252 with ban-relative-imports = "parents": only
same-package, single-dot relative imports stay relative, imports reaching
into a parent package are absolute (cominty_sdk.foo) instead. Fixes
resources/*.py accordingly.

Also drops the types.EllipsisType import in resources/memory.py, which
pyright rejected under the 3.9 floor (it's 3.10+ even under TYPE_CHECKING).
Uses typeshed's synthesized "ellipsis" forward-ref instead, which needs no
import and works down to 3.9.
BREAKING CHANGE: ThreadSummary.agent (and Thread.agent) is removed. The
local API no longer returns an agent on the thread itself: verified live
against a running instance. Read the agent from each Message instead.

Message gains agent (Agent | Literal["ARCHIVED"] | None) and error_code
(str | None, e.g. "budget_exhausted"). ThreadSummary gains inception, a new
ThreadInception enum ("conversational" | "routine").

Found and confirmed via the playground scenarios against a real local
backend: chat.start and threads.list both raised a pydantic ValidationError
on the missing required `agent` field before this fix.
Bumps the python-dependencies group with 4 updates: pydantic (2.13.4 ->
2.13.5), typing-extensions (4.15.0 -> 4.16.0), pyright (1.1.411 -> 1.1.414),
ruff (0.15.14 -> 0.16.8).

ruff 0.16 formats fenced Python code blocks in Markdown files; AGENTS.md and
README.md are reformatted accordingly (double blank line before top-level
defs/classes, single space before trailing comments). No prose changed.
@elfominty
elfominty self-requested a review September 22, 2026 14:49
@elfominty

Copy link
Copy Markdown
Collaborator

Before merging and releasing, we'll need to deploy ENG-997: Add organization-scoped memory namespaces

@mous222 mous222 left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good to go

…message

ref ENG-1206

Added `max_steps` to `chat.start` and `chat.send` methods, allowing users to cap the number of tool rounds for individual messages. The parameter accepts integers `>= 1` and the sentinel `SERVER_DEFAULT` to use the server's default (currently 60). Invalid values raise `InvalidParams`. Updated documentation and examples to reflect this new feature.
Bump the version to 0.5.0 in pyproject.toml and uv.lock. Split the
CHANGELOG per release (0.2.0 to 0.5.0) from the tag history, and point
.env.example and examples/README.md at the staging base URL
https://ds-staging.cominty.com.
@elfominty
elfominty merged commit dd1e63b into dev Oct 7, 2026
6 checks passed

This branch was successfully deployed

1 active deployment
pypi — dd1e63b0 Deployed Oct 7, 2026 by elfominty via Publish to PyPI #7
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants