Skip to content

G0 grammar: service-level config blocks over v1's closed field set - #12286

Merged
gunbai-bot[bot] merged 2 commits into
mainfrom
session/fierce-tern-854
Sep 25, 2026
Merged

gunbai-bot[bot] merged 2 commits into
mainfrom
session/fierce-tern-854

Conversation

@gunbai-bot

@gunbai-bot gunbai-bot Bot commented Sep 25, 2026

Copy link
Copy Markdown
Contributor

Adds service-level config { ... } to the v2 grammar authority v2.extdeps.languages.dag (the service nest), which clears the census's parse_g0_tokens_remain wall at service config (for example the service github.WorkflowRuns config in dag/extdeps/github/workflow_runs.dag).

Grammar (grounded on v1 parse_service_config_block / parse_config_fields):

  • service_config is config { field* }, with commas optional like the other lists in the nest.
  • service_config_field is (endpoint | auth | auth_input | auth_source | rate_limit) : expr. This is v1's closed field set, so an unknown field still refuses at parse, as v1 refuses it by name.
  • Every marker word is a literal terminal over dag_token_ident, not a new keyword class (the Admit G0 service family so the native door clears leftover service #11622 note in the nest).
  • service_body_entry now chooses config | operation | transport. The nest's comment now names only the v2-inline operation form as remaining v1-admitted work.

Lowering (DESIGN §5): v2 has no body_lower_service_decl. dag_surface_service_decl has no lowering producer, so the whole service, config included, lands wrapper-retained and admit_normalized_tree refuses it with a typed reason. The config entry is carried to a typed, located refusal, not dropped. A new route claim pins this for a config-only service. Adding a lowering producer is outside this PR: it is the whole service family's lowering, not config's.

Controls (v2.test.parse.g0_service_decl_parse_probe):

  • Positive: service_config_parses_holds (the workflow_runs config shape: newline-separated fields plus a struct literal).
  • Discriminating reds, pinned at the parse stage by refuses_at_parse: service_config_unknown_field_still_refuses_holds and service_config_without_colon_still_refuses_holds.
  • Route: config_only_service_is_refused_at_the_normalized_tree_door_holds.

Evidence:

  • gunbc run --claim-run --entry src/v2/test/claim/parse/g0_service_decl_parse_probe_test.dag: all 23 claims PASS.
  • With dag.dag reverted to main, service_config_parses_holds and the config route claim both FAIL.

Not measured here: I did not re-run the gen-two census, so whether all 41 service files now clear G0 is unverified. Some may stop at a later construct.

Not touched: as casts and 02_parse diagnostics.

🤖 Generated with Claude Code

gunbc-ci-auto-heal and others added 2 commits September 25, 2026 08:25
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
The floor refused three claims as completed-over-cost (72300-step budget):
service_config_parses (95894), config_only_service (73222) and the
pre-existing fn_control_is_admitted (85656, charged because the file changed;
local claim_batch shows the grammar change moved it by ~1%). The config
fixture drops the operation it never inspected, the route fixture uses an
empty config block, and the admit control uses a lowered type declaration
instead of a fn body. Local claim_batch: 60589 / 43092 / 59640 steps; both
config claims still FAIL with dag.dag reverted to main.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
@gunbai-bot
gunbai-bot Bot added this pull request to the merge queue Sep 25, 2026
Merged via the queue into main with commit e01e3d4 Sep 25, 2026
5 checks passed
@gunbai-bot
gunbai-bot Bot deleted the session/fierce-tern-854 branch September 25, 2026 13:17
gunbai-bot Bot pushed a commit that referenced this pull request Sep 25, 2026
… the config-only route claim refuses for its set-aside realization

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
gunbai-bot Bot pushed a commit that referenced this pull request Sep 25, 2026
…12267): both RFM occurrence receipts kept

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants