Repository navigation
fix(extract): preserve Go router group prefixes - #2497
Conversation
|
Checkpoint and handover (2026-10-03 UTC) Published head: The Fiber group fix for #686 is published. Historical evidence includes three owned RED failures, 65 passing after the fix, the same failures on revert, restoration to 65 passing, and 469 affected tests passing with lint. ASan/UBSan were not run for this package. This is a partial issue scope and the combined gate remains open. Hosted snapshot at 2026-10-03 21:54:08 UTC: 1 queued, 4 skipped, 35 success. Confirm the required checks on this exact head before treating it as ready. No additional local build, test, lint, sanitizer, benchmark or CI runs were performed at this checkpoint, as requested. Earlier executed evidence remains historical; prepared tests and the newer source-reviewed changes must still be validated by the hosted gate. The campaign is paused at the maintainer’s request. Local monitoring has stopped; hosted jobs remain running. No merge was performed. Thanks for reviewing this change. |
Follow literal Group receivers through local bindings and compose their prefixes for both sequential and parallel route extraction. Keep current URL argument handling and reuse the existing Laravel prefix composition. Refs #686 Signed-off-by: Martin Vogel <martin.vogel.tech@gmail.com>
b93d45a to
d141ee9
Compare
Signed-off-by: Martin Vogel <martin.vogel.tech@gmail.com>
Conflict in internal/cbm/extract_calls.c with main's #1146 slashless Laravel routes (#2471): both helper sets kept (this branch's route_prefix_compose/route_path_with_prefix, main's php_plain_string_value/php_first_arg_value/php_group_array_prefix). At the call site main's slashless-URI step runs first, then this branch's shared route_path_with_group_prefix replaces main's inline #952 composition (identical composition and guard), then main's string-action handler rule. Signed-off-by: Martin Vogel <martin.vogel.tech@gmail.com>
Go route registrations inside literal router groups lose their group prefix, so
admin := app.Group("/admin"); admin.Post("/customers/:id", handler)produces/customers/:id. Follow local receiver bindings and nested or inlineGroupcalls to produce/admin/customers/:idon both indexing paths. Preserve the current URL-argument handling and Laravel prefix behavior.Refs #686. This covers literal Fiber/Gin-style groups; dynamic prefixes, routers passed between functions, Route callbacks, chi mounting, and gRPC extraction remain outside this fix. Existing indexes need to be rebuilt to pick up the paths.
Validation: the three new regression cases fail consistently on current main and again when the production change is reverted; the fixed and restored native ASan/UBSan suite passes all 65 cases. The three named Laravel controls pass throughout. The final affected suites (
pipeline,parallel,route_canon,cross_repo, andedge_types_probe) pass all 469 tests without sanitizer diagnostics;make -f Makefile.cbm lint-cipasses. The campaign’s combined three-platform gate remains pending.