Repository navigation
feat(aivision): add skill spans endpoint with span-backed aggregation - #10
Merged
Merged
Conversation
Add /skill/spans route, SkillSpans handler, skillSpanPredicateSQL predicate and listSkillSpans storage query to recall candidate skill spans for the Python-side skill scan.
Collaborator
Author
webup
approved these changes
Oct 21, 2026
webup
left a comment
Collaborator
There was a problem hiding this comment.
Reviewed with Codex assistance at this commit. Native-name recall and stable pagination match AI Vision SigNoz#92; hosted query-regression passed, and the separate local SQL/integration evidence covers the actual compatible stack. Hosted CI did not use a real OceanBase DSN.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Problem and impact
Add authenticated
GET /api/v1/ai-vision/skill/spansto recall paginated candidate Skill spans for AI Vision #92. Recall includes nativeagentic.tool.type=skill, nativeagentic.skill.name, and argument payloads mentioning SKILL.md; the Python semantic layer rejudges candidates before counting them. Existing agent/tenant filters apply.The review fix adds native-name recall (otherwise AICoder-style records without a path are missed) and orders timestamp ties by trace ID and span ID for stable pagination.
Validation
Current head:
c49b2437d0f401f0ee60b73429bfa307dbecc600. Local real OceanBase-compatible SQL integration used an isolated cloned traces table and exercised the production handler: native-name-only recall plus 501 tied-timestamp candidates across three pages without duplicate/missing identities. The aivision Go module tests and Linux arm64 binary build passed. The same candidate binary served the real Pi/Baidu telemetry acceptance for AI Vision SigNoz#92. The three-Skill round reconciled 66 original spans in 12 traces through both Native/dashboard and SpaceKey APIs; candidate recall returned the exact 12 candidate identities, and the Python layer counted 9 calls (three per Skill). Provider/SSE usage and all original span IDs, parents and precise nanosecond timestamps matched. The candidate count is deliberately distinct from the final call count.Hosted query-regression passed gofmt and
go test -p 2 -count=1 ./pkg/modules/aivision. Hosted CI did not configure a real OceanBase DSN; real SQL evidence is the separate local run. The integration test skips unlessSIGNOZ_TEST_OCEANBASE_DSNis supplied and cleans up its uniquely named test table.Screenshots and interaction
No direct UI change. Source-span navigation and the Skill overview were checked through the compatible frontend in AI Vision SigNoz#92; screenshots accompany its documentation PR.
Compatibility and unverified scope
Deploy this query support together with AI Vision SigNoz#92. Candidate results are intentionally broad and are not final Skill invocation counts. Other architectures, a published image and production deployment were not verified. The stable ordering prevents ambiguous tie ordering; no production data-loss incident is claimed.