Repository navigation
v0.12.1
Calls whose requests or answers did not match the server now do (each checked live against
ghcr.io/dakera-ai/dakera:0.12.0; the v0.11.108 types are the same). The integration tests
exercise every call below against that image.
Changed (breaking for code that called it; every such call failed)
memory_link(agent_id, source_id, target_id, label): wasmemory_link(source_id, target_id, edge_type), which sent noagent_id, so the server answered422on every call.
The server always records an explicit link aslinked_by, soedge_typeis gone;
GraphLinkRequestis now{target_id, agent_id, label}.get_memory_feedback_history(memory_id, agent_id)andevaluate_tif(memory_id, agent_id):
GET /v1/memories/{id}/feedbackrequiresagent_idin the query and answered400without it.- New
ClientError::InvalidRequest(a breaking change only for exhaustivematches on
ClientError): returned before sending a request the server would refuse or not honour.
Fixed
- Graph edges: the server sends
{from_id, to_id, edge_type, weight, created_at}with no edge
id, andGraphEdgerequiredid/source_id/target_id, somemory_graph,
agent_graph_export,knowledge_queryandknowledge_exportfailed to deserialize as soon
as a graph had an edge.from_id/to_idnow fillsource_id/target_id;id,
weightandcreated_atdefault when absent. EdgeTypegainsSupersedes(the server writessupersedesedges since v0.11.100) and
Unknownfor edge types a newer server may add; either used to fail the whole answer.memory_linkparses the server's{from_id, to_id, edge_type}answer (from_id,to_id,
edge_typefields;edgeis built from them, weight 1.0). An{"edge": ...}answer is
still accepted.memory_graph: nodes carry their incoming edges (GraphNode::edges); the client collects
them intoMemoryGraph::edges, which the server does not send. Addsnode_count.
GraphNode::content_preview/importancedefault (not in the server's answer).memory_graphno longer sendstypes(the server reads onlydepthand ignored it); the
GraphOptions::typesfilter is applied to the answer, to each node's edges and to
MemoryGraph::edges. Nodes are kept.memory_pathsent?target=; the server reads?to=and answered400.hop_countfills
hops.agent_graph_export: the server always answers JSON{agent_id, namespace, node_count, edge_count, edges}(noformat/data), which failed to deserialize. Addsnamespace
andedges;formatisjson,datastays empty.memory_entities: the server answers{entities, count}withoutmemory_id, which failed
to deserialize. The client fillsmemory_idfrom the requested id; addscount.search_memories:total_foundwas always 0 becausePOST /v1/memory/searchanswers
total_count; it is read now. The recall route reports no total, sorecall()keeps 0.knowledge_graph: the server needs a seedmemory_id(422without it; now refused
client-side) and answers{root: {memory, similarity, related}, total_nodes}, which failed to
deserialize; nodes and edges are built from it.full_knowledge_graph: the{nodes, edges, clusters, stats}answer failed to deserialize; the
server's clusters and statistics are now read (cluster_info,stats).summarize: the server needs at least twomemory_ids(422) and has no dry run (it always
stores the summary), so both are refused client-side; the{summary_memory, source_count}
answer failed to deserialize and now fillssummary/new_memory_id.deduplicate: the{groups: [{canonical_id, duplicate_ids, avg_similarity}], duplicates_found, duplicates_merged}answer failed to deserialize; addsduplicate_groups.fulltext_stats:unique_terms/avg_doc_lengthfailed to deserialize.get_kpis({timestamp, kpis}),admin_cluster_replication,admin_list_slow_queries,
analytics_latency,analytics_throughputandanalytics_storagefailed to deserialize the
server's answers; their types now follow them (LatencyBucket,ThroughputDataPoint,
NamespaceStorageInfo).agent_stats,agent_sessionsandwake_up: the server sends timestamps as Unix seconds
(numbers), which failed to deserialize into strings; they are kept as decimal strings.patch_memory_importance: the answer is the updated memory (id,importance), which failed
to deserialize.create_namespace:dimensionis required by the route (422without it; now refused
client-side).index_typeandmetadataare not applied by this route (documented).export_memories:GET /v1/exportexports one agent and needsagent_id(now refused
client-side without it); the body is parsed in every format.- The integration tests now run a live graph round trip (store, link, traverse, path, export,
KG query, entities, update) against the server image.
What's Changed
Bug Fixes
- fix: calls match the server's requests and answers (dakera-client 0.12.1) @ferhimedamine (#169)
Full Changelog: v0.12.0...v0.12.1