Skip to content

Prove repository quality configuration in shared validation and the portal #579

Closed

Description

@devantler

🤖 Generated by the Agentic Engineer

Expected Behavior

Shared validation must actually load a repository's declared root quality configuration in both root and nested workspaces. Source and rendered-page checks stay enabled, and genuine errors remain failures.

Actual Behavior

Business-site head 12e97e54a54277f7e2d9a0a18ddbd39abce57f52 has no tracked root MegaLinter configuration. Its actual required job 115029101493 consequently reports environment-only configuration; package-context, raw Go-template, Danish/project vocabulary and fictional-fixture findings still need appropriate consumer configuration and validation.

The original diagnosis blamed the shared host-root path. That diagnosis is withdrawn: GitHub runner v2.337.0 translates every environment value through its container mapping. Actual actions#1414 job 115037765756 uses the existing host-root expression yet reports loading /github/workspace/.mega-linter.yml and successfully analyzes two Go files. No shared production-path change or frozen legacy path mirror is currently justified.

See the authenticated correction in comment 6134295818. Primary implementation: GitHub Docker action handler.

Steps to Replicate

  1. Give the actual pinned action a repository-root configuration whose real checker behavior differs from defaults, with a deliberately invalid sibling retained.
  2. Execute the unchanged shared binding in root and nested layouts.
  3. Require non-empty, per-file checker receipts, not a configuration-path printout or generic successful exit.
  4. Repeat with absent and malformed configuration and a configured invalid file. Distinguish genuine lint/parser failures from operational errors.

Acceptance Criteria

  • Required native CI proves actual configuration loading and file analysis in root and nested layouts using the exact production-pinned action and existing binding.
  • Missing/malformed configuration, real lint findings and incomplete-observer controls remain covered.
  • Preserve production inputs, scanner scope, credentials, immutable action parity and failure propagation. Change a producer only if actual evidence establishes a defect.
  • Repair the consumer's package-context, rendered-template, language vocabulary and positively identified fictional-fixture handling without blanket scanner exclusions.
  • Require complete current-head CI, ordered substantive review, protected exact-head merges and actual consumer receipts. Keep this issue open until end-to-end consumer proof, not just a test PR, lands.

This supports the already-started business-site#63 portal delivery. It does not authorize production intake, payments or agent execution. Compiler compatibility remains #577 and PostgreSQL rollout remains #573.

Part of #287.

