Skip to content

feat!: sunset the dynamic feature - #763

Merged
dean0x merged 36 commits into
mainfrom
feat/756-sunset-dynamic
Nov 5, 2026
Merged

dean0x merged 36 commits into
mainfrom
feat/756-sunset-dynamic

Conversation

@dean0x

@dean0x dean0x commented Nov 5, 2026 •

Copy link
Copy Markdown
Owner

Summary

devflow ships a dynamic multi-ticket workflow that is no longer maintained, along with plumbing that only it used. This PR removes both.

Changes

  • Removes the four dynamic commands and the devflow-dynamic plugin.
  • devflow init removes their installed command files and the old wave reference files.
  • The compliance, curation and tdd switches also remove retired command files: a switch after a same-version local build now also removes the old command files.
  • /code-review and /bug-analysis read only top-level design documents.
  • The wave PR block, verify-evidence.cjs check wave and the post-wave-report Git operation are removed.
  • The tracker reader ignores a section it does not list.
  • The npm package description and keywords no longer name the removed graph workflows.

Breaking Changes

This is a breaking change.

  • The four dynamic commands are gone after devflow init.
  • --plugin=dynamic and --plugin=devflow-dynamic exit 1 as an unknown plugin.
  • verify-evidence.cjs check wave exits 1.

Known Limits

  • Stale command files stay until devflow init, or until a switch command at the same version.
  • The preference profile, ticket sets, plans, wave reports and tracker files stay; an old Wave Filter section is ignored.
  • A linked commands folder keeps its stale files; with compliance off they are reported as still posting.

Testing

  • npm run build exits 0, including the script typecheck.
  • Full test suite at e089974: 405 files, 18,980 tests passed, 0 failed, 8 skipped.
  • Scenario QA: all 45 test-plan lines pass.
  • Size ceilings: every touched ceiling falls or stays. The 11 rows of the removed commands are deleted, 28 ceilings in tests/fixtures/numeric-floors.json fell and none rose. The CLAUDE.md size cap is one of them; it fell from 13,123 to 13,071.
  • Test floors lowered: each counts code this PR removes, each carries a LOWERED a -> b by #756 record with the date, the reason and the old value, and the maintainer accepted each one.
    • tests/fixtures/numeric-floors.json: 11 floors. Two of them, the posting-operation floor (8 -> 7) and the external-thread floor (3 -> 2) in tests/git-agent.test.ts, count only the removed post-wave-report operation.
    • Inline floors: build-mds hosts 14 -> 10, partials 17 -> 16, mechanism keys 6 -> 5; installed references 47 -> 44; capability-hoist 42 -> 39; partials-root 7 -> 4; curation-variants arms 23 -> 22; docs-root 60 -> 42; claude-dir 14 -> 10 and curation-off 24 -> 22; no-config-read 14 -> 10; code-operation and code-variants 15 -> 12; code-review diff gating 14 -> 10; command-size 14 -> 10, 8 -> 6 and 13 -> 10; feature-knowledge delivery 17 -> 13 and 14 -> 10; pr-link handoff 10 -> 9 (two floors); command-agent input 12 -> 11; jira and linear marker namespaces 3 -> 2; decisions seam Code sites 21 -> 13; schema-scope canonical reasons 25 -> 24.
  • Floors raised: retired commands 15 -> 19, retired skill files 2 -> 5, retired tracker reasons 9 -> 12.
  • Goldens: the frozen status-line golden was recaptured once, with deletions only (6 lines), at the maintainer's direction. The Git-agent and install-snapshot goldens were recaptured in fixture-only commits.

Related Issues

Refs #756

dean0x added 30 commits November 5, 2026 02:27
Move src/cli/commands/legacy-sweep.ts to src/targets/claude-code/legacy-sweep.ts.
The module only imports from core and targets, so it belongs in the targets layer.
No module in src/targets or src/core imports a src/cli/commands module.

