BKN Foundry 0.1.4
Tag v0.1.4 · commit 96c6d92 · charts and images published 2026-08-27
Release lockfile: deploy/release-manifests/0.1.4/bkn-foundry.yaml
deploy.sh openbkn install --version=0.1.4Highlights
- Instance recall from natural language. Context Loader gains
search_instanceandexplore_subgraph, a knn/match dual-channel retrieval fused by RRF, and an optional cross-encoder rerank stage — an agent can now go from a question to the instances that answer it without knowing the topology first. - Platform-wide internationalization. Every Go and Python service negotiates
Accept-Language, propagates the effective locale downstream, and returns localized errors. All MCP tool schema descriptions are translated, with CI enforcing that no new hard-coded string slips in. - Authorization follows the resource hierarchy. bkn-safe declares an explicit resource hierarchy, records instance ownership, and resolves grants through it, so a grant on a catalog reaches the tables under it. The
normal_userwildcard grants over the data plane were revoked so that per-object configuration actually takes effect. - Audited management surface. Trace and the management services record unified operation facts, with Phase 4 audit coverage across the domain BKN, model, and platform management APIs.
- Chinese analysis by default. The platform OpenSearch image now bundles the IK analyzer and is the default for fresh installs.
Added
Context Loader / MCP
search_instancerecalls instances directly from natural language (#829), scoped by object type id (#1049).explore_subgraphtraverses from a starting object type by direction and hop count when the topology is unknown (#970).- Instance recall splits into knn and match channels fused by RRF (#819), with a per-channel
knn_weight(#863) and an optional cross-encoder rerank stage, default off (#838). - The reranker decides which object types a query means (#1090) and irrelevant object types are skipped (#1079); irrelevant instance batches are rejected without paying for them serially (#1069).
- Every instance score is named and results are ordered globally (#1061).
get_action_infosurfaces the action output schema (#1055).- Object queries always report
total_countand acceptsort(#964). - A dedicated
/mcp/ptcendpoint supports programmatic tool calling (#945). run_code/run_shellare exposed on the business tool surface (#992).
Authorization (bkn-safe)
- The resource hierarchy is declared and instance ownership recorded (#827); grants resolve through that hierarchy (#832) and resource enumeration understands inheritance (#839).
- Ownership pushes support a
dry_runpreview (#843). - New permission points
catalog.resource_manageandresource.query_data(#816); data tables can be authorized by the catalog that owns them (#874). - The Vega task surface, previously unauthorized, is now covered, and the table's verbs converge with the rest of the platform (#977).
Internationalization
Accept-Languagenegotiation in comm-go (#820) and locale propagation across Go services (#841), with consumers migrated (#851) and i18n resources and fallback governed centrally (#879).- Localized surfaces: bkn-safe login (#1045) and platform HTTP errors (#896), Context Loader API and MCP text (#957), agent-observability API errors (#988), mf-model-api (#873) and mf-model-manager (#865), the sandbox control plane (#1015), and bkn-backend client-facing text (#953).
- All en-US MCP schema descriptions are translated and enforced in CI (#1025); JSON and MCP resources are validated in CI (#914).
- Public error catalogs are externalized from comm-go (#912).
Observability and Trace
- Unified operation facts for 0.1.4 (#798, #830) and audited management sources (#852), closing Phase 4 management audit coverage (#944) including domain BKN management audits (#836).
- Independent manual archives (#861).
- A 0.1.4 legacy cleanup upgrade tool (#1147, #1149).
Vega and deployment
- Runtime analyzer capabilities (#787); build vectorization converged (#973); task lifecycle times unified (#878); async tasks run from database loops (#840).
- The platform OpenSearch image bakes in the IK Chinese analyzer (#1007) and is the install default (#1014).
- The sandbox image ships the BKN capability surface (#955).
- 0.1.4 release manifest (#1112).
Removed
- Legacy data view support (#797). Data sources bound to the
data_viewpath no longer work; rebind them to a resource. kafka-connectis no longer part of the release lockfile. It is absent fromdeploy/release-manifests/0.1.4/bkn-foundry.yaml.- The
normal_userwildcard grants oncatalog,resourceandknowledge_network(#895). See Upgrade Notes.
Fixed
Data correctness
- Large integers keep their precision at query boundaries (#1092), through the ontology query path (#1059), and across the BKN surface (#1075); the digests #1092 touched are reproducible again (#1100).
like/not_likeare pinned to literal substring matching, consistently across every implementation (#885, #893).- MariaDB identifiers are quoted in
SELECT,FROM,GROUP BYandORDER BY(#884). - Unsigned integers map to
unsigned_long(#867); Vega JSON numbers survive Context Loader (#859). - Self-referencing field features are normalized on the way in rather than rejected, which had made existing resources unreadable and unbuildable (#837, #883).
- Relation type queries fall back to a default branch, fixing empty source/target object types (#786).
- A relation type that cannot be vouched for is reported as absent rather than returned (#1097).
Retrieval and models
- The reranker resolves the factory's default small model instead of guessing the name
reranker(#857). - Object types rank by their own query relevance in
search_schema(#780). list_resourcesfilters by knowledge network (#782).- The embedding model ID reaches Vega from bkn-backend (#1143) and the Skill dataset is rebuilt with it (#1165).
- Default model permissions are enforced (#1094);
mf-model-apireturns 404 for a missing model (#976); LLM list latency reduced (#1063).
Authorization
- Object-level grants no longer vanish from startup permissions, and an owner can delegate the objects they created (#1135).
resource_manageimpliesview_detail(#1132).- Single-document reads are gated on
query_data(#1131);query_datanaming is unified and old-spelling object-level grants are migrated at startup (#882). - A resource owner can look up the colleague they are sharing with (#1151).
- Expired login challenges are handled (#1083); no-op department updates behave correctly (#1052).
Trace and lifecycle
- Collector timestamp pipeline and persistence repairs (#1130, #1139); receipt projection mappings initialized (#762) and candidate queries bounded.
- Trace-to-Log runtime drilldown restored (#1088); initial conversation intent preserved (#1087); Trace and Conversation lists page by identity (#1064).
- Managed lifecycle is exposed to OAuth SDKs, with owner identity derived server-side (#1089); Trace Core owns the provenance schema (#1099) and versions its self-managed MariaDB schema (#1065).
- Trace Core logs stay available on an empty projection index (#1105).
- Context Loader's managed interaction lifecycle contract, argument validation, and hosts that flatten lifecycle schemas (#1068, #1109, #1118, #1156).
Error reporting and robustness
- Unsupported operations and missing indexes report 400 rather than a service fault (#853); downstream error codes match the status code and the raw payload fallback is capped (#871); handler HTTP errors survive (#1003).
- Connection failure details are redacted before they are returned (#987); database metadata discovery is hardened (#1002) and queries guard unavailable resource metadata (#1019).
- Unusable locale resources degrade instead of panicking (#1039, #915).
- Optimistic concurrency is enforced on Vega updates (#1057); background workers shut down gracefully (#1102).
- Catalog deletion cascades safely (#802); business field and semantic metadata survive discover and build (#791, #870); discovered source descriptions stay in sync (#1082).
- An action whose parameters are instance-independent invokes its tool once (#769); the execution-log list stops dragging back per-instance results (#767).
Upgrade Notes
- Data-plane authorization is now deny-by-default for
normal_user. The wildcardcatalog/resource/knowledge_networkgrants were revoked (#895) so that per-object and per-catalog configuration is no longer overridden. Role policy rows are rebuilt fromgrants.jsonon every start, so the change takes effect on the next restart in every environment, new install or upgrade alike. Restore visibility by issuing explicit catalog-level grants — one per catalog. Capability-plane access (toolboxes, skills, MCP, operators, models, agents) is unchanged. data_querywas renamed toquery_data(#882). Role grants follow the seed automatically. Object-level grants an administrator issued under the old spelling are migrated by an idempotent startup migration, scoped by resource type so catalog-sidequery_datais untouched.- Legacy data view support was removed (#797). Any data source still bound through the
data_viewpath must be rebound to a resource before upgrading. kafka-connectleft the release lockfile. If your installation depends on it, keep it pinned separately;deploy.sh openbkn install --version=0.1.4will not manage it.- Fresh installs get the IK-enabled OpenSearch image (#1014). Existing installs are unaffected —
install_opensearchreturns early when the Helm release exists. To adopt it on an existing cluster, roll the OpenSearch StatefulSet and then restartvega-backend, whose analyzer capability table is cached withsync.Once. - Trace legacy cleanup. After upgrading Trace, run
deploy/scripts/upgrades/0.1.4/cleanup_legacy_bkn_trace_data.sh(#1147, #1149). It is idempotent, tolerates an absent legacy evidence index, and fails closed on verification.
Artifacts
All 15 component charts are published at 0.1.4 under oci://ghcr.io/openbkn-ai/charts, pinned by the release lockfile: core-data-migrator, bkn-safe, mf-model-manager, mf-model-api, vega-backend, bkn-backend, ontology-query, agent-operator-integration, oss-gateway-backend, sandbox, agent-retrieval, bkn-agent, agent-observability, otelcol-contrib, bkn-studio.