Activity

  1. added theissue type on Oct 12, 2026
  2. updated Effort Medium and Priority High on Oct 12, 2026
  3. moved this to 📥 Backlog in 🌊 Project Boardon Oct 12, 2026
  4. moved this from 📥 Backlog to 🫴 Ready in 🌊 Project Boardon Oct 12, 2026
  5. self-assigned this
    on Oct 12, 2026
  6. devantler commented on Oct 12, 2026

    @devantler
    ContributorAuthor

    🤖 Generated by the Agentic Engineer

    Diagnosis correction from actual hosted evidence

    The original host-path diagnosis was incomplete. GitHub's Docker action handler translates every environment value through its workspace mapping before invoking the container. In actual actions#1414 job 115037765756, the step prints the host-root configuration path, yet the container reports /github/workspace/.mega-linter.yml + Environment variables and actually lints two Go files successfully. The same configured host binding is therefore not inherently broken.

    Business-site head 12e97e54a54277f7e2d9a0a18ddbd39abce57f52 has no tracked root configuration under any of MegaLinter's supported default filenames. Its job 115029101493 reports environment-only configuration because there is no declared root file to load. That is not executed proof of a bad shared-workflow binding.

    I withdrew the unnecessary production-path edits before commit or publication. The new regression work now exercises the existing actual GitHub binding in root and nested layouts, requires real per-file checker receipts, retains missing/malformed configuration and real-finding controls, and verifies the observer rejects incomplete evidence. None of those hosted controls has run yet. Consumer package-context, rendered-template, language vocabulary and positively fictional-fixture repairs remain required; no scanner blanket exclusion or pipeline waiver is justified.

    Primary runner behavior: https://github.com/actions/runner/blob/v2.337.0/src/Runner.Worker/Handlers/ContainerActionHandler.cs

    This corrects the earlier static claim and its proposed compatibility-mirror requirement; no shared producer path change or legacy path mirror is currently supported by the evidence. Issue #579 remains open for actual configuration/consumer proof, not as inherited merge clearance.

  7. changed the title [-]Shared validation ignores repository lint configuration inside containers[/-] [+]Prove repository quality configuration in shared validation and the portal[/+] on Oct 12, 2026
  8. added a commit that references this issue on Oct 12, 2026
  9. devantler commented on Oct 15, 2026

    @devantler
    ContributorAuthor

    🤖 Generated by the Agentic Engineer

    The producer-side hosted controls have now run. This supersedes the earlier statement that none had executed.

    Main CI 38771224501, attempt 1 succeeded at 226e6e7e5f3609868eb96a6a26f6dc293c88ba30. Complete native pagination reconciled 249 advertised and unique jobs: 201 successful and 48 skipped. The required aggregate succeeded.

    Native scenario Observed behavior
    Root Loaded the root configuration and successfully analyzed the selected checked file.
    Nested Loaded that root configuration from the nested workspace and produced the successful per-file receipt.
    Absent Reported environment-only configuration and examined both fixture files, including the expected invalid-file finding.
    Malformed Rejected the malformed root configuration at its actual YAML parser boundary.
    Finding Loaded configuration and retained the expected real finding in the selected file.

    The guard job also passed the binding refusals and native-observer controls. The pin guard confirmed production and fixture action parity. Relevant workflow, observer, helper and fixture sources are byte-identical between this tested commit and current base 24a32fa15c261a768a8ebbb97984692ec478498a.

    This completes the bounded producer configuration checkpoint. It does not transfer whole-CI success to a successor, establish the business-site consumer fixes, or authorize production activation. Keep #579 open for its package context, rendered-template, vocabulary and fictional-fixture acceptance. The native evidence still does not justify changing the shared host-path binding.

  10. added a commit that references this issue on Oct 19, 2026
  11. devantler commented on Oct 19, 2026

    @devantler
    ContributorAuthor

    🤖 Generated by the Agentic Engineer

    Consumer acceptance completed — 19 October

    The remaining consumer proof has already shipped in business-site#63. This readback joins its actual scanner receipts to the producer proof; it does not infer coverage from a green aggregate.

    • Producer: main run 38771224501, at 226e6e7e5f3609868eb96a6a26f6dc293c88ba30, has 249 advertised and unique jobs: 201 successful, 48 skipped. Direct logs for all five configuration scenarios confirm root and nested loading with one analyzed file, absent configuration with both fixture files examined, a retained genuine finding, and rejection of malformed configuration. The binding/observer guard and action-pin guard also passed. These are the existing controls, with no producer-path workaround.
    • Consumer: required Go run 38334371197 has all 12 jobs successful at reviewed head 26bc7e17eca1ebca7b150be5ef0078f8c0cd6787. Its actual MegaLinter job loaded the repository root configuration from the nested server workspace and successfully analyzed 30 Go files, all four HTML templates, 42 spelling targets and nine link targets. Its logged command retains package context and selected files. The compatible Go analyzer, template, spelling, link and secret scanners remain enabled.
    • Counterexamples and post-merge execution: the merged main identity job successfully executed all six quality observers, including ordinary attribute/typo failures, genuine analyzer/package findings, rendered-target coverage, exact fictional-fixture recognition and adjacent leak rejection. The complete main CI has 11 advertised/unique jobs, ten successful and one skipped. The exact PR head has 47 native check records, 41 successful and six skipped.
    • Review and publication binding: CodeRabbit's substantive completed review names that exact head and reports no actionable comments. Its ancillary concerns have an authenticated finding-by-finding assessment; there are zero review threads with complete pagination. The verified signed head and signed squash a0c5acdbfbedf061cfa5a9b7a27c66128d2729db share tree 598d363e4ee6921a3af2817cdc810c6503f578b1. The root configuration blob still matches current main.

    Decision: this issue's producer and end-to-end consumer acceptance is complete. Preserve the earlier failed observations and withdrawn diagnosis. This closes the configuration/consumer defect, without claiming portal activation, retrospective enforcement proof, or completion of the independent compiler and PostgreSQL rollout issues. The unrelated newer main CI observed during this readback is separate from these immutable delivery receipts.

  12. added a commit that references this issue on Oct 19, 2026
  13. moved this from 🏃🏻‍♂️ In Progress to ✅ Done in 🌊 Project Boardon Oct 19, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

Fields

Priority

High

Effort

Medium

Projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions