Skip to content

v1.9.0 — name-resolution across every entity tool (72 tools)

Choose a tag to compare

@dm1tryG dm1tryG released this 23 May 20:12
· 90 commits to main since this release
pip install --upgrade clibo

The headline change

13 entity tools now uniformly accept either an integer ID or a fuzzy name on every mutating subcommand. The integer-ID barrier that blocked natural agent flows like "Bob got promoted" is gone.

clibo crm edit Bob -c "Acme Corp"          # was: required CONTACT_ID
clibo brag rm "auth refactor"              # was: required ACHIEVEMENT_ID
clibo cv achieve "Staff Engineer" "Led the migration to events"
clibo birthdays edit Dad -d "March 15"     # was: no edit existed
clibo network edit Sarah -c Stripe         # was: no edit existed
clibo jobs move Stripe interviewing
clibo plants edit Basil -l kitchen
clibo gifts bought Anna                    # picks the most-recent gift
clibo followup done Alice                  # picks the pending one
clibo pets edit Whiskers --breed "Maine Coon"

Tools covered: books, crm, clients, jobs, followup, plants, pets, network, leads, gifts, birthdays, brag, cv.

How it works

A new lookup_by_id_or_name(db, model, ident, field) helper in clibo/core/base.py standardises the resolution:

  1. Numeric ident → db.get(Model, int(ident))
  2. Otherwise, case-insensitive exact match on field
  3. Falls back to case-insensitive substring match

So clibo crm show Smith finds Bob Smith, and integer IDs still work everywhere — fully backward-compatible.

Other goodies

  • pets log SUMMARY is now optional — defaults to the kind name so pets log Whiskers vet doesn't demand a fabricated description.
  • Two brand-new edit subcommands where none existed before: network edit and birthdays edit. Fix that "wrong date" or "joined Stripe" without manually re-creating the row.
  • Many-to-one resolution for gifts: when a recipient has multiple gifts, gifts bought Anna picks the most-recently-added one.

Tests: 770 passing (+36 since v1.8.0). Ruff clean. Tool count unchanged at 72.