Only import paths change: the two commands that call the sweeps, five test
files, and the sibling imports inside the moved module. No behavior change.

Refs #756
Init now removes the four dynamic command files and the three post-wave-report references by exact name, and drops the devflow-dynamic plugin from the registry and from users' manifests. The two retired-count floors rise to 19 and 5.

Refs #756
The build no longer compiles the four dynamic commands, and the shared partial headers, the token-audit workflow list and the build comments name only the commands that remain.
Remove the acceptance-criteria contract partial that only the retired plan and build commands used, the PRIOR_PHASE_SUMMARY input of the Code agent, and the sentence about running inside a dynamic Workflow sub-agent. The Test agent's TEST_PLAN input no longer names the retired plan command.
The Git agent no longer lists a wave report operation or takes a wave block input. ensure-pr-ready pastes only the test-plan block under compliance, and pastes no caller block with compliance off. Step 4b now runs for every absent PR link. The tracker reference for the operation is no longer built, so the reference set is 44 files with compliance on.

Refs #756
The tracker configuration file no longer has a Wave Filter section, and the tracker agent no longer reads or writes one. The tracker reader contract now says a section that is not in its list is ignored, never DEGRADED. The shared wave report input and read-step defines are gone.

Task: feat/756-sunset-dynamic (phase 6)
- pr-evidence.cjs no longer parses or exports a wave block.
- verify-evidence.cjs check accepts only tp, block and exceptions; any other
  kind, including wave and --links-only, exits 1 with usage on stderr and
  empty stdout.
