[Schema Consistency] Schema Consistency Check - 2026-03-22 #22259
Closed
Replies: 1 comment
-
|
This discussion has been marked as outdated by Schema Consistency Checker. A newer discussion is available at Discussion #22407. |
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
-
Summary
Two new undocumented features were discovered by auditing the
patch-prevent-cross-call-closesandpatch-document-current-checkoutchangesets. Both relate to theclose-older-issues/close-older-discussionssubsystem — a feature-rich area where multiple hidden mechanisms now exist that users cannot discover from any documentation.Critical Issues
(None new this run. Previous critical issues from prior runs persist.)
New High-Priority Findings
Finding 1 —
close-older-keyField Completely UndocumentedSeverity: HIGH | Type: Documentation Gap
The
close-older-keyfield is a fully implemented deduplication mechanism forcreate-issueandcreate-discussionsafe outputs, but it appears in zero documentation files.Evidence of implementation:
main_workflow_schema.jsonlines 4313, 4855 (insidecreate-issue.oneOf[0]andcreate-discussion.oneOf[0])pkg/workflow/create_issue.go:CloseOlderKey string \yaml:"close-older-key,omitempty"``pkg/workflow/create_discussion.go:CloseOlderKey string \yaml:"close-older-key,omitempty"``actions/setup/js/close_older_issues.cjs:81— usesgh-aw-close-keymarker for search/filteringactions/setup/js/close_older_discussions.cjs:103— same marker logicactions/setup/js/create_discussion.cjs:309-312— normalizes and embeds the markersafe-outputs.md,frontmatter.md,frontmatter-full.md,safe-outputs-specification.mdSchema description (what users are missing):
Impact: Users who have workflows that share a reusable workflow (via
workflow_call) cannot useclose-older-keyto isolate close-older operations between callers because they don't know the field exists. They must rely on the automaticgh-aw-workflow-call-idfiltering (Finding 2 below), which itself is undocumented.Schema excerpt for close-older-key
Example usage that is currently undiscoverable:
Finding 2 —
gh-aw-workflow-call-idMarker and Behavioral Change UndocumentedSeverity: HIGH | Type: Documentation Gap + Behavioral Change
The
patch-prevent-cross-call-closeschangeset introduced a new hidden marker<!-- gh-aw-workflow-call-id: ... -->that is automatically embedded in items created in aworkflow_callcontext. The close-older logic then uses this marker for filtering. Neither the marker nor its effect on close-older behavior is documented anywhere.Evidence of implementation:
pkg/workflow/compiler_safe_outputs_job.go:435-441— setsGH_AW_CALLER_WORKFLOW_IDenv varactions/setup/js/generate_footer.cjs:113-122—generateWorkflowCallIdMarker()actions/setup/js/add_comment.cjs:548-551— embeds marker when env var is setactions/setup/js/create_discussion.cjs:555— embeds marker in discussion bodiesactions/setup/js/close_older_issues.cjs:61— usesworkflow-call-idasexactMarkerwhen callerWorkflowId is setactions/setup/js/close_older_discussions.cjs:65— sameactions/setup/js/close_older_discussions.test.cjs:281— explicitly tests filtering by call-idsafe-outputs.md,frontmatter.md,safe-outputs-specification.mdBehavioral change: When a workflow runs via
workflow_call, the compiler injectsGH_AW_CALLER_WORKFLOW_ID. From that point:<!-- gh-aw-workflow-call-id: owner/repo/workflow-name -->gh-aw-workflow-idmarkergh-aw-workflow-call-idmarker) will not be closed by close-older operations in aworkflow_callcontextCurrent documentation (
safe-outputs.md:160) says:This is now incomplete for
workflow_callworkflows — it actually searches byworkflow-call-idmarker in that context.Code excerpt showing the filtering behavior
From
close_older_issues.cjs:56-65:Impact:
close-older-issues: truewill notice that existing older issues (created before this feature) are no longer closed — with no explanation in docssafe-outputs.md"Searching for Workflow-Created Items" section only documentsgh-aw-workflow-idbut notgh-aw-workflow-call-id, so users can't construct the correct search query for items from called workflowsDocumentation Gaps
Previously Identified Persisting Issues (Unresolved)
proxy-argsmissing fromstdio_mcp_toolschema (additionalProperties:falseblocks valid usage)main_workflow_schema.json$defs/stdio_mcp_toolsandbox-agent-false-removalinmcp_tools_management.go:171andgh-aw-as-mcp-server.md:284(real ID:sandbox-false-to-agent-false)pkg/workflow/mcp_tools_management.go,docs/.../gh-aw-as-mcp-server.mdupdate-discussion labelsis a dead feature (schema + docs promise it, runtime has zero implementation)update_discussion.cjs,safe_outputs_validation_config.go, bothsafe_outputs_tools.jsonstatus-commentschema description stale (says "must be explicitly set to true" but compiler auto-enables for slash_command/label_command)main_workflow_schema.json:1568,frontmatter-full.md:706-709action-modecompiler error message missingactionvalue (says dev/release/script only)pkg/workflow/compiler.go:120set-issue-typesafe output absent fromsafe-outputs.mddocs/reference/safe-outputs.mdallowed-extensionsschema description says default is.json,.jsonl,.txt,.md,.csvbut code has empty default (all files)main_workflow_schema.json,pkg/workflow/constants.go:1031Recommendations
Document
close-older-keyinsafe-outputs.mdunder the "Auto-Close Older Issues" and "Discussion Creation" sections. Add a note explaining it as a deterministic deduplication alternative to the workflow-id marker — especially valuable when multiple callers share the same reusable workflow.Document the
gh-aw-workflow-call-idmarker insafe-outputs.mdunder "Searching for Workflow-Created Items". Explain:workflow_callcontext include this second markerworkflow_callcontext filter by this marker (notworkflow-id)gh-aw-workflow-call-idsearch query format to find these itemsFix the
close-older-issuesdoc description atsafe-outputs.md:160to accurately describe the two-phase filtering: searches byworkflow-idbut exact-matchesworkflow-call-id(orclose-key) depending on context.Strategy Performance
hide-older-commentsfor call-id behavior would be worthwhileReferences
Beta Was this translation helpful? Give feedback.
All reactions