Skip to content

fix(config): support label-only safety gates - #459

Merged
khaliqgant merged 1 commit into
mainfrom
fix/nullable-title-prefix
Sep 3, 2026
Merged

fix(config): support label-only safety gates#459
khaliqgant merged 1 commit into
mainfrom
fix/nullable-title-prefix

Conversation

@khaliqgant

@khaliqgantkhaliqgant commented Sep 3, 2026

Copy link
Copy Markdown
Member

Why

@agentworkforce/factory-cloud documents and tests safety.requireTitlePrefix: null as the explicit way for an instance overlay to clear the inherited title gate. @agent-relay/factory@0.1.85 rejects that rendered config during preflight because its schema only accepts non-empty strings. The result is a deployed, isolated Container whose /healthz reports factoryProcess: not-running before it can dispatch.

This is currently blocking AgentWorkforce/hoopsheet-garden from proving a real label-gated dispatch of hoopsheet#80.

What changed

  • null is accepted as an explicit opt-out for the title path.
  • omission still defaults to [factory-e2e] and an empty string is still rejected.
  • scope normalization preserves explicit null and requires the configured label when the title path is disabled.
  • Linear writeback keeps the same label-only scope instead of silently restoring the default title marker.
  • PR association retains its own concrete fallback marker; disabling issue eligibility by title does not make PR identity matching ambiguous.
  • the public configuration documentation now names the null/omitted/empty distinction.

Verification

  • npm run build
  • npx vitest run src/config/schema.test.ts src/safety/factory-scope.test.ts src/writeback/writeback.test.ts --maxWorkers=1 — 157 passed
  • npm pack --dry-run

A full-suite run completed 2,426/2,436 tests and hit nine unrelated timing failures across five integration-heavy files while two other orphaned Vitest workers were consuming this host. The changed files' focused suite is green both before and after the final test addition, and the full type build is green.


Summary by cubic

Accepts null for safety.requireTitlePrefix so deployments can use label-only safety gates. Previously preflight rejected the config, leaving deployed Containers reporting factoryProcess: not-running; now null disables the title path explicitly while omission keeps the [factory-e2e] default and empty strings stay rejected.

Bug Fixes

  • Scope normalization preserves explicit null and requires the configured label when the title path is disabled.
  • Linear writeback keeps label-only scope instead of silently restoring the default title marker.
  • PR association retains its own concrete fallback marker when title eligibility is disabled.

Written for commit 774ab7d. Summary will update on new commits.

Review in cubic

Session-Id: 01a0679f-5165-75f2-a0e6-1f3f6771261a
@chatgpt-codex-connector

chatgpt-codex-connectorBot commented Sep 3, 2026

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

ReviewStatusCommitReview trigger
📝 Code ReviewCompleted2026-09-03T14:45:18.508349Z774ab7dPR opened
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@coderabbitai

Copy link
Copy Markdown

Warning

Review limit reached

Next included review available in 24 minutes.

Check out review usage here.

View limit details

Limit details: You’ve used the included review currently available.

You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository.

Learn how review limits work.

Review configuration:

⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Team

Run ID: deebd8ad-f4e3-4f4d-8378-f8caf89a824b

📥 Commits

Reviewing files that changed from the base of the PR and between 5a35e33 and 774ab7d.

📒 Files selected for processing (8)
  • README.md
  • src/config/schema.test.ts
  • src/config/schema.ts
  • src/orchestrator/factory.ts
  • src/safety/factory-scope.test.ts
  • src/safety/factory-scope.ts
  • src/writeback/linear.ts
  • src/writeback/writeback.test.ts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@github-actions

Copy link
Copy Markdown
Contributor

@coderabbitai review

Requested for exact head 774ab7d0415167734abb93b4272e0776ecfa7b84.

@khaliqgant
khaliqgant merged commit 81bf5f5 into mainSep 3, 2026
9 checks passed
@khaliqgant
khaliqgant deleted the fix/nullable-title-prefix branch September 3, 2026 14:50
Sign up for freeto 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

@khaliqgant