- /code-review and /bug-analysis list only design/*.md plans.
- docs-framework lists only the paths the remaining commands write.
- The status-line sampler no longer reads the removed wave samples.
Tests for the retired-name sweep inside the compliance, curation and tdd
switch converges. They fail until the converge runs the sweep.

- A retired command file is removed through the backup session and named
  once when a switch converges, with compliance on or off. A file of the
  user whose name only looks retired stays.
- With compliance off, a retired command that stays (a refused removal, a
  folder the caller refused, or a commands folder that is a link) makes
  posting "left" and names it. Nothing is removed through the link.
- With compliance on, a kept retired command does not stop the install
  record.
- A sweep that throws gives posting "unknown" with compliance off, and the
  converge is not converged.
- The sweep result lists the retired command files that stay, by exact
  path, and lists no shipped name and no rule.
The compliance, curation and tdd switches now run the same exact-name sweep of the retired command and rule files that init runs, through the backup session. A switch at the same version as the last init no longer leaves an old command file in place.

With compliance off, a retired command file that stays (a refused removal, a skipped folder, or a state that cannot be read) makes the posting answer "left" and names the file, so `devflow compliance --disable` exits non-zero. A sweep that fails gives "unknown" and an unconverged result. With compliance on, a kept retired command does not block the install record. Nothing is removed through a link.

The sweep result lists the retired command files that stay. Init passes the folders its install refused into the converge and no longer sweeps a second time, so the posting answer comes after the one sweep.
The four dynamic commands, the dynamic plugin and the wave grammar are gone,
so the host, partial and roster tests now state the end state: 10 command
hosts, 9 command partials, no workflow commands.

- Delete tests/dynamic/*. Five files test only removed code. The artifact
  naming, issue-capture and byte-identity checks of the plan vocabulary move
  to tests/commands/plan-issue-vocabulary.test.ts. The Test agent TP-line input
  checks and the real-script `check tp` runs move to
  tests/evidence/test-plan-input.test.ts.
- Drop the allow-list rows, exemptions and roster rows of the removed hosts
  (agent-name-guards, docs-root, claude-dir, literal-agent-paths scan dirs,
  skill-references marker names, mds-manifest).
- Remove the per-ticket design glob checks, the workflow-script stamp checks
  and the wave file spellings from the docs-framework and design-plan tests.
- Replace the installed-command stamp checks that used a dynamic command with
  the release command.
- Update the exact roster counts the manifest derives (settings hosts 10,
  curation-off settings hosts 7, tracker adopters 3, compliance-off omitted
  references 14).

Count floors of the removed code stay as they are and stay red until the
ratchet step: dist-host-count, partial-count, dist-files-count, the packed
reference manifest size, and the inline minimums in build-mds, partials-root,
curation-variants-arms, docs-root, claude-dir and no-config-read.
The post-wave-report operation, the wave caller block and the compliance-off
caller block are gone from the Git agent and its references. Bring the posting
tests to that end state.

- caller-blocks: one caller block (check block), a collector for the single
  gate form, and absent-literal checks for the wave input and gate in every
  provider reference.
- pr-link-handoff: /implement is the one link forwarder and the review hosts
  plus /implement are the callers; no host passes a wave block key.
- git-agent: the operation roster is 19, the posting set 7, the posting set
  without the PR-host tree 4; the compliance-off reference has no caller block
  and no marker.
- posting-absence, base-ref-guard: the exemptions and budget rows of the
  removed hosts are deleted, not repointed; the strict-name copy check stays.
- mds-variants, reference-overlay, partial-wiring, compliance-prompts,
  capability-hoist, init-posting-notice: roster and count pins follow the
  smaller sets (7 posting operations, 13 operation files, 14 omitted
  references, 6 evidence-policy adopters).

Floors and the install-snapshot golden are not touched; the failures that only
they explain stay red for the ratchet and golden steps.
The tracker schema has 10 sections and the tracker operations no longer
include the wave report. The tracker tests now match that end state.

- The schema oracle lists 10 sections and the count is 10.
- The wave report rows leave the marker namespace tables, the hop table
  and the informational mention rows. The fixed-point hop probe seeds a
  pointer to a kept operation instead.
- The shared-step probe edits a kept step.
- The wave PR branch reason, the wave block grammar reason and the wave
  run's missing tracking issue reason move to the retired reasons, which
  must stay absent. The retired floor rises from 9 to 12.
- The unemitted-reason probe uses a reason that the manage-debt
  references emit.
- The dead structured validator kind leaves the hostile-value parser.
  Every other validator kind and every payload row stays.
- The roster test of the Tracker agent is deleted with the roster.

Floors that count removed code stay red and are left for the ratchet
step: the namespace tables (3 -> 2, Jira and Linear), the generated
reference manifest (47 -> 44) and the live reason table (25 -> 24).
Delete the wave block suite: its subject (the wave grammar, `check wave`
and the orphan, unlinked and unmerged codes) is gone.

Move the probes of the kept `check` entry that only that suite held to
the verify-evidence tests: a file that is not UTF-8 is unusable for
every kind, a missing or empty file argument is a usage error, and
`check block` exits 0, 5, 2 and 1 through the real process with an empty
stdout. `check wave` and `check wave --links-only` are usage rows.

Repair the disposition table (the rows of the removed commands go, the
publication rule has three hosts), the plan contract parity (one define,
two adopters), the ensure-pr-ready paste-gate reading (the `check block`
form) and the publication importer list, and the export list of the
evidence script.
Bring the decisions, guard and seam tests to the end state after the
dynamic commands left the build (feat/756-sunset-dynamic).

- Delete tests, probes and exemptions whose subject was a removed
  command or the workflow recipe form.
- Pin the command roster at ten hosts and the seam corpus at ten
  compiled command files.
- Move each kept probe from a removed host to a kept host: the
  Validate and Evaluate decisions probes, the provider-scope probes,
  the Running commands block anchors and the schema spawn collector.
- Keep every security, compliance-injection, model-pin, read-economy
  and fail-closed assertion. No floor, ceiling or golden changes.

Seven floor assertions stay red on purpose: each counts code the
removal took out, and only a floor change would fix it.
A tracker conventions file written before the Wave Filter section was
retired stays on the user's disk. Add a test that reads the built reader
contract against such a file: the contract lists no `## Wave Filter`, it
says an unlisted section is ignored and never DEGRADED, and every other
heading of the file is a listed section. Three known-bad probes show the
collector reports a contract that lists the retired section, a contract
without the ignore sentence, and a listed section that was dropped.

Refs #756
The test ratchets now count the code that remains after the dynamic
commands left the product.

Floors lowered, each recorded in its description with the old value, the
date (2026-11-05) and the reason that no coverage is lost:
- command host count 14 to 10, partial count 17 to 16, compiled command
  file count 14 to 10
- reference manifests and installed reference count 47 to 44
- capability-hoist block floor 42 to 39
- posting operations 8 to 7, caller-fence operations 12 to 11,
  external-thread containment operations 3 to 2 (the posting and
  containment floors are recorded as accepted by the user)
- inline floors in the build, packaging, install, docs-root, claude-dir,
  no-config-read, code-operation, code-variants, code-review gating,
  feature-knowledge, pr-link-handoff, command-agent-input,
  command-size, tracker marker and tracker reason tests, each with a
  dated comment at the floor line

The running-commands site count is retired, with its test and its list
of prompt sites.

Ceilings: the 11 command-size rows for the removed commands are
deleted. The command, agent body, skill and byte-budget ceilings that
fell with the removal are re-derived downward only; no ceiling rises.

Part of #756.
…oval

The sources of six sampled lines are removed, so the fixture loses those
six lines. Deletions only, nothing added. This spends the eleventh
authorisation, logged in the test header. The byte and newline baselines
are re-set in the same commit, and the sampler's closed reference list
drops the removed post-wave-report reference.
The git-agent golden drops the post-wave-report operation row and the same name in the posted-body rule. The equality baselines that pin its size move in the same commit.
…oval

The install snapshots drop the devflow-dynamic plugin entry and the post-wave-report tracker references.
The README, the docs and the knowledge bases state the end state: 20 plugins, no dynamic commands, no wave reports.
Delete the dynamic engine and wave knowledge bases, move the Running commands doctrine to the prompt-install knowledge base, and fold the surviving build pins into the goldens knowledge base.
Rename the shared-partials knowledge base and add the upgrade note to the changelog.
Refs #756
The guide now names 20 plugins (12 core + 8 optional) and drops the removed roster partial. The CLAUDE.md size ceiling falls from 13123 to the measured 13071.
Two source comments now state the current number of tracker operations (ten).
No devflow command spawns Review, Code, Fix, Refactor or Harden with a pinned return now, so their report cap lines lose those clauses and Harden loses its return pin. Design's description drops the ticket set. The report-cap and status pins follow the new text, and the byte ceilings of the five bodies and the catalog descriptions fall to the measured sizes. Review, Design and Synthesize keep StructuredOutput so a user's own Workflow script can still spawn them with a schema.
compliance_gate in the same partial is the only caller. The compiled commands are byte-identical.
…off build

The compliance-off build has no caller block, but step 4a still said to append the caller blocks and that a failed scrub posts neither block. Step 4a is now two whole-line arms. The compliance-on line is unchanged, and the compliance-off line keeps the Comment-sink scrub and every other rule. A guard asserts the compliance-off reference keeps the scrub sentence and lacks both phrases, and the scrub-line pin compares the compliance-off line with the compliance-on line less those two phrases.
…d uninstall keep

- init removes stale retired dynamic command files on a full install and on a partial one,
  and the user-data test now keeps ticket sets, per-ticket plans, nested wave reports and
  wave evidence files byte for byte through init and a selective uninstall
- the legacy sweep test checks that a shipped name is never listed as a retired command left
- the no-retire-notice tests of init and uninstall check the whole info list
- the stale post-wave-report reference cases run with compliance off and on
- compliance --disable over a linked commands folder exits 1, names the retired file and
  removes nothing through the link
…rding

- CHANGELOG: state the four command files, the linked commands folder case,
  the exit 1 of `verify-evidence.cjs check wave`, and the exact files and
  folders devflow keeps and no longer reads
- package.json: end the description at curated decisions and drop the
  graph-engineering keyword
- docs/commands.md: the Validate wait note names only the `-p` mode as not probed

Task: resolve-batch-a1
…that cited deleted files

The platform-assumptions paragraph on the Running commands block now agrees with its singular subject. The tracker knowledge base no longer cites the deleted roster file and states why the registry guards pass for a hook-spawned agent. The curation knowledge base points the declared-only decisions rule at decisions_load. The test-harness knowledge base quotes the floor records with the maintainer wording.
…ay which hosts lost docs mentions

The agentType comments state that the harvest guards the option form of a spawn. The charter test name says only that resolve declares the Fix agent. The Evaluate row comment no longer names a roster table. The docs-root floor reason names the two hosts that each lost a mention. The 2026-11-05 floor records say the maintainer accepted the lowering.
@dean0x

dean0x commented Nov 5, 2026

Copy link
Copy Markdown
Owner Author

Code review: cycle 1 (gate level lean)

Verdict at cde82aa: CHANGES_REQUESTED. Both blocking items are text in user-facing files. No focus found a blocking defect in the code.

  • Focuses: security, testing and reliability, plus two added lenses: removal completeness and the upgrade note.
  • Verdict by focus: security APPROVED; reliability APPROVED; testing APPROVED_WITH_CONDITIONS; removal completeness APPROVED_WITH_CONDITIONS; upgrade note and docs CHANGES_REQUESTED.
  • Counts after dedup: 2 blocking, 10 should-fix, 10 suggestions, 0 pre-existing.

Blocking

  1. package.json: the npm description and one keyword still name the removed graph workflows.
  2. CHANGELOG.md upgrade note: the advice to delete "the ticket sets, plans and wave reports under .devflow/docs/" also covers the /plan design documents, which devflow still reads. The list also omits some removed file kinds. Fix: name exact paths, and say to keep design/*.md.

Should-fix

  1. No test runs a real devflow init over stale dynamic command files and checks that they are gone; the kept-data test lacks the nested ticket, plan and wave-report shapes.
  2. The test "never removes a name that is shipped today" does not check that no shipped name is reported as left.
  3. Agent report-cap text names a Workflow spawn that no devflow command makes.
  4. Three knowledge-base entries cite files that this PR deletes.
  5. The PR body floor list omits three lowered command-size floors.
  6. Test comments and one test name still describe the removed commands.
  7. Two "no retire notice" checks match only part of the info list.
  8. The compliance-off build of the PR-ready step still names caller blocks that it does not have.
  9. docs/commands.md names a probe target that no longer exists.
  10. docs/reference/platform-assumptions.md: a singular subject takes plural forms after a cut.

Suggestions (not blocking)

  • A. When the commands folder or one of its parents is a link, the retired-command sweep reports names that have no file. The result stays fail-closed; only the warning is wrong.
  • B. An exported partial define has no importer.
  • C. The Design agent description still says "ticket set".
  • D. The token-audit segmenter no longer splits old transcripts of the removed commands.
  • E. The stale-reference converge cases run only one compliance value.
  • F. One floor reason names only the removed hosts.
  • G. No CLI test covers devflow compliance --disable with a linked commands folder.
  • H. The upgrade note has no line for a linked commands folder.
  • I. The upgrade note should say "the four command files" and give the check wave exit.
  • J. Floor records say "user" where the PR body says "maintainer".

@dean0x

dean0x commented Nov 5, 2026

Copy link
Copy Markdown
Owner Author

Resolution: cycle 1 (gate level lean)

Head 095a1ee. 22 issues: 20 fixed, 1 deferred, 1 left to the maintainer, 0 false positives. Final gate: PASS. CI: PASSING.

Fixed

Item Fix Commit
1 (blocking) The npm description and keywords no longer name graph workflows. a84586a
2 (blocking) The upgrade note names the exact paths that devflow no longer reads, and says to keep the /plan documents in .devflow/docs/design/. a84586a
3 A real devflow init, full and with --plugin, removes stale dynamic command files; the kept-data test now holds the nested ticket, plan and wave-report shapes and the wave evidence files. d198c81
4 The shipped-name test checks that no shipped name is reported as left. d198c81
5 The report-cap text of Review, Code, Fix, Refactor and Harden no longer names a Workflow spawn. The StructuredOutput tool entries of Review, Design and Synthesize stay, so a user's own Workflow script can still spawn them with a schema; a comment at the pin says so. 1babbfb
6 Three knowledge-base entries point at current files. 7be579b
7 The PR body floor list names the three command-size floors and the two floors that count only the removed operation. PR body
8 Test comments and one test name state the current facts. 6cee728
9 The "no retire notice" checks assert the whole info list. d198c81
10 The compliance-off build of the PR-ready step has its own text arm without the caller blocks; it keeps the comment scrub. The compliance-on build is byte-identical. A new guard checks both builds for each provider. e352ca5
11, 12 Doc wording corrected. a84586a, 7be579b
B, C An unused export removed (compiled output byte-identical); the Design description no longer names a ticket set. da1b8a8, 1babbfb
E, G The stale-reference converge cases run both compliance values; a new CLI test covers devflow compliance --disable with a linked commands folder (exit 1, the file named, the linked folder unchanged). d198c81
F, J One floor reason corrected; this PR's floor records say "maintainer". 6cee728
H, I The upgrade note covers a linked commands folder, says "the four command files", and gives the check wave exit. a84586a

Two more upgrade-note effects (the old reference files and the install record) were found by the test-plan re-check and added in 095a1ee. The same report-cap clean-up also covered Harden and one registry comment.

Ceilings: 10 agent-body and description ceilings fell to their measured sizes. No ceiling rose. No floor changed.

Not fixed here

  • D (deferred): the token-audit segmenter no longer splits old transcripts of the removed commands. Keeping the old names as history is a separate choice.
  • A (for the maintainer): with a linked commands folder, or a commands path that is a file, the retired-command sweep reports names that have no file. The result stays fail-closed. A fix is a separate change.

Verification

  • npm run build: PASS. Full suite at e089974: 405 files, 18,980 passed, 0 failed, 8 skipped.
  • The tests that read the CHANGELOG passed at 095a1ee (7 files, 259 tests).
  • Test plan: 45/45 verified at 095a1ee (38 by CI, 7 attested locally). The evidence comment has the detail.

@dean0x

dean0x commented Nov 5, 2026

Copy link
Copy Markdown
Owner Author

Test Plan Evidence — 095a1ee

Verified 45/45: VERIFIED-CI 38, ATTESTED-LOCAL 7, UNVERIFIED 0, STALE 0, FAILED 0, INDETERMINATE 0

  • TP-1 VERIFIED-CI sha:6e4e5457d1f3173c50ee2c0051045174b79c7673 out:PASS run:41974953767/1 exit:0 h:422d8046078c
  • TP-2 VERIFIED-CI sha:6e4e5457d1f3173c50ee2c0051045174b79c7673 out:PASS run:41974953767/1 exit:0 h:59c522afdb1b
  • TP-3 ATTESTED-LOCAL sha:6e4e5457d1f3173c50ee2c0051045174b79c7673 out:PASS exit:0 h:b47a8a5b8a4f
  • TP-4 VERIFIED-CI sha:e089974ce017c589f5b08a58dc90308ae822d6ba out:PASS run:41984672348/1 exit:0 h:9ef01c8aae39
  • TP-5 VERIFIED-CI sha:e089974ce017c589f5b08a58dc90308ae822d6ba out:PASS run:41984672348/1 exit:0 h:f239f2d568bf
  • TP-6 VERIFIED-CI sha:e089974ce017c589f5b08a58dc90308ae822d6ba out:PASS run:41984672348/1 exit:0 h:cbb965ce0ec3
  • TP-7 VERIFIED-CI sha:e089974ce017c589f5b08a58dc90308ae822d6ba out:PASS run:41984672348/1 exit:0 h:3d98b2371fdd
  • TP-8 VERIFIED-CI sha:e089974ce017c589f5b08a58dc90308ae822d6ba out:PASS run:41984672348/1 exit:0 h:b1dd1d544789
  • TP-9 VERIFIED-CI sha:e089974ce017c589f5b08a58dc90308ae822d6ba out:PASS run:41984672348/1 exit:0 h:43c463e8e385
  • TP-10 VERIFIED-CI sha:6e4e5457d1f3173c50ee2c0051045174b79c7673 out:PASS run:41974953767/1 exit:0 h:9b441242d878
  • TP-11 VERIFIED-CI sha:6e4e5457d1f3173c50ee2c0051045174b79c7673 out:PASS run:41974953767/1 exit:0 h:2699b4cfc77a
  • TP-12 VERIFIED-CI sha:6e4e5457d1f3173c50ee2c0051045174b79c7673 out:PASS run:41974953767/1 exit:0 h:c96e0b443c40
  • TP-13 VERIFIED-CI sha:e089974ce017c589f5b08a58dc90308ae822d6ba out:PASS run:41984672348/1 exit:0 h:94e25f9be3f5
  • TP-14 VERIFIED-CI sha:e089974ce017c589f5b08a58dc90308ae822d6ba out:PASS run:41984672348/1 exit:0 h:60bfaa3b1175
  • TP-15 VERIFIED-CI sha:e089974ce017c589f5b08a58dc90308ae822d6ba out:PASS run:41984672348/1 exit:0 h:d894f6cd7461
  • TP-16 VERIFIED-CI sha:e089974ce017c589f5b08a58dc90308ae822d6ba out:PASS run:41984672348/1 exit:0 h:4c190d7cd5d4
  • TP-17 VERIFIED-CI sha:e089974ce017c589f5b08a58dc90308ae822d6ba out:PASS run:41984672348/1 exit:0 h:238753ba19f7
  • TP-18 VERIFIED-CI sha:e089974ce017c589f5b08a58dc90308ae822d6ba out:PASS run:41984672348/1 exit:0 h:2a232f54f581
  • TP-19 VERIFIED-CI sha:6e4e5457d1f3173c50ee2c0051045174b79c7673 out:PASS run:41974953767/1 exit:0 h:12aabcadb89d
  • TP-20 VERIFIED-CI sha:6e4e5457d1f3173c50ee2c0051045174b79c7673 out:PASS run:41974953767/1 exit:0 h:818c67350668
  • TP-21 VERIFIED-CI sha:e089974ce017c589f5b08a58dc90308ae822d6ba out:PASS run:41984672348/1 exit:0 h:f0762d375f67
  • TP-22 VERIFIED-CI sha:6e4e5457d1f3173c50ee2c0051045174b79c7673 out:PASS run:41974953767/1 exit:0 h:d733788dcf9c
  • TP-23 VERIFIED-CI sha:6e4e5457d1f3173c50ee2c0051045174b79c7673 out:PASS run:41974953767/1 exit:0 h:d5c776cd4573
  • TP-24 VERIFIED-CI sha:e089974ce017c589f5b08a58dc90308ae822d6ba out:PASS run:41984672348/1 exit:0 h:5b19de0d5892
  • TP-25 VERIFIED-CI sha:6e4e5457d1f3173c50ee2c0051045174b79c7673 out:PASS run:41974953767/1 exit:0 h:1254cf831ef3
  • TP-26 VERIFIED-CI sha:e089974ce017c589f5b08a58dc90308ae822d6ba out:PASS run:41984672348/1 exit:0 h:9f9d27b3b202
  • TP-27 VERIFIED-CI sha:e089974ce017c589f5b08a58dc90308ae822d6ba out:PASS run:41984672348/1 exit:0 h:ded70176a18c
  • TP-28 VERIFIED-CI sha:6e4e5457d1f3173c50ee2c0051045174b79c7673 out:PASS run:41974953767/1 exit:0 h:83a2259f5148
  • TP-29 VERIFIED-CI sha:6e4e5457d1f3173c50ee2c0051045174b79c7673 out:PASS run:41974953767/1 exit:0 h:73271542a14f
  • TP-30 VERIFIED-CI sha:6e4e5457d1f3173c50ee2c0051045174b79c7673 out:PASS run:41974953767/1 exit:0 h:3306e0d8c530
  • TP-31 VERIFIED-CI sha:6e4e5457d1f3173c50ee2c0051045174b79c7673 out:PASS run:41974953767/1 exit:0 h:b0ed63d2a58c
  • TP-32 VERIFIED-CI sha:e089974ce017c589f5b08a58dc90308ae822d6ba out:PASS run:41984672348/1 exit:0 h:c383b4c0cb7e
  • TP-33 VERIFIED-CI sha:e089974ce017c589f5b08a58dc90308ae822d6ba out:PASS run:41984672348/1 exit:0 h:4c073b894643
  • TP-34 ATTESTED-LOCAL sha:e089974ce017c589f5b08a58dc90308ae822d6ba out:PASS h:13dbf506fe74
  • TP-35 VERIFIED-CI sha:6e4e5457d1f3173c50ee2c0051045174b79c7673 out:PASS run:41974953767/1 exit:0 h:e802fad43e1c
  • TP-36 VERIFIED-CI sha:6e4e5457d1f3173c50ee2c0051045174b79c7673 out:PASS run:41974953767/1 exit:0 h:e953a2b6d56a
  • TP-37 ATTESTED-LOCAL sha:095a1ee316b744d8bdb24f2be27710297bfdc59b out:PASS exit:0 h:325689893ce9
  • TP-38 VERIFIED-CI sha:e089974ce017c589f5b08a58dc90308ae822d6ba out:PASS run:41984672348/1 exit:0 h:afeee8260fef
  • TP-39 ATTESTED-LOCAL sha:095a1ee316b744d8bdb24f2be27710297bfdc59b out:PASS h:8c7844037dc8
  • TP-40 ATTESTED-LOCAL sha:6e4e5457d1f3173c50ee2c0051045174b79c7673 out:PASS exit:0 h:30e6dc4e1d0b
  • TP-41 ATTESTED-LOCAL sha:e089974ce017c589f5b08a58dc90308ae822d6ba out:PASS exit:0 h:3a39aabba5a3
  • TP-42 VERIFIED-CI sha:6e4e5457d1f3173c50ee2c0051045174b79c7673 out:PASS run:41974953767/1 exit:0 h:48fbad2ea12e
  • TP-43 VERIFIED-CI sha:e089974ce017c589f5b08a58dc90308ae822d6ba out:PASS run:41984672348/1 exit:0 h:caffb14c386b
  • TP-44 VERIFIED-CI sha:6e4e5457d1f3173c50ee2c0051045174b79c7673 out:PASS run:41974953767/1 exit:0 h:2628c4b129d1
  • TP-45 ATTESTED-LOCAL sha:095a1ee316b744d8bdb24f2be27710297bfdc59b out:PASS exit:0 h:39e39ff6ca58

@dean0x
dean0x merged commit 97234bb into main Nov 5, 2026
3 checks passed
@dean0x
dean0x deleted the feat/756-sunset-dynamic branch November 5, 2026 11:30
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