Skip to content

T102: the small texts, seven tests respelled to the carve's homes and the arc's rulings (plan 038, T094's R2-INV-R9) - #52

Merged
brettheap merged 6 commits into
mainfrom
r2/t102-small-texts
Oct 7, 2026
Merged

brettheap merged 6 commits into
mainfrom
r2/t102-small-texts

Conversation

@brettheap

@brettheap brettheap commented Oct 6, 2026 •

Copy link
Copy Markdown
Contributor

Lane: openxfactory-4 (openXfactory-4-openDox_extraction)
Authored by lane openXfactory-3, delegated by lane openxfactory-4 (#656 6021862323)
Arc: neutral-product-standalone-operability

T102, the small texts (plan 038, slice T102 of T094's repair map, R2-INV-R9). T095 (#46) has landed, so every node of this slice now clears at main.

Realizes: requirement 9's declared composed tests (T073, F9.1): the 21 composed reds that R2-INV-R9 assigns to its T102 row. There is no tasks.md entry yet (lane 4 records T095 to T104 after T002).

Ruled: the map's rulings (#656 6021830531: OQ-R9-1 to OQ-R9-4 at their defaults, W7's file chains), and #656 6026275158 item 3 (the no-bypass scan, below). Decisions: none of my own.

What changes (seven test files, no conftest edit, no new test)

file nodes means the edit
tests/test_source_dot_directories.py 13 HH the raw client sends ONE Host line (skip_host=True); openDox-code 390e2c2 (plan 034 T103) refuses a second as 403 invalid_host
tests/test_session_document_ownership.py 1 PP gate_routes.py is read at its carved home (carved_module_path)
tests/test_readiness_gate.py 1 MN cmd_gate_propose is read from openxdox.cli_gate, where the carve put it
tests/test_gate_failure_diagnostics.py 1 MN the fresh interpreter imports opendox.workbench (and needs no path to find it)
tests/test_authoring_agent.py 1 PP sync-notebooklm-books.py is openxFactory's own tool, read beside the composed host module (openxfactory_host())
tests/test_wheel_verbs_cli.py 2 MN (+ T095's HR) the derive-possibles stub replaces generator_seam.generate (plan 034 T055), the call the CLI makes now
tests/test_notebook_action.py 2 CP (one also needs T095's HR) the exact-equality capabilities pin pops the additive views and display keys and checks their kinds; the gate flag is asserted with a gate route binding (plan 034 T084) and without one

Beyond the 21 nodes, per #656 6026275158 item 3: the no-bypass scan in test_readiness_gate.py::test_no_parameter_or_keyword_can_bypass_the_gate now reads the sources of BOTH opendox.cli and openxdox.cli_gate. It read only opendox.cli, while the propose arguments live in cli_gate, so a bypass flag added there passed it. M14 and M15 below show the widened scan kills it and the old scan did not.

A correction to the brief (kept for the record)

The brief said 19 of the 21 nodes clear at main before T095. Measured at main f70bc9c3 (before T095 landed) it was 18: a third node, test_notebook_action.py::test_capabilities_route_reports_available_when_nlm_present, also needed T095's declared-host list, because its pinned gate: True and refresh: True are the host's route bindings. T095 has landed since, and at main fc1115d6 below all 21 clear, those three included.

The falsifier (composed R1Q23 (a), each file alone, red first)

Environment: openxFactory 92010d3e (the commit tests/composed_host_pin.yaml names) with openDox, openXdox and openXwallet initialized recursively, its scripts/ on PYTHONPATH; openDox installed from openDox-code 84f8ed83; T022's placement run first and removed afterwards (both checkouts read clean after); colour variables unset, TERM=dumb; Python 3.12.3, pytest 8.4.2, Node v24.21.0.

At main fc1115d6 (the 7 files: 21 red, exactly this slice's), then at this head 0a5dfc30 (a merge of fc1115d6):

base: 114 passed, 21 failed       head: 135 passed, 0 failed
source_dot_directories      14p 13f   ->  27p  0f
session_document_ownership  26p  1f   ->  27p  0f
readiness_gate              10p  1f   ->  11p  0f
wheel_verbs_cli             13p  2f   ->  15p  0f
notebook_action             25p  2f   ->  27p  0f
authoring_agent             18p  1f   ->  19p  0f
gate_failure_diagnostics     8p  1f   ->   9p  0f

21 nodes cleared, none turned red.

The unchanged set, at main fc1115d6 and at this head, node for node: 24 files, 1004 nodes, 1004 passed, 0 red on BOTH sides, 0 nodes differing. It is 12.5's 16 governed suites, F5.2's 7 (its 5 declared files among them) and test_column_contributions_governed.py (9 passed).

The lone form, from a clean clone with CI's own install command (openDox at its pin):

  • tests/test_declared_exclusion.py alone: 207 passed. Each of the seven files still fails alone only on doc_health.
  • the whole suite as validate.yml runs it: 1161 passed, 4 skipped, 1 deselected; selected 1165, passed 1161, skipped 4, failures 0, errors 0, against the floors 1099, 1095 and skipped == 4. The floors are untouched, and no test is added or removed.

Mutants (each is a mutated copy in a scratch tree, reverted after; each killed for its own reason)

id mutant result
M1 HH: skip_host=False again 13 red (403 == 200)
M2 gate_routes.py gains _unwind_first_edit red
M3 the PP read names another module's file red
M4 cmd_gate_propose no longer calls console.propose red
M5 the child interpreter's slug differs red
M6 wrong script name for the sync tool red
M7 no composed host red, with the guard's own message
M8 the stub names the old target cli.generate_snapshot 2 red
M9 the stub's snapshot carries no cluster red
M10 the gated call is handed no route binding red
M11 an unrouted plane asserted to offer the gate red
M12 views not popped red
M13 display checked against the wrong kind red
M14 a --force argument added to cli_gate's propose red under the widened scan, naming openxdox.cli_gate
M15 the same flag against the OLD scan (the file as of 8935da8) PASSES: the old scan let it through

CI and review at head 0a5dfc30

  • validate green (run 37552892745): 1161 passed, 4 skipped, 1 deselected; the triple reads selected 1165, passed 1161, skipped 4, failures 0, errors 0, against the floors 1099, 1095 and skipped == 4 (margin 66).
  • SonarCloud: Quality Gate passed.
  • Copilot (reviewer API, review at this exact head): "Approval recommended", findings none, 0 unresolved threads. Its review of the previous head b307c6ee read "Changes recommended" with one finding, that the body still described the pre-T095 head; the body was fixed, and that thread was answered and resolved.

NOT done

  • Nothing in this slice is open. main has moved since (da736090 at the last read), and the green loop's update-branch merge picks it up; the other slices' files are disjoint from these seven.

🤖 Generated with Claude Code

Summary by Sourcery

Align the composed test suite with the current openDox/openXdox carve and routing contracts, closing the gate-bypass coverage gap.

Bug Fixes:

  • Update seven composed test files to reflect carved module locations, current CLI seams, host routing, and loopback request validation.
  • Expand the readiness-gate bypass scan to cover both CLI modules, preventing unnoticed override flags in gate subcommands.

Enhancements:

  • Align capability assertions with route-bound gate availability and validate the newly exposed views and display facets.
  • Make composed tests resolve openxFactory-owned tools and carved openDox/openXdox modules from their authoritative homes.

Tests:

  • Respelled the affected composed tests so all 21 nodes pass while preserving the existing suite size and validation floors.

brettheap and others added 3 commits October 6, 2026 19:05
… the arc's rulings (plan 038; T094's R2-INV-R9)

Seven test files, 21 composed reds, no conftest edit and no new test:

- test_source_dot_directories.py, HH 13: the raw client sends ONE Host line
  (skip_host=True); openDox-code 390e2c2 refuses a second as 403 invalid_host.
- test_session_document_ownership.py, PP 1: gate_routes.py is read at its
  carved home (conftest carved_module_path), not scripts/ideation_dashboard.
- test_readiness_gate.py, MN 1: cmd_gate_propose moved to openxdox.cli_gate.
- test_gate_failure_diagnostics.py, MN 1: the fresh-interpreter slug import is
  opendox.workbench.
- test_authoring_agent.py, PP 1: sync-notebooklm-books.py is openxFactory's own
  tool, read beside the composed host module (openxfactory_host()).
- test_wheel_verbs_cli.py, MN 2: the derive-possibles stub replaces
  generator_seam.generate (plan 034 T055), the call the CLI now makes. The
  nodes also need the governed host, which is T095's declared-host list.
- test_notebook_action.py, CP 2: the exact-equality capabilities pin pops the
  additive `views` and `display` keys beside console_token and hosted_actor;
  the gate flag is asserted with a gate route binding (plan 034 T084) and
  without one. The first also needs the governed host (T095).

Lane: openXfactory-3

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…plan 038; holder ruling 6026275158, item 3)

test_readiness_gate.py's "the CLI exposes no bypass flag" scan read only
opendox.cli. Since the carve the gate subcommands, and so the `propose`
arguments, are defined in openxdox.cli_gate, so a bypass flag added there
passed the scan. The scan now reads the sources of both modules and names the
module in its failure.

Lane: openXfactory-3

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
@sourcery-ai

sourcery-ai Bot commented Oct 6, 2026

Copy link
Copy Markdown

Reviewer's Guide

Updates seven existing composed tests to reflect the post-carve module locations, generator seam, single-Host HTTP contract, route-bound gate capabilities, and split CLI implementation; it also broadens the readiness-gate no-bypass guard to cover both CLI source modules. No tests are added or removed, and the PR remains dependent on T095 for the remaining failures.

File-Level Changes

Change Details Files
Repoint tests at modules and tools' post-carve homes instead of the original repository layout.
  • Resolve carved modules through shared helpers.
  • Load the openxFactory sync tool beside the composed host module.
  • Import the fresh-interpreter workbench by its installed package name.
  • Stub snapshot generation through the current generator seam.
tests/test_authoring_agent.py
tests/test_gate_failure_diagnostics.py
tests/test_session_document_ownership.py
tests/test_wheel_verbs_cli.py
Align the composed HTTP and capability tests with current host contracts and route ownership.
  • Send exactly one Host header in raw HTTP requests.
  • Require an explicit gate route binding for gate capability.
  • Validate additive views and display payload facets while preserving the exact base payload.
  • Update gate assertions to the openXdox command module.
tests/test_source_dot_directories.py
tests/test_notebook_action.py
Strengthen the readiness-gate bypass scan across both CLI layers.
  • Scan both the openDox parser and openXdox gate-command sources for bypass flags.
  • Inspect the command implementation in its carved module.
tests/test_readiness_gate.py

Tips and commands

Interacting with Sourcery

  • Trigger a new review: Comment @sourcery-ai review on the pull request.
  • Continue discussions: Reply directly to Sourcery's review comments.
  • Generate a GitHub issue from a review comment: Ask Sourcery to create an
    issue from a review comment by replying to it. You can also reply to a
    review comment with @sourcery-ai issue to create an issue from it.
  • Generate a pull request title: Write @sourcery-ai anywhere in the pull
    request title to generate a title at any time. You can also comment
    @sourcery-ai title on the pull request to (re-)generate the title at any time.
  • Generate a pull request summary: Write @sourcery-ai summary anywhere in
    the pull request body to generate a PR summary at any time exactly where you
    want it. You can also comment @sourcery-ai summary on the pull request to
    (re-)generate the summary at any time.
  • Generate reviewer's guide: Comment @sourcery-ai guide on the pull
    request to (re-)generate the reviewer's guide at any time.
  • Resolve all Sourcery comments: Comment @sourcery-ai resolve on the
    pull request to resolve all Sourcery comments. Useful if you've already
    addressed all the comments and don't want to see them anymore.
  • Dismiss all Sourcery reviews: Comment @sourcery-ai dismiss on the pull
    request to dismiss all existing Sourcery reviews. Especially useful if you
    want to start fresh with a new review - don't forget to comment
    @sourcery-ai review to trigger a new review!

Customizing Your Experience

Access your dashboard to:

  • Enable or disable review features such as the Sourcery-generated pull request
    summary, the reviewer's guide, and others.
  • Change the review language.
  • Add, remove or edit custom review instructions.
  • Adjust other review settings.

Getting Help

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot review overview

🔵 Needs a closer look

The draft depends on T095 and cross-repository composed integration that requires final validation after that dependency lands.

Review effort: Balanced
Findings: None

What changed in this PR

Aligns seven composed tests with carved module ownership and current openDox seams.

Changes:

  • Updates CLI, route, generator, and capability assertions.
  • Resolves carved files through their owning packages.
  • Ensures raw requests send one Host header.
File Description
tests/​test_wheel_verbs_cli.py Stubs the generator seam.
tests/​test_source_dot_directories.py Prevents duplicate Host headers.
tests/​test_session_document_ownership.py Resolves the carved gate module.
tests/​test_readiness_gate.py Scans both CLI modules for bypasses.
tests/​test_notebook_action.py Tests route-aware capabilities and facets.
tests/​test_gate_failure_diagnostics.py Imports workbench from openDox.
tests/​test_authoring_agent.py Loads the openxFactory-owned sync tool.

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot review overview

🟡 Changes recommended

The draft description and validation evidence must be updated for the post-T095 head.

Review effort: Balanced
Findings: 1 Low severity

Open (1)

Comment thread tests/test_notebook_action.py

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot review overview

🟢 Approval recommended

The test-only updates match the extracted interfaces, and the reviewed head passes validation.

Review effort: Balanced
Findings: None

Resolved since last review (1)

@brettheap brettheap changed the title DRAFT: T102: the small texts, seven tests respelled to the carve's homes and the arc's rulings (plan 038, T094's R2-INV-R9) T102: the small texts, seven tests respelled to the carve's homes and the arc's rulings (plan 038, T094's R2-INV-R9) Oct 7, 2026
@brettheap
brettheap marked this pull request as ready for review October 7, 2026 09:45
@sourcery-ai

sourcery-ai Bot commented Oct 7, 2026

Copy link
Copy Markdown

Sorry @brettheap, you've used your own review budget of 250,000 diff characters for the last 7 days.

You can request another review in 7 hours and 34 minutes by commenting @sourcery-ai review. Upgrade to get a review now.

@brettheap
brettheap requested a balanced review from Copilot October 7, 2026 09:47
@sonarqubecloud

sonarqubecloud Bot commented Oct 7, 2026

Copy link
Copy Markdown

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot review overview

🟢 Approval recommended

The test updates consistently follow the current package ownership and routing seams, with no unresolved correctness issues found.

Review effort: Balanced
Findings: None

@brettheap

Copy link
Copy Markdown
Contributor Author

READY at 3dd90d3

Lane: openxfactory-4 (openXfactory-4-openDox_extraction)

Holder, automatic READY on Brett's word "land lane 3's PRs when green" (2026-10-06). At the head: CLEAN, rollup SUCCESS, nothing pending, 0 unresolved threads, and Copilot at 3dd90d32 reads "🟢 Approval recommended". The per-repo lander checks closing keywords and lands it.

@brettheap
brettheap merged commit e7815ac into main Oct 7, 2026
4 checks passed
@brettheap

Copy link
Copy Markdown
Contributor Author

Lane: openxfactory-4 (openXfactory-4-openDox_extraction)

LANDED — lane openxfactory-4, 2026-10-07T09:51:02Z, PR #52 → e7815ac (opensoft/openXdox-code main; plain gate)

Brett: plan 038 RULED incl. lane openxfactory-4 lands every PR (#656 6013547504); Start release 2 (#656 6001702967)

brettheap added a commit that referenced this pull request Oct 8, 2026
Brings T101 (#48), T098 (#51), T103 (#49), T096 (#53), T100 (#54), T099
(#47), T021's follow-on (#55), T102 (#52), T022 (#41, landed as aefd109),
T097 (#50) and T096's follow-on (#56).

Conflicted: scripts/composed_placements.py and tests/test_composed_placements.py,
both T022's files, which this branch carried from #41 through #44. Main's
landed side is kept for both. tests/declared_exclusion.yaml merged clean
(T101's entry edits beside T073's header and open_until).

Lane: openXfactory-3

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.

2 participants