mirror of
https://github.com/block/buzz.git
synced 2026-10-28 13:01:10 +00:00
Merge origin/main into micn/buzz-agent-goose-core
Co-authored-by: Jimmy <1fe240cd1a8cf775f6f3060f115e5a303181f3abf28ad4cb0c2515f4a02b36a8@meshllm.communities.buzz.xyz> Signed-off-by: Jimmy <1fe240cd1a8cf775f6f3060f115e5a303181f3abf28ad4cb0c2515f4a02b36a8@meshllm.communities.buzz.xyz>
This commit is contained in:
@@ -16,12 +16,12 @@ BEGIN
|
||||
) THEN
|
||||
-- pgschema may copy parent triggers onto standalone children. Drop
|
||||
-- those copies before ATTACH; PostgreSQL recreates inherited parent
|
||||
-- triggers while attaching and rejects same-named child triggers
|
||||
-- (both the push-match trigger and the replica-fence floor guard).
|
||||
-- triggers while attaching and rejects same-named child triggers.
|
||||
DROP TRIGGER IF EXISTS events_enqueue_push_match ON events_p_past;
|
||||
DROP TRIGGER IF EXISTS events_refresh_channel_ttl ON events_p_past;
|
||||
DROP TRIGGER IF EXISTS events_created_at_floor ON events_p_past;
|
||||
DROP TRIGGER IF EXISTS community_write_fence_events ON events_p_past;
|
||||
DROP TRIGGER IF EXISTS trg_events_guard_channel_roster_snapshot ON events_p_past;
|
||||
ALTER TABLE events ATTACH PARTITION events_p_past
|
||||
FOR VALUES FROM (MINVALUE) TO ('2026-01-01');
|
||||
END IF;
|
||||
@@ -35,6 +35,7 @@ BEGIN
|
||||
DROP TRIGGER IF EXISTS events_refresh_channel_ttl ON events_p2026_01;
|
||||
DROP TRIGGER IF EXISTS events_created_at_floor ON events_p2026_01;
|
||||
DROP TRIGGER IF EXISTS community_write_fence_events ON events_p2026_01;
|
||||
DROP TRIGGER IF EXISTS trg_events_guard_channel_roster_snapshot ON events_p2026_01;
|
||||
ALTER TABLE events ATTACH PARTITION events_p2026_01
|
||||
FOR VALUES FROM ('2026-01-01') TO ('2026-02-01');
|
||||
END IF;
|
||||
@@ -48,6 +49,7 @@ BEGIN
|
||||
DROP TRIGGER IF EXISTS events_refresh_channel_ttl ON events_p2026_02;
|
||||
DROP TRIGGER IF EXISTS events_created_at_floor ON events_p2026_02;
|
||||
DROP TRIGGER IF EXISTS community_write_fence_events ON events_p2026_02;
|
||||
DROP TRIGGER IF EXISTS trg_events_guard_channel_roster_snapshot ON events_p2026_02;
|
||||
ALTER TABLE events ATTACH PARTITION events_p2026_02
|
||||
FOR VALUES FROM ('2026-02-01') TO ('2026-03-01');
|
||||
END IF;
|
||||
@@ -61,6 +63,7 @@ BEGIN
|
||||
DROP TRIGGER IF EXISTS events_refresh_channel_ttl ON events_p2026_03;
|
||||
DROP TRIGGER IF EXISTS events_created_at_floor ON events_p2026_03;
|
||||
DROP TRIGGER IF EXISTS community_write_fence_events ON events_p2026_03;
|
||||
DROP TRIGGER IF EXISTS trg_events_guard_channel_roster_snapshot ON events_p2026_03;
|
||||
ALTER TABLE events ATTACH PARTITION events_p2026_03
|
||||
FOR VALUES FROM ('2026-03-01') TO ('2026-04-01');
|
||||
END IF;
|
||||
@@ -74,6 +77,7 @@ BEGIN
|
||||
DROP TRIGGER IF EXISTS events_refresh_channel_ttl ON events_p2026_04;
|
||||
DROP TRIGGER IF EXISTS events_created_at_floor ON events_p2026_04;
|
||||
DROP TRIGGER IF EXISTS community_write_fence_events ON events_p2026_04;
|
||||
DROP TRIGGER IF EXISTS trg_events_guard_channel_roster_snapshot ON events_p2026_04;
|
||||
ALTER TABLE events ATTACH PARTITION events_p2026_04
|
||||
FOR VALUES FROM ('2026-04-01') TO ('2026-05-01');
|
||||
END IF;
|
||||
@@ -87,6 +91,7 @@ BEGIN
|
||||
DROP TRIGGER IF EXISTS events_refresh_channel_ttl ON events_p2026_05;
|
||||
DROP TRIGGER IF EXISTS events_created_at_floor ON events_p2026_05;
|
||||
DROP TRIGGER IF EXISTS community_write_fence_events ON events_p2026_05;
|
||||
DROP TRIGGER IF EXISTS trg_events_guard_channel_roster_snapshot ON events_p2026_05;
|
||||
ALTER TABLE events ATTACH PARTITION events_p2026_05
|
||||
FOR VALUES FROM ('2026-05-01') TO ('2026-06-01');
|
||||
END IF;
|
||||
@@ -100,6 +105,7 @@ BEGIN
|
||||
DROP TRIGGER IF EXISTS events_refresh_channel_ttl ON events_p2026_06;
|
||||
DROP TRIGGER IF EXISTS events_created_at_floor ON events_p2026_06;
|
||||
DROP TRIGGER IF EXISTS community_write_fence_events ON events_p2026_06;
|
||||
DROP TRIGGER IF EXISTS trg_events_guard_channel_roster_snapshot ON events_p2026_06;
|
||||
ALTER TABLE events ATTACH PARTITION events_p2026_06
|
||||
FOR VALUES FROM ('2026-06-01') TO ('2026-07-01');
|
||||
END IF;
|
||||
@@ -113,6 +119,7 @@ BEGIN
|
||||
DROP TRIGGER IF EXISTS events_refresh_channel_ttl ON events_p_future;
|
||||
DROP TRIGGER IF EXISTS events_created_at_floor ON events_p_future;
|
||||
DROP TRIGGER IF EXISTS community_write_fence_events ON events_p_future;
|
||||
DROP TRIGGER IF EXISTS trg_events_guard_channel_roster_snapshot ON events_p_future;
|
||||
ALTER TABLE events ATTACH PARTITION events_p_future
|
||||
FOR VALUES FROM ('2026-07-01') TO (MAXVALUE);
|
||||
END IF;
|
||||
|
||||
42
scripts/check-push-head-scope.sh
Executable file
42
scripts/check-push-head-scope.sh
Executable file
@@ -0,0 +1,42 @@
|
||||
#!/usr/bin/env bash
|
||||
# Pre-push scope signal (warn-only, never fails the push).
|
||||
#
|
||||
# The scoped pre-push lanes derive their file set from `git diff origin/main...HEAD`,
|
||||
# and lefthook's own stock discovery is `git diff HEAD @{push}` — both inspect the
|
||||
# checked-out HEAD, not the SHAs actually being pushed. Pushing a non-checked-out
|
||||
# ref (e.g. `git push origin other-branch`, an explicit refspec, or `--all`) can
|
||||
# therefore run the scoped lanes against HEAD while pushing a different commit, so
|
||||
# the pushed ref's path-scoped checks are only exercised by CI.
|
||||
#
|
||||
# This lane reads the pre-push stdin refspecs and prints a loud, non-fatal warning
|
||||
# naming each pushed ref whose commit is not the checked-out HEAD. It never blocks
|
||||
# the push; CI remains the authoritative gate for a non-HEAD ref.
|
||||
#
|
||||
# Stdin format (one line per ref, git-provided):
|
||||
# <local_ref> <local_sha> <remote_ref> <remote_sha>
|
||||
set -euo pipefail
|
||||
|
||||
head_sha=$(git rev-parse HEAD 2>/dev/null) || exit 0
|
||||
|
||||
divergent=""
|
||||
while read -r local_ref local_sha remote_ref remote_sha; do
|
||||
# Empty stdin (up-to-date push with no refs) or malformed line: skip.
|
||||
[ -n "${local_sha:-}" ] || continue
|
||||
# Deletion push (local sha is all-zeros): nothing built locally to validate.
|
||||
case "$local_sha" in *[!0]*) : ;; *) continue ;; esac
|
||||
# Pushed commit equals the checked-out HEAD: scoped lanes validated it.
|
||||
[ "$local_sha" = "$head_sha" ] && continue
|
||||
divergent="${divergent} ${local_ref:-?} -> ${remote_ref:-?} ($(git rev-parse --short "$local_sha" 2>/dev/null || echo "$local_sha"))
|
||||
"
|
||||
done
|
||||
|
||||
if [ -n "$divergent" ]; then
|
||||
{
|
||||
echo "Pushing commits that are not the checked-out HEAD:"
|
||||
printf '%s' "$divergent"
|
||||
echo "Local scoped lanes validated HEAD only; these refs rely on CI for"
|
||||
echo "path-scoped checks. This is a warning, not a failure."
|
||||
} >&2
|
||||
fi
|
||||
|
||||
exit 0
|
||||
@@ -8,7 +8,8 @@
|
||||
},
|
||||
"family_tokens": [
|
||||
"claude-",
|
||||
"gpt-"
|
||||
"gpt-",
|
||||
"kimi-"
|
||||
],
|
||||
"family_rules": [
|
||||
{
|
||||
@@ -371,6 +372,24 @@
|
||||
"databricks_v2_wire_route": "openai-responses",
|
||||
"normalization_policy": "openai-standard"
|
||||
},
|
||||
{
|
||||
"id": "dbv2-kimi-k3-exact",
|
||||
"_comment": "Databricks Kimi K3 aliases share the exact record's upstream Moonshot capabilities. Kimi is absent from the Databricks models.dev catalog, so retain the established MLflow Chat route; upstream models.dev advertises a reasoning toggle and effort values low|high|max, with no documented default. The toggle is not representable on the MLflow Chat request schema (only reasoning_effort is), so thinking_mode stays none, matching the kimi-k2-7-code precedent.",
|
||||
"match_kind": "exact",
|
||||
"match_value": "kimi-k3",
|
||||
"providers": [
|
||||
"databricks_v2"
|
||||
],
|
||||
"thinking_mode": "none",
|
||||
"supported_efforts": [
|
||||
"low",
|
||||
"high",
|
||||
"max"
|
||||
],
|
||||
"default_effort": null,
|
||||
"databricks_v2_wire_route": "mlflow-chat",
|
||||
"normalization_policy": "openai-standard"
|
||||
},
|
||||
{
|
||||
"id": "dbv2-claude-prefix",
|
||||
"_comment": "DBv2-only broad Claude prefix. Replaces the routing role of the dropped dbv2-claude-code-names-segment 'claude' token: uncurated databricks-claude-* endpoints still route via Anthropic Messages with conservative (omit-fields) effort classification. Bare code-name segments without a leading 'claude-' (e.g. opus-5, goose-opus-5) are deliberately dropped and fall through to the databricks_v2 concrete-unknown fallback (mlflow-chat) — segment-anywhere matching is not expressible as a prefix.",
|
||||
@@ -436,6 +455,78 @@
|
||||
"_reconciliation_note": "models.dev advertises low|medium|high. Same as gpt-5-4-mini. Adopt.",
|
||||
"_reconciliation_doc": "https://models.dev/api.json (retrieved 2026-07-31, SHA-256 d5a4974cd69f19b0f67713acaa6bb3b16e920defdc07ecbdf6b0a936181bb0e0): providers.databricks.models[\"databricks-gpt-5-4-nano\"].reasoning_options=[{\"type\":\"effort\",\"values\":[\"low\",\"medium\",\"high\"]}]"
|
||||
},
|
||||
{
|
||||
"provider": "databricks_v2",
|
||||
"raw_model_id": "databricks-claude-fable-5",
|
||||
"registry_label": "Claude Fable 5",
|
||||
"thinking_mode": "adaptive",
|
||||
"supported_efforts": [
|
||||
"low",
|
||||
"medium",
|
||||
"high",
|
||||
"xhigh",
|
||||
"max"
|
||||
],
|
||||
"default_effort": "high",
|
||||
"databricks_v2_wire_route": "anthropic-messages",
|
||||
"normalization_policy": "none",
|
||||
"_provenance": "all axes materialized from family:anthropic-adaptive-xhigh-fable-5",
|
||||
"_source": "models.dev anthropic catalog label; Databricks workspace endpoint is absent from its provider catalog"
|
||||
},
|
||||
{
|
||||
"provider": "databricks_v2",
|
||||
"raw_model_id": "databricks-claude-opus-4-8",
|
||||
"registry_label": "Claude Opus 4.8",
|
||||
"thinking_mode": "adaptive",
|
||||
"supported_efforts": [
|
||||
"low",
|
||||
"medium",
|
||||
"high",
|
||||
"xhigh",
|
||||
"max"
|
||||
],
|
||||
"default_effort": "high",
|
||||
"databricks_v2_wire_route": "anthropic-messages",
|
||||
"normalization_policy": "none",
|
||||
"_provenance": "all axes materialized from family:anthropic-adaptive-xhigh-opus-4-8",
|
||||
"_source": "models.dev anthropic catalog label; Databricks workspace endpoint is absent from its provider catalog"
|
||||
},
|
||||
{
|
||||
"provider": "databricks_v2",
|
||||
"raw_model_id": "databricks-claude-opus-5",
|
||||
"registry_label": "Claude Opus 5",
|
||||
"thinking_mode": "adaptive",
|
||||
"supported_efforts": [
|
||||
"low",
|
||||
"medium",
|
||||
"high",
|
||||
"xhigh",
|
||||
"max"
|
||||
],
|
||||
"default_effort": "high",
|
||||
"databricks_v2_wire_route": "anthropic-messages",
|
||||
"normalization_policy": "none",
|
||||
"_provenance": "all axes materialized from family:anthropic-adaptive-xhigh-opus-5",
|
||||
"_source": "models.dev anthropic catalog label; Databricks workspace endpoint is absent from its provider catalog"
|
||||
},
|
||||
{
|
||||
"provider": "databricks_v2",
|
||||
"raw_model_id": "databricks-claude-sonnet-5",
|
||||
"registry_label": "Claude Sonnet 5",
|
||||
"thinking_mode": "adaptive",
|
||||
"supported_efforts": [
|
||||
"low",
|
||||
"medium",
|
||||
"high",
|
||||
"xhigh",
|
||||
"max"
|
||||
],
|
||||
"default_effort": "high",
|
||||
"databricks_v2_wire_route": "anthropic-messages",
|
||||
"normalization_policy": "none",
|
||||
"_provenance": "all axes materialized from family:anthropic-adaptive-xhigh-sonnet-5",
|
||||
"_source": "models.dev anthropic catalog label; Databricks workspace endpoint is absent from its provider catalog"
|
||||
},
|
||||
{
|
||||
"provider": "databricks_v2",
|
||||
"raw_model_id": "databricks-gpt-5-6-sol",
|
||||
@@ -932,6 +1023,25 @@
|
||||
"_provenance": "all axes materialized from provider fallback (databricks_v2/concrete_unknown)",
|
||||
"_source": "registry_labels"
|
||||
},
|
||||
{
|
||||
"provider": "databricks_v2",
|
||||
"raw_model_id": "databricks-kimi-k3",
|
||||
"registry_label": "Kimi K3",
|
||||
"thinking_mode": "none",
|
||||
"supported_efforts": [
|
||||
"low",
|
||||
"high",
|
||||
"max"
|
||||
],
|
||||
"default_effort": null,
|
||||
"databricks_v2_wire_route": "mlflow-chat",
|
||||
"normalization_policy": "openai-standard",
|
||||
"_provenance": "databricks_v2_wire_route: provider fallback (databricks_v2/concrete_unknown); thinking_mode+supported_efforts: models.dev Moonshot Kimi K3 catalog; default_effort: no documented default",
|
||||
"_source": "models.dev Moonshot Kimi K3 reasoning_options: toggle + low|high|max",
|
||||
"_reconciliation": "adopt",
|
||||
"_reconciliation_note": "models.dev advertises toggleable reasoning with [low, high, max], but no default. The Databricks endpoint is absent from its provider catalog, so retain the established MLflow Chat route, adopt the upstream capability set, and leave the effort unset rather than invent a Databricks default. The MLflow Chat request schema cannot express a reasoning toggle (only reasoning_effort is representable), so thinking_mode maps to none rather than the upstream toggle, matching the kimi-k2-7-code precedent.",
|
||||
"_reconciliation_doc": "https://models.dev/api.json (retrieved 2026-08-20, SHA-256 7ccb5635f682e4248ad8d39f515fbe3f2bb10e67bbc7fa1b94e66dddb00779e5): providers.moonshotai.models[\"kimi-k3\"].reasoning_options=[{\"type\":\"toggle\"},{\"type\":\"effort\",\"values\":[\"low\",\"high\",\"max\"]}]; Databricks endpoint absent from providers.databricks.models"
|
||||
},
|
||||
{
|
||||
"provider": "databricks_v2",
|
||||
"raw_model_id": "databricks-kimi-k2-7-code",
|
||||
|
||||
@@ -680,6 +680,202 @@
|
||||
"registry_label": "GPT-5.4 mini"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "dbv2-claude-fable-5-exact-record-probe",
|
||||
"provider": "databricks_v2",
|
||||
"raw_model_id": "databricks-claude-fable-5",
|
||||
"_note": "Probes the canonical Databricks Fable 5 endpoint record.",
|
||||
"expect": {
|
||||
"thinking_mode": "adaptive",
|
||||
"supported_efforts": [
|
||||
"low",
|
||||
"medium",
|
||||
"high",
|
||||
"xhigh",
|
||||
"max"
|
||||
],
|
||||
"default_effort": "high",
|
||||
"databricks_v2_wire_route": "anthropic-messages",
|
||||
"normalization_policy": "none",
|
||||
"registry_label": "Claude Fable 5"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "dbv2-goose-claude-fable-5-alias-probe",
|
||||
"provider": "databricks_v2",
|
||||
"raw_model_id": "goose-claude-fable-5",
|
||||
"_note": "Probes a prefixed alias of the Databricks Fable 5 endpoint.",
|
||||
"expect": {
|
||||
"thinking_mode": "adaptive",
|
||||
"supported_efforts": [
|
||||
"low",
|
||||
"medium",
|
||||
"high",
|
||||
"xhigh",
|
||||
"max"
|
||||
],
|
||||
"default_effort": "high",
|
||||
"databricks_v2_wire_route": "anthropic-messages",
|
||||
"normalization_policy": "none",
|
||||
"registry_label": null
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "dbv2-claude-opus-4-8-exact-record-probe",
|
||||
"provider": "databricks_v2",
|
||||
"raw_model_id": "databricks-claude-opus-4-8",
|
||||
"_note": "Probes the canonical Databricks Opus 4.8 endpoint record.",
|
||||
"expect": {
|
||||
"thinking_mode": "adaptive",
|
||||
"supported_efforts": [
|
||||
"low",
|
||||
"medium",
|
||||
"high",
|
||||
"xhigh",
|
||||
"max"
|
||||
],
|
||||
"default_effort": "high",
|
||||
"databricks_v2_wire_route": "anthropic-messages",
|
||||
"normalization_policy": "none",
|
||||
"registry_label": "Claude Opus 4.8"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "dbv2-goose-claude-opus-4-8-alias-probe",
|
||||
"provider": "databricks_v2",
|
||||
"raw_model_id": "goose-claude-opus-4-8",
|
||||
"_note": "Probes a prefixed alias of the Databricks Opus 4.8 endpoint.",
|
||||
"expect": {
|
||||
"thinking_mode": "adaptive",
|
||||
"supported_efforts": [
|
||||
"low",
|
||||
"medium",
|
||||
"high",
|
||||
"xhigh",
|
||||
"max"
|
||||
],
|
||||
"default_effort": "high",
|
||||
"databricks_v2_wire_route": "anthropic-messages",
|
||||
"normalization_policy": "none",
|
||||
"registry_label": null
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "dbv2-claude-opus-5-exact-record-probe",
|
||||
"provider": "databricks_v2",
|
||||
"raw_model_id": "databricks-claude-opus-5",
|
||||
"_note": "Probes the canonical Databricks Opus 5 endpoint record.",
|
||||
"expect": {
|
||||
"thinking_mode": "adaptive",
|
||||
"supported_efforts": [
|
||||
"low",
|
||||
"medium",
|
||||
"high",
|
||||
"xhigh",
|
||||
"max"
|
||||
],
|
||||
"default_effort": "high",
|
||||
"databricks_v2_wire_route": "anthropic-messages",
|
||||
"normalization_policy": "none",
|
||||
"registry_label": "Claude Opus 5"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "dbv2-goose-claude-opus-5-alias-probe",
|
||||
"provider": "databricks_v2",
|
||||
"raw_model_id": "goose-claude-opus-5",
|
||||
"_note": "Probes a prefixed alias of the Databricks Opus 5 endpoint.",
|
||||
"expect": {
|
||||
"thinking_mode": "adaptive",
|
||||
"supported_efforts": [
|
||||
"low",
|
||||
"medium",
|
||||
"high",
|
||||
"xhigh",
|
||||
"max"
|
||||
],
|
||||
"default_effort": "high",
|
||||
"databricks_v2_wire_route": "anthropic-messages",
|
||||
"normalization_policy": "none",
|
||||
"registry_label": null
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "dbv2-claude-sonnet-5-exact-record-probe",
|
||||
"provider": "databricks_v2",
|
||||
"raw_model_id": "databricks-claude-sonnet-5",
|
||||
"_note": "Probes the canonical Databricks Sonnet 5 endpoint record.",
|
||||
"expect": {
|
||||
"thinking_mode": "adaptive",
|
||||
"supported_efforts": [
|
||||
"low",
|
||||
"medium",
|
||||
"high",
|
||||
"xhigh",
|
||||
"max"
|
||||
],
|
||||
"default_effort": "high",
|
||||
"databricks_v2_wire_route": "anthropic-messages",
|
||||
"normalization_policy": "none",
|
||||
"registry_label": "Claude Sonnet 5"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "dbv2-goose-claude-sonnet-5-alias-probe",
|
||||
"provider": "databricks_v2",
|
||||
"raw_model_id": "goose-claude-sonnet-5",
|
||||
"_note": "Probes a prefixed alias of the Databricks Sonnet 5 endpoint.",
|
||||
"expect": {
|
||||
"thinking_mode": "adaptive",
|
||||
"supported_efforts": [
|
||||
"low",
|
||||
"medium",
|
||||
"high",
|
||||
"xhigh",
|
||||
"max"
|
||||
],
|
||||
"default_effort": "high",
|
||||
"databricks_v2_wire_route": "anthropic-messages",
|
||||
"normalization_policy": "none",
|
||||
"registry_label": null
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "dbv2-kimi-k3-exact-record-probe",
|
||||
"provider": "databricks_v2",
|
||||
"raw_model_id": "databricks-kimi-k3",
|
||||
"_note": "Probes the canonical Databricks Kimi K3 endpoint record.",
|
||||
"expect": {
|
||||
"thinking_mode": "none",
|
||||
"supported_efforts": [
|
||||
"low",
|
||||
"high",
|
||||
"max"
|
||||
],
|
||||
"default_effort": null,
|
||||
"databricks_v2_wire_route": "mlflow-chat",
|
||||
"normalization_policy": "openai-standard",
|
||||
"registry_label": "Kimi K3"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "dbv2-goose-kimi-k3-alias-probe",
|
||||
"provider": "databricks_v2",
|
||||
"raw_model_id": "goose-kimi-k3",
|
||||
"_note": "Probes a prefixed alias of the Databricks Kimi K3 endpoint.",
|
||||
"expect": {
|
||||
"thinking_mode": "none",
|
||||
"supported_efforts": [
|
||||
"low",
|
||||
"high",
|
||||
"max"
|
||||
],
|
||||
"default_effort": null,
|
||||
"databricks_v2_wire_route": "mlflow-chat",
|
||||
"normalization_policy": "openai-standard",
|
||||
"registry_label": null
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "resolver-prefixed-alias-probe",
|
||||
"provider": "databricks_v2",
|
||||
|
||||
@@ -115,8 +115,8 @@ run_unit_tests() {
|
||||
|
||||
# buzz-agent model-capabilities corpus: the Rust half of the cross-language
|
||||
# drift guard. model_capabilities.rs embeds scripts/model-capabilities.json +
|
||||
# scripts/normative-corpus.json via include_str! and replays all 103 vectors
|
||||
# as pure in-process tests (no infra). Mirrors the nextest path in
|
||||
# scripts/normative-corpus.json via include_str! and replays the full locked
|
||||
# corpus as pure in-process tests (no infra). Mirrors the nextest path in
|
||||
# `just test-unit` — the two lists must stay in step.
|
||||
run_test_step "buzz-agent unit tests" \
|
||||
cargo test -p buzz-agent --lib -- --nocapture
|
||||
|
||||
Reference in New Issue
Block a user