Skip to content

Releases: MontyGovernance/montycat_python

v1.1.2

Choose a tag to compare

@EugeneAndMonty EugeneAndMonty released this 30 Jul 14:02

[1.1.2] - 2026-07-29

Fixes a hang that affects any request whose payload contains the word
subscribe. Upgrade from 1.1.1 is recommended.

Fixed

  • A request whose value contained the substring subscribe never returned.
    Subscription mode was detected with b"subscribe" in query, so a call like
    insert_value({"note": "please subscribe"}) was routed into the streaming
    branch — which has no read timeout and loops forever. Any record mentioning
    the word was affected, unsubscribe included.

    A request is now a subscription because the caller supplied a callback. That
    was always the real distinction — _run_query already chose the subscription
    port on exactly that basis — so the two signals can no longer disagree.
    Intent is no longer inferred from user data.

    Present in every release before this one. The Rust and Dart clients carry the
    same defect and are fixed in their matching releases; the Node client was
    already correct.

v1.1.1

Choose a tag to compare

@EugeneAndMonty EugeneAndMonty released this 29 Jul 15:44
56eda1d

[1.1.1] - 2026-07-29

Documentation, tests, and CI only — no library code changed, so upgrading from
1.1.0 is optional.

Added

  • README sections for behavior that was previously undocumented: response shape
    ({"status", "payload", "error"} and u128 keys arriving as strings),
    real-time subscriptions returning (task, stop_event) on the port + 1
    subscription port, TLS via tls=True, and owner/access management with
    create_owner, grant_to, revoke_from, and Permission.
  • CI now installs the package and runs the test suite on Python 3.10 through
    3.13. The test job previously ran only a packaging dry run, so no test had
    ever executed in CI.
  • Changelog link in the README.

Changed

  • Declared Python support is now 3.10+, corrected from 3.9+. The package has
    never been importable on 3.9: core/schema.py and store_classes/kv.py both
    import types.UnionType at module scope, which was added in 3.10, so any 3.9
    install failed with ImportError on the first import montycat. The metadata
    and the README FAQ advertised a version that never worked. Nothing that
    currently runs is affected, and 3.9 reached end of life in October 2025.
  • The CI packaging dry run moved into its own package job, and the release job
    now depends on both test and package.

Fixed

  • The governance section omitted the storage-type and semantic-model constraint
    bullets and the policy_explain / policy_history paragraph that the Dart,
    Node, and Rust clients document.

v1.1.0 - data mesh

Choose a tag to compare

@EugeneAndMonty EugeneAndMonty released this 29 Jul 04:23
5351124

[1.1.0] - 2026-07-28

Added

  • Data-mesh governance policy API on Engine:
    • inspection — policy_view, policy_history, policy_explain, policy_export
    • mutation — policy_grant, policy_revoke, policy_deny, policy_remove_denial
    • dry runs — policy_preview_grant, policy_preview_revoke
    • manifests — policy_validate, policy_plan, policy_apply (JSON or YAML documents)
  • New enums, exported from the package root: PolicyCapability, PolicyKeyspaceType,
    SemanticModel, PolicyFormat.
  • keyspace= on enable_semantic_search / disable_semantic_search, for enrolling or
    dropping a single keyspace instead of the whole store. Raises ValueError when a
    keyspace is given without a store.

Changed

  • grant_to and revoke_from normalize the permission token (strip + lowercase), so
    " ALL " and "WrItE" are accepted and Permission enum members serialize correctly
    instead of reaching the wire as Permission.ALL.
  • policy_explain and the policy mutations drop keyspace for
    PolicyCapability.PROVISION_KEYSPACE, which is a store-level capability.
  • Policy qualifiers are capability-specific: models/model apply to
    PROVISION_KEYSPACE and MANAGE_SEMANTIC; storage-type qualifiers apply to
    keyspace-scoped capabilities except MANAGE_SNAPSHOTS, where in-memory storage is
    implicit. Invalid combinations raise ValueError before a command is sent.

Breaking

  • enable_semantic_search(model=...) now takes a SemanticModel, not a str. Passing a
    string raises AttributeError.

    # before
    await engine.enable_semantic_search(model="bge-small")
    
    # now
    from montycat import SemanticModel
    await engine.enable_semantic_search(model=SemanticModel.BGE_SMALL)

Internal

  • Added tests/test_governance_response_contract.py — offline unit tests covering
    governance error/payload preservation through recursive_parse_orjson and permission
    token normalization. Not part of the distributed package.

v1.1.7

Choose a tag to compare

@EugeneAndMonty EugeneAndMonty released this 21 Jul 04:54
08dd332
Merge pull request #8 from MontyGovernance/semantic_ranking

Semantic ranking

v1.0.6

Choose a tag to compare

@EugeneAndMonty EugeneAndMonty released this 19 Jul 19:41
145d133
Merge pull request #7 from MontyGovernance/added_methods

semantic resp structure - version

v1.0.5

Choose a tag to compare

@EugeneAndMonty EugeneAndMonty released this 19 Jul 03:22
f9ed043
Merge pull request #6 from MontyGovernance/added_methods

Added methods

v1.0.4

Choose a tag to compare

@EugeneAndMonty EugeneAndMonty released this 12 May 14:13
chore: update version to 1.0.4 in build_and_push.sh and setup.py

v1.0.3-stable

Choose a tag to compare

@EugeneAndMonty EugeneAndMonty released this 10 Mar 18:25
cf86222
Merge pull request #4 from MontyGovernance/args

Args

v1.0.2

Choose a tag to compare

@EugeneAndMonty EugeneAndMonty released this 19 Feb 17:10
get bulk by vol

v1.0.1

Choose a tag to compare

@EugeneAndMonty EugeneAndMonty released this 05 Feb 16:47

Nullable Fields added to Schema