Skip to content

fix: named public signals for issues #65–#76 - #78

Merged
Fanduzi merged 15 commits into
mainfrom
fix/issues-65-76-named-signals
Sep 5, 2026
Merged

Fanduzi merged 15 commits into
mainfrom
fix/issues-65-76-named-signals

Conversation

@Fanduzi

@Fanduzi Fanduzi commented Sep 5, 2026

Copy link
Copy Markdown
Owner

Summary

Name split public signals so operators and agents do not confuse Verdict with Fail Threshold, Catalog with Loaded, or silent MCP/CLI/HTTP gaps.

Parent spec: #77

Closes #65
Closes #66
Closes #67
Closes #68
Closes #69
Closes #70
Closes #71
Closes #72
Closes #73
Closes #74
Closes #75
Closes #76
Closes #77

Verification

  • make test
  • make pg-unit-test-gates
  • make sql-corpus-gates
  • make build
  • python3 scripts/test_pr_workflow_contract.py
  • npm test --prefix packages/deltascope-mcp (20 passed)
  • bash scripts/test_install.sh (43 passed)
  • VERSION=v0.510.3 python3 scripts/verify_docs_examples.py
  • golangci-lint run --new-from-rev=origin/main (0 issues)

Merge with fast-forward only.

Accept the glossary split of Verdict vs Fail Threshold and Rule Catalog
vs Default Policy. Decision record covers #65, #68, #69, #72, and #74.
DELTASCOPE_VERSION=0.510.3 now requests the v0.510.3 GitHub tag.
v-prefixed pins stay valid; other version strings are not rewritten.
Replace the stale uses: Fanduzi/deltascope@v0.13.1 example with the
current published stable tag. Guard the pin in verify_docs_examples.py
so release VERSION checks reject floating @v0 and stale tags.
HTTP /v1/audit classified MCP's connection_ref as opaque invalid_json
because DisallowUnknownFields treats unknown names as malformed JSON.
Return 400 invalid_request naming connection_id and connection_ref.
Do not accept connection_ref as an alias. Keep connection_id, bare
connection, and truly malformed JSON on their existing paths.
Keep engines.node at >=24 and stop bootstrap before the
native binary is downloaded or started when Node's major
version is below 24.
Add query_access { available: false, surfaces: [cli, http] } to the
MCP capabilities payload so agents can discover the missing surface.
Keep tools audit_sql, describe_rule, list_rules, and get_capabilities.
PR and main pushes ran lint, SQL corpus, and CLI TLS e2e while go test
and the tagged PostgreSQL unit subset waited for a release tag. Add
unguarded unit and pg-unit-test-gates jobs and lock them in the
workflow contract so adapter regressions cannot disappear silently.
Untagged source and go install @main builds no longer print the last
shipped DefaultVersion as their sole identity. ReportedVersion prefers
Go module and VCS metadata; DefaultVersion remains the fallback when
build info is absent. Release ldflags still pin the tag.
Put dml.impact.estimate, dml.impact.rows.max_count, and
dml.impact.ratio.max_percent in the Rule Catalog with
default_enabled=false. Catalog construction is no longer Default
Policy keys only. Default Policy does not enable the rules, so
default UPDATE/DELETE audits keep the statement impact object
without those findings. Caller config can still opt in.
Bare -h was the host short flag, so `deltascope audit -h` exited 2
with `flag needs an argument: -h`. Restore -h/--help and bind host
as --host/-H on audit and query-access analyze.
Keep audit exit 2 and Query Access exit 3. Name each command in the
error text so wrappers can tell them apart, and document both exit
tables on --help and in the CLI reference.
Add fail_on_triggered beside the CLI audit Result when --fail-on
causes a non-zero completed-audit exit. Notices still leave Verdict
as pass. SDK, HTTP, and MCP Result do not gain this field.
Keep Rule Catalog, Default Policy, Loaded, and suppressions as different
facts. config status reports status.loaded and fk_forbid for the three
foreign-key naming rules so they read as suppressed, not missing. CLI
examples no longer freeze loaded: 371 as if it were Catalog size.
Loaded is not a subset of Default Policy. Report FK naming suppression
through policy reason codes, not SkipReason. Fill named-public-signals
verification for #69 and #72.
unparam reported the bool result as always true once catalog lookup
already succeeded.
@Fanduzi
Fanduzi merged commit 7d0b202 into main Sep 5, 2026
5 checks passed
@Fanduzi
Fanduzi deleted the fix/issues-65-76-named-signals branch September 15, 2026 04:38
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment