Skip to content

feat: run every closed feature the service lists - #162

Draft
Svilen-Stefanov wants to merge 6 commits into
mainfrom
feat/closed-features
Draft

Svilen-Stefanov wants to merge 6 commits into
mainfrom
feat/closed-features

Conversation

@Svilen-Stefanov

@Svilen-Stefanov Svilen-Stefanov commented Nov 1, 2026 •

Copy link
Copy Markdown
Contributor

The review guide step becomes a generic runner for CodeBoarding's closed features. It reads GET /v1/features, collects the bundle once, posts one request per feature in parallel with the inputs that feature names, and writes each answer to closed/<feature>.json.

  • Never quiet. A feature that never answered is written as skipped or failed, so a reader can tell "not checked" from "nothing found". One feature failing costs no other.
  • Computes nothing. It names no feature, except a fallback to the guide alone for a service with no manifest, which is what production answers until the service ships. Guide output stays byte-identical in review_guide.json.
  • New input closed_features_source, default true. A feature can ask for the repository's source. Only its request carries it, within the service's size limit. Past that, or with false, the request goes without it and says why.
  • Own keys for every feature. A run's llm, key and agent_model, then model, reach every feature on each provider the service can call. A run on a provider it cannot reach, including any custom base URL, keeps its key on the runner, makes no model call and never falls back to the hosted model.
  • New refusals hosted_with_model and license_with_model. On CodeBoarding's key CodeBoarding picks the model, so a workflow that sets model, agent_model or parsing_model with llm: hosted or license now fails with a clear message. This can break a hand-edited workflow, and it is the only change here that can stop a run. The Action can only ask: gha_proxy does not enforce it yet.
  • Fixes a limit. A Function URL counts base64, so a bundle over about 4.5 MB got a 413 while the old check allowed 5.8 MB. Measured against dev: 4.5 MB accepted, 5.0 MB refused.

scripts/review_guide.py is now scripts/closed_features.py. Input review_guide_url keeps its name, because workflows set it. The README's "never reaches CodeBoarding" line is corrected. Apart from those refusals, the step never fails the run. Nothing visible changes.

🤖 Generated with Claude Code

Svilen-Stefanov and others added 2 commits November 1, 2026 01:04
The review guide step becomes a generic runner: it reads GET /v1/features,
collects the bundle once, posts one request per feature in parallel with only
the inputs that feature names, and writes each answer to the artifact. A feature
that never answered is written as skipped or failed, so a reader can tell not
checked from nothing found. It computes nothing and names no feature, except the
fallback to the guide alone for a service with no manifest.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Only that feature's request carries it, within the size the service names. Past
that, or with closed_features_source: false, the request goes without it and says
why, so the feature reports what it could not check. Also lowers the bundle limit
to what a Function URL really takes: base64 counts, so 5 MB was refused with a 413.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@codeboarding-review

codeboarding-review Bot commented Nov 1, 2026 •

Copy link
Copy Markdown
Contributor

CodeBoarding review

Status: 1 changed component

See the full change in CodeBoarding.

graph LR
    n_action_support_scripts["action_support_scripts"]
    classDef added fill:#1f883d,stroke:#0b5d23,color:#ffffff;
    classDef modified fill:#bf8700,stroke:#7d4e00,color:#ffffff;
    classDef deleted fill:#cf222e,stroke:#82071e,color:#ffffff,stroke-dasharray:5 3;
    class n_action_support_scripts modified;
Loading

download artifacts · run 41308688042

Svilen-Stefanov and others added 4 commits November 1, 2026 01:37
The run's llm, key and model now reach every feature, for each provider the service
can call. A run on a provider it cannot reach makes no model call and is never sent to
the hosted model. The manifest is read with the run's credentials.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
llm: hosted and license now refuse model, agent_model and parsing_model, with
hosted_with_model and license_with_model. A run's own key uses agent_model, then
model, as its analysis does.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <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.

1 participant