Skip to content

chore(submodules): bump 4 gitlinks and refresh deterministic evidence - #769

Merged
POWERFULMOVES merged 3 commits into
mainfrom
codex/submodule-atomic-validation-mar03
Mar 3, 2026
Merged

POWERFULMOVES merged 3 commits into
mainfrom
codex/submodule-atomic-validation-mar03

Conversation

@POWERFULMOVES

@POWERFULMOVES POWERFULMOVES commented Mar 3, 2026 •

Copy link
Copy Markdown
Owner

Summary

  • bump gitlinks for PMOVES-DoX, PMOVES-Open-Notebook, PMOVES-transcribe-and-fetch, and Pmoves-cipher
  • refresh deterministic submodule validation artifacts and curated submodule test matrix evidence
  • add Codex+Claude atomic merge lane strategy doc for this release cycle

Validation

  • make -C pmoves submodule-layer-validate-all-strict (PASS, primary workspace)
  • make -C pmoves submodule-integrity-strict (PASS, primary workspace after gitlink update)
  • PMOVES-Open-Notebook: uv run --project . python -m pytest -q tests --maxfail=1 (98 passed)
  • Pmoves-cipher: npx vitest run src/core/brain/memAgent/__test__/loader.test.ts src/core/brain/tools/definitions/system/__test__/bash.test.ts (1 file passed, 1 skipped on Windows)
  • PMOVES-DoX: targeted tests reproduce existing stale expectation in backend/tests/test_agent_dispatcher.py (_pending_tasks attr removed in implementation)

Notes

  • worktree-only submodule-integrity-strict fails before submodule init by design; authoritative integrity pass recorded in primary workspace where submodules are initialized.
  • no secret material added.

Summary by CodeRabbit

  • Documentation
    • Added comprehensive submodule validation and curated/normalized test matrix documentation; updated generated timestamps and evidence reports across many modules.
  • Chores
    • Updated submodule references and metadata throughout the project; minor manifest and formatting adjustments.

@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.

@coderabbitai

coderabbitai Bot commented Mar 3, 2026 •

Copy link
Copy Markdown
Contributor

Caution

Review failed

The pull request is closed.

ℹ️ Recent review info

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between f78d859 and d88b2e7.

📒 Files selected for processing (8)
  • pmoves/docs/SUBMODULE_LAYER_VALIDATION.md
  • pmoves/docs/evidence/submodule_layer_validation.json
  • pmoves/docs/evidence/submodule_test_matrix.json
  • pmoves/docs/evidence/submodule_test_matrix.md
  • pmoves/docs/evidence/submodule_test_matrix_curated.json
  • pmoves/docs/evidence/submodule_test_matrix_curated.md
  • pmoves/docs/evidence/submodule_test_matrix_normalized.json
  • pmoves/docs/evidence/submodule_test_matrix_normalized.md

📝 Walkthrough

Walkthrough

This PR updates many PMOVES submodule gitlinks to new commits, refreshes generated timestamps and evidence/validation artifacts, adds a Submodule Atomic PR Strategy doc, and introduces several test-matrix evidence files (raw, curated, normalized) documenting per-submodule test runs.

Changes

Cohort / File(s) Summary
Submodule Pointer Updates
PMOVES-DoX, PMOVES-Open-Notebook, PMOVES-transcribe-and-fetch, Pmoves-cipher (gitmodule references)
Updated submodule commit hashes/pointers in gitlinks; no code or API changes.
Submodule Strategy Documentation
pmoves/docs/AGENTS/SUBMODULE_ATOMIC_PR_STRATEGY_2026-03-03.md
New procedural document describing atomic PR strategy, lanes, validation gates, PR ordering, and handoff notes.
Submodule Layer Validation
pmoves/docs/SUBMODULE_LAYER_VALIDATION.md, pmoves/docs/evidence/submodule_layer_validation.json, pmoves/docs/evidence/submodule_layer_runall.json
Updated generated timestamps and manifest path; replaced many submodule commit hashes in validation artifact.
Evidence JSON Files (many)
pmoves/docs/evidence/submodule_layer/PMOVES-*.json, pmoves/docs/evidence/submodule_layer/Pmoves-*.json, pmoves/docs/evidence/submodule_layer/pmoves-*.json, pmoves/docs/evidence/submodule_layer/pmoves__integrations__archon.json
Refreshed generated_at timestamps across files; numerous entries updated commit hashes and some added errors/warnings fields or changed status_prefix markers.
Evidence Markdown Files (many)
pmoves/docs/evidence/submodule_layer/PMOVES-*.md, pmoves/docs/evidence/submodule_layer/Pmoves-*.md, pmoves/docs/evidence/submodule_layer/pmoves-*.md, pmoves/docs/evidence/submodule_layer/pmoves__integrations__archon.md
Updated _Generated timestamps and matrix status markers (some rows changed to +); content otherwise unchanged.
Test Matrix Files (new)
pmoves/docs/evidence/submodule_test_matrix.json, pmoves/docs/evidence/submodule_test_matrix.md, pmoves/docs/evidence/submodule_test_matrix_curated.json, pmoves/docs/evidence/submodule_test_matrix_curated.md, pmoves/docs/evidence/submodule_test_matrix_normalized.json, pmoves/docs/evidence/submodule_test_matrix_normalized.md
Added comprehensive test-run artifacts capturing per-submodule commands, statuses (pass/fail/skip), exit codes, durations, and output tails (raw/curated/normalized variants).

Sequence Diagram(s)

(omitted — changes are data/docs and submodule repins without new multi-component control-flow)

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

Possibly related PRs

Suggested labels

codex

Poem

🐰
Submodules hopped to newer trees so spry,
Timestamps refreshed beneath the sky,
A strategy carved in careful hops,
Test-matrix crumbs for debug stops,
Rabbity cheers — the repo’s spry!

🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Title check ✅ Passed Title clearly summarizes the main change: bumping 4 gitlinks and refreshing deterministic evidence artifacts, which is the primary focus of the PR.
Description check ✅ Passed Description is largely complete with Summary and Testing sections provided, though some optional sections are missing. Required information about changes and validation is documented.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch codex/submodule-atomic-validation-mar03

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 and usage tips.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Actionable comments posted: 5

🧹 Nitpick comments (3)
pmoves/docs/evidence/submodule_layer_validation.json (1)

2-3: Manifest path normalization is good; timestamp predates individual files.

The change from absolute Windows path to relative path improves portability. However, this file's timestamp (02:38 UTC) is ~1 hour earlier than individual submodule evidence files (03:53-03:55 UTC), causing commit hash discrepancies for PMOVES-DoX and PMOVES-Open-Notebook.

Consider regenerating this master file after all individual validations complete, or document that these represent separate validation checkpoints.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@pmoves/docs/evidence/submodule_layer_validation.json` around lines 2 - 3, The
master evidence file's generated_at ("generated_at": "2026-03-03 02:38 UTC") is
earlier than the individual submodule evidence timestamps, causing commit hash
mismatches for PMOVES-DoX and PMOVES-Open-Notebook; regenerate
submodule_layer_validation.json after all individual validations complete so
generated_at and the "manifest"
(pmoves/configs/submodule_layer_validation_manifest.json) reflect the final
checkpoint, or alternatively update this file to include a note/field
documenting that it is a separate validation checkpoint and will not match
individual file timestamps/commit hashes.
pmoves/docs/evidence/submodule_test_matrix_curated.md (1)

370-408: PMOVES.YT failure is an external dependency issue.

The test_youtube age restriction test fails due to YouTube requiring authentication for age-restricted content. This is an environmental/external API limitation rather than a code defect. Consider marking such tests as requiring network/auth fixtures or skipping in CI without credentials.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@pmoves/docs/evidence/submodule_test_matrix_curated.md` around lines 370 -
408, The age-restriction YouTube test (TestAgeRestriction.test_youtube) fails
because YouTube requires authenticated cookies for age-restricted content;
update the test or test harness to avoid false failures by either marking
TestAgeRestriction.test_youtube (or the helper
_download_restricted/_assert_restricted) with a network/auth marker (e.g.,
pytest.mark.requires_network or pytest.mark.needs_cookies) and conditionally
skip it when no credentials/cookies are provided, or add CI logic to skip this
test when browser cookies/credentials are not configured so the test is not run
in unauthenticated CI environments.
pmoves/docs/evidence/submodule_test_matrix_normalized.json (1)

36-43: Documented Windows/Linux platform incompatibility in Pmoves-cipher tests.

The bash.test.ts failures show spawn /bin/bash ENOENT errors, indicating tests assume a Unix shell unavailable on Windows. This is accurately captured evidence, but per coding guidelines, consider adding a note to the test matrix documentation about platform-specific test expectations. As per coding guidelines, "Flag command drift across Windows/WSL/Linux instructions."

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@pmoves/docs/evidence/submodule_test_matrix_normalized.json` around lines 36 -
43, Add a platform-compatibility note to the Pmoves-cipher entry (the object
with "submodule": "Pmoves-cipher") in submodule_test_matrix_normalized.json
stating that tests invoking /bin/bash (see
src/core/brain/tools/definitions/system/__test__/bash.test.ts and tests like
"should reuse existing active sessions"/"should close all sessions") require a
Unix shell and will fail on Windows without WSL; include the failing command
("npm run test") and the serialized error (spawn /bin/bash ENOENT) and add a
"platform_expectations" or "notes" key that flags Windows/WSL/Linux drift so CI
and contributors are aware.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@pmoves/docs/evidence/submodule_layer/PMOVES-DoX.json`:
- Around line 14-15: The PMOVES-DoX.json evidence file contains a commit
("035364ce62223b12a7653b4e3052e2c22e7a9d50") and status_prefix ("+") that do not
match the master validation entry in submodule_layer_validation.json (which
lists "605f2dde..." and a different status); resolve by regenerating the master
validation (or the evidence artifacts) so both files reflect the same validation
run — update PMOVES-DoX.json or re-run the validation job to produce consistent
"commit" and "status_prefix" values across PMOVES-DoX.json and
submodule_layer_validation.json (verify the commit hash and timestamp match
after regeneration).

In `@pmoves/docs/evidence/submodule_layer/PMOVES-Open-Notebook.json`:
- Around line 14-15: The PMOVES-Open-Notebook.json evidence shows a mismatched
commit/hash and status_prefix compared to submodule_layer_validation.json;
regenerate the evidence artifacts from the same validation run so both files
align (ensure PMOVES-Open-Notebook.json's "commit" and "status_prefix" fields
match the values recorded in submodule_layer_validation.json for the same
entry), then replace the stale PMOVES-Open-Notebook.json (or re-run the
validation pipeline that produces both files) so the commit hash (e.g.,
91336e7b3b28... vs 681e0085...) and status_prefix are consistent across the
outputs.

In `@pmoves/docs/evidence/submodule_test_matrix_curated.json`:
- Around line 68-75: The JSON entry for submodule "PMOVES-DoX" contains a
Windows-only env var prefix in the "command" field ("set
SUPABASE_JWT_SECRET=test-secret&&"), which fails on Linux/WSL; update the
"command" value to a cross-platform form (e.g., prefix with POSIX-style
"SUPABASE_JWT_SECRET=test-secret &&" or use a wrapper like "env
SUPABASE_JWT_SECRET=test-secret &&" or reference an env-file tool) or mark the
entry as Windows-only and add a parallel Linux/WSL command variant; ensure you
modify the "command" field in the JSON and add a short note in the related
documentation clarifying platform-specific instructions.

In `@pmoves/docs/evidence/submodule_test_matrix_normalized.md`:
- Line 13: The matrix row for `Pmoves-cipher` currently marks the Windows `spawn
/bin/bash ENOENT` as a generic `fail`; classify this as platform/command drift
instead by replacing the `fail` status for the `Pmoves-cipher` entry (and
similar rows in the 114-166 range) with a platform-drift marker or adding a
footnote indicating `/bin/bash ENOENT` on Windows, and update the docs in
pmoves/docs/** to explicitly call out `spawn /bin/bash ENOENT` as environment/OS
command drift rather than a product regression so matrix consumers can
distinguish platform issues from test failures.
- Around line 48-53: The committed evidence file
pmoves/docs/evidence/submodule_test_matrix_normalized.md contains absolute local
Windows paths (e.g. "C:\Users\russe\...") that leak workstation/user
identifiers; update the generator or pre-commit step that produces these logs to
sanitize paths by replacing user/home segments with a neutral token (e.g.
"{USER_HOME}" or "~") or convert absolute paths to relative paths before writing
the file, and ensure this redaction is applied to all occurrences (lines
referenced around 48, 75-76, 289-293, 319-321, 373-377) so no personal paths are
committed.

---

Nitpick comments:
In `@pmoves/docs/evidence/submodule_layer_validation.json`:
- Around line 2-3: The master evidence file's generated_at ("generated_at":
"2026-03-03 02:38 UTC") is earlier than the individual submodule evidence
timestamps, causing commit hash mismatches for PMOVES-DoX and
PMOVES-Open-Notebook; regenerate submodule_layer_validation.json after all
individual validations complete so generated_at and the "manifest"
(pmoves/configs/submodule_layer_validation_manifest.json) reflect the final
checkpoint, or alternatively update this file to include a note/field
documenting that it is a separate validation checkpoint and will not match
individual file timestamps/commit hashes.

In `@pmoves/docs/evidence/submodule_test_matrix_curated.md`:
- Around line 370-408: The age-restriction YouTube test
(TestAgeRestriction.test_youtube) fails because YouTube requires authenticated
cookies for age-restricted content; update the test or test harness to avoid
false failures by either marking TestAgeRestriction.test_youtube (or the helper
_download_restricted/_assert_restricted) with a network/auth marker (e.g.,
pytest.mark.requires_network or pytest.mark.needs_cookies) and conditionally
skip it when no credentials/cookies are provided, or add CI logic to skip this
test when browser cookies/credentials are not configured so the test is not run
in unauthenticated CI environments.

In `@pmoves/docs/evidence/submodule_test_matrix_normalized.json`:
- Around line 36-43: Add a platform-compatibility note to the Pmoves-cipher
entry (the object with "submodule": "Pmoves-cipher") in
submodule_test_matrix_normalized.json stating that tests invoking /bin/bash (see
src/core/brain/tools/definitions/system/__test__/bash.test.ts and tests like
"should reuse existing active sessions"/"should close all sessions") require a
Unix shell and will fail on Windows without WSL; include the failing command
("npm run test") and the serialized error (spawn /bin/bash ENOENT) and add a
"platform_expectations" or "notes" key that flags Windows/WSL/Linux drift so CI
and contributors are aware.

ℹ️ Review info

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between ab375a8 and f78d859.

📒 Files selected for processing (94)
  • PMOVES-DoX
  • PMOVES-Open-Notebook
  • PMOVES-transcribe-and-fetch
  • Pmoves-cipher
  • pmoves/docs/AGENTS/SUBMODULE_ATOMIC_PR_STRATEGY_2026-03-03.md
  • pmoves/docs/SUBMODULE_LAYER_VALIDATION.md
  • pmoves/docs/evidence/submodule_layer/PMOVES-A2UI.json
  • pmoves/docs/evidence/submodule_layer/PMOVES-A2UI.md
  • pmoves/docs/evidence/submodule_layer/PMOVES-Agent-Zero.json
  • pmoves/docs/evidence/submodule_layer/PMOVES-Agent-Zero.md
  • pmoves/docs/evidence/submodule_layer/PMOVES-AgentGym.json
  • pmoves/docs/evidence/submodule_layer/PMOVES-AgentGym.md
  • pmoves/docs/evidence/submodule_layer/PMOVES-Archon.json
  • pmoves/docs/evidence/submodule_layer/PMOVES-Archon.md
  • pmoves/docs/evidence/submodule_layer/PMOVES-BoTZ.json
  • pmoves/docs/evidence/submodule_layer/PMOVES-BoTZ.md
  • pmoves/docs/evidence/submodule_layer/PMOVES-BotZ-gateway.json
  • pmoves/docs/evidence/submodule_layer/PMOVES-BotZ-gateway.md
  • pmoves/docs/evidence/submodule_layer/PMOVES-Creator.json
  • pmoves/docs/evidence/submodule_layer/PMOVES-Creator.md
  • pmoves/docs/evidence/submodule_layer/PMOVES-Danger-infra.json
  • pmoves/docs/evidence/submodule_layer/PMOVES-Danger-infra.md
  • pmoves/docs/evidence/submodule_layer/PMOVES-Deep-Serch.json
  • pmoves/docs/evidence/submodule_layer/PMOVES-Deep-Serch.md
  • pmoves/docs/evidence/submodule_layer/PMOVES-DoX.json
  • pmoves/docs/evidence/submodule_layer/PMOVES-DoX.md
  • pmoves/docs/evidence/submodule_layer/PMOVES-E2B-Danger-Room-Desktop.json
  • pmoves/docs/evidence/submodule_layer/PMOVES-E2B-Danger-Room-Desktop.md
  • pmoves/docs/evidence/submodule_layer/PMOVES-E2B-Danger-Room.json
  • pmoves/docs/evidence/submodule_layer/PMOVES-E2B-Danger-Room.md
  • pmoves/docs/evidence/submodule_layer/PMOVES-E2b-Spells.json
  • pmoves/docs/evidence/submodule_layer/PMOVES-E2b-Spells.md
  • pmoves/docs/evidence/submodule_layer/PMOVES-Headscale.json
  • pmoves/docs/evidence/submodule_layer/PMOVES-Headscale.md
  • pmoves/docs/evidence/submodule_layer/PMOVES-HiRAG.json
  • pmoves/docs/evidence/submodule_layer/PMOVES-HiRAG.md
  • pmoves/docs/evidence/submodule_layer/PMOVES-Jellyfin.json
  • pmoves/docs/evidence/submodule_layer/PMOVES-Jellyfin.md
  • pmoves/docs/evidence/submodule_layer/PMOVES-MAI-UI.json
  • pmoves/docs/evidence/submodule_layer/PMOVES-MAI-UI.md
  • pmoves/docs/evidence/submodule_layer/PMOVES-Open-Notebook.json
  • pmoves/docs/evidence/submodule_layer/PMOVES-Open-Notebook.md
  • pmoves/docs/evidence/submodule_layer/PMOVES-Pinokio-Ultimate-TTS-Studio.json
  • pmoves/docs/evidence/submodule_layer/PMOVES-Pinokio-Ultimate-TTS-Studio.md
  • pmoves/docs/evidence/submodule_layer/PMOVES-Pipecat.json
  • pmoves/docs/evidence/submodule_layer/PMOVES-Pipecat.md
  • pmoves/docs/evidence/submodule_layer/PMOVES-Remote-View.json
  • pmoves/docs/evidence/submodule_layer/PMOVES-Remote-View.md
  • pmoves/docs/evidence/submodule_layer/PMOVES-Tailscale.json
  • pmoves/docs/evidence/submodule_layer/PMOVES-Tailscale.md
  • pmoves/docs/evidence/submodule_layer/PMOVES-ToKenism-Multi.json
  • pmoves/docs/evidence/submodule_layer/PMOVES-ToKenism-Multi.md
  • pmoves/docs/evidence/submodule_layer/PMOVES-Ultimate-TTS-Studio.json
  • pmoves/docs/evidence/submodule_layer/PMOVES-Ultimate-TTS-Studio.md
  • pmoves/docs/evidence/submodule_layer/PMOVES-Wealth.json
  • pmoves/docs/evidence/submodule_layer/PMOVES-Wealth.md
  • pmoves/docs/evidence/submodule_layer/PMOVES-crush.json
  • pmoves/docs/evidence/submodule_layer/PMOVES-crush.md
  • pmoves/docs/evidence/submodule_layer/PMOVES-llama-throughput-lab.json
  • pmoves/docs/evidence/submodule_layer/PMOVES-llama-throughput-lab.md
  • pmoves/docs/evidence/submodule_layer/PMOVES-n8n.json
  • pmoves/docs/evidence/submodule_layer/PMOVES-n8n.md
  • pmoves/docs/evidence/submodule_layer/PMOVES-supabase.json
  • pmoves/docs/evidence/submodule_layer/PMOVES-supabase.md
  • pmoves/docs/evidence/submodule_layer/PMOVES-surf.json
  • pmoves/docs/evidence/submodule_layer/PMOVES-surf.md
  • pmoves/docs/evidence/submodule_layer/PMOVES-tensorzero.json
  • pmoves/docs/evidence/submodule_layer/PMOVES-tensorzero.md
  • pmoves/docs/evidence/submodule_layer/PMOVES-transcribe-and-fetch.json
  • pmoves/docs/evidence/submodule_layer/PMOVES-transcribe-and-fetch.md
  • pmoves/docs/evidence/submodule_layer/PMOVES.YT.json
  • pmoves/docs/evidence/submodule_layer/PMOVES.YT.md
  • pmoves/docs/evidence/submodule_layer/Pmoves-AgentGym-RL.json
  • pmoves/docs/evidence/submodule_layer/Pmoves-AgentGym-RL.md
  • pmoves/docs/evidence/submodule_layer/Pmoves-Health-wger.json
  • pmoves/docs/evidence/submodule_layer/Pmoves-Health-wger.md
  • pmoves/docs/evidence/submodule_layer/Pmoves-Jellyfin-AI-Media-Stack.json
  • pmoves/docs/evidence/submodule_layer/Pmoves-Jellyfin-AI-Media-Stack.md
  • pmoves/docs/evidence/submodule_layer/Pmoves-cipher.json
  • pmoves/docs/evidence/submodule_layer/Pmoves-cipher.md
  • pmoves/docs/evidence/submodule_layer/Pmoves-hyperdimensions.json
  • pmoves/docs/evidence/submodule_layer/Pmoves-hyperdimensions.md
  • pmoves/docs/evidence/submodule_layer/pmoves-e2b-mcp-server.json
  • pmoves/docs/evidence/submodule_layer/pmoves-e2b-mcp-server.md
  • pmoves/docs/evidence/submodule_layer/pmoves__integrations__archon.json
  • pmoves/docs/evidence/submodule_layer/pmoves__integrations__archon.md
  • pmoves/docs/evidence/submodule_layer_runall.json
  • pmoves/docs/evidence/submodule_layer_validation.json
  • pmoves/docs/evidence/submodule_test_matrix.json
  • pmoves/docs/evidence/submodule_test_matrix.md
  • pmoves/docs/evidence/submodule_test_matrix_curated.json
  • pmoves/docs/evidence/submodule_test_matrix_curated.md
  • pmoves/docs/evidence/submodule_test_matrix_normalized.json
  • pmoves/docs/evidence/submodule_test_matrix_normalized.md

Comment on lines +14 to +15
"status_prefix": "+",
"commit": "035364ce62223b12a7653b4e3052e2c22e7a9d50",

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟡 Minor

Commit hash mismatch with master validation file.

This file shows commit 035364ce... with status +, but submodule_layer_validation.json (line 183) shows a different commit 605f2dde... with status . The timestamp difference (03:53 vs 02:38 UTC) suggests these artifacts were generated at different times.

Regenerate the master validation file to ensure all evidence artifacts are consistent, or clarify if these files intentionally track different validation runs.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@pmoves/docs/evidence/submodule_layer/PMOVES-DoX.json` around lines 14 - 15,
The PMOVES-DoX.json evidence file contains a commit
("035364ce62223b12a7653b4e3052e2c22e7a9d50") and status_prefix ("+") that do not
match the master validation entry in submodule_layer_validation.json (which
lists "605f2dde..." and a different status); resolve by regenerating the master
validation (or the evidence artifacts) so both files reflect the same validation
run — update PMOVES-DoX.json or re-run the validation job to produce consistent
"commit" and "status_prefix" values across PMOVES-DoX.json and
submodule_layer_validation.json (verify the commit hash and timestamp match
after regeneration).

Comment on lines +14 to +15
"status_prefix": "+",
"commit": "91336e7b3b28ed75dfa27b2cbbd39cd8dd31d8b9",

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟡 Minor

Commit hash mismatch with master validation file.

This file shows commit 91336e7b... with status +, but submodule_layer_validation.json (line 379) shows a different commit 681e0085... with status . Same timestamp drift pattern as PMOVES-DoX.

Ensure evidence artifacts are regenerated from the same validation run for consistency.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@pmoves/docs/evidence/submodule_layer/PMOVES-Open-Notebook.json` around lines
14 - 15, The PMOVES-Open-Notebook.json evidence shows a mismatched commit/hash
and status_prefix compared to submodule_layer_validation.json; regenerate the
evidence artifacts from the same validation run so both files align (ensure
PMOVES-Open-Notebook.json's "commit" and "status_prefix" fields match the values
recorded in submodule_layer_validation.json for the same entry), then replace
the stale PMOVES-Open-Notebook.json (or re-run the validation pipeline that
produces both files) so the commit hash (e.g., 91336e7b3b28... vs 681e0085...)
and status_prefix are consistent across the outputs.

Comment on lines +68 to +75
{
"submodule": "PMOVES-DoX",
"command": "set SUPABASE_JWT_SECRET=test-secret&& uv run --python 3.12 --no-project --with-requirements backend/requirements.txt --with pytest --with pytest-asyncio python -m pytest -q backend/tests --maxfail=1",
"status": "fail",
"exit_code": 1,
"duration_sec": 17.8,
"output_tail": "<frozen importlib._bootstrap>:488\n <frozen importlib._bootstrap>:488: DeprecationWarning: builtin type SwigPyPacked has no __module__ attribute\n<frozen importlib._bootstrap>:488\n <frozen importlib._bootstrap>:488: DeprecationWarning: builtin type SwigPyObject has no __module__ attribute\n<frozen importlib._bootstrap>:488\n <frozen importlib._bootstrap>:488: DeprecationWarning: builtin type swigvarlink has no __module__ attribute\nbackend\\app\\main.py:279\nbackend\\app\\main.py:279\n C:\\Users\\russe\\Documents\\GitHub\\PMOVES.AI\\PMOVES-DoX\\backend\\app\\main.py:279: DeprecationWarning: \n on_event is deprecated, use lifespan event handlers instead.\n Read more about it in the\n [FastAPI docs for Lifespan Events](https://fastapi.tiangolo.com/advanced/events/).\n @app.on_event(\"startup\")\n..\\..\\..\\..\\AppData\\Local\\uv\\cache\\archive-v0\\HvuA5oIP2jb_YBxFMpHe8\\Lib\\site-packages\\fastapi\\applications.py:4599\n..\\..\\..\\..\\AppData\\Local\\uv\\cache\\archive-v0\\HvuA5oIP2jb_YBxFMpHe8\\Lib\\site-packages\\fastapi\\applications.py:4599\n C:\\Users\\russe\\AppData\\Local\\uv\\cache\\archive-v0\\HvuA5oIP2jb_YBxFMpHe8\\Lib\\site-packages\\fastapi\\applications.py:4599: DeprecationWarning: \n on_event is deprecated, use lifespan event handlers instead.\n Read more about it in the\n [FastAPI docs for Lifespan Events](https://fastapi.tiangolo.com/advanced/events/).\n return self.router.on_event(event_type)\nbackend\\app\\services\\reasoning_service.py:81\n C:\\Users\\russe\\Documents\\GitHub\\PMOVES.AI\\PMOVES-DoX\\backend\\app\\services\\reasoning_service.py:81: PydanticDeprecatedSince20: Support for class-based `config` is deprecated, use ConfigDict instead. Deprecated in Pydantic V2.0 to be removed in V3.0. See Pydantic V2 Migration Guide at https://errors.pydantic.dev/2.12/migration/\n class ReasoningTrace(BaseModel):\nbackend\\app\\services\\thread_manager.py:103\n C:\\Users\\russe\\Documents\\GitHub\\PMOVES.AI\\PMOVES-DoX\\backend\\app\\services\\thread_manager.py:103: PydanticDeprecatedSince20: Support for class-based `config` is deprecated, use ConfigDict instead. Deprecated in Pydantic V2.0 to be removed in V3.0. See Pydantic V2 Migration Guide at https://errors.pydantic.dev/2.12/migration/\n class ThreadContext(BaseModel):\ntests/test_agent_dispatcher.py::TestAgentInfo::test_agent_info_defaults\ntests/test_agent_dispatcher.py::TestAgentInfo::test_agent_info_with_capabilities\ntests/test_agent_dispatcher.py::TestDispatchResult::test_dispatch_result_creation\ntests/test_agent_dispatcher.py::TestDispatchResult::test_mark_completed\ntests/test_agent_dispatcher.py::TestDispatchResult::test_mark_failed\ntests/test_agent_dispatcher.py::TestDispatchResult::test_mark_timeout\ntests/test_agent_dispatcher.py::TestCachedAgent::test_cached_agent_creation\ntests/test_agent_dispatcher.py::TestCachedAgent::test_is_expired_fresh\ntests/test_agent_dispatcher.py::TestCachedAgent::test_is_expired_old\n C:\\Users\\russe\\AppData\\Local\\uv\\cache\\archive-v0\\HvuA5oIP2jb_YBxFMpHe8\\Lib\\site-packages\\pydantic\\main.py:250: DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC).\n validated_self = self.__pydantic_validator__.validate_python(data, self_instance=self)\ntests/test_agent_dispatcher.py::TestDispatchResult::test_mark_completed\n C:\\Users\\russe\\Documents\\GitHub\\PMOVES.AI\\PMOVES-DoX\\backend\\app\\services\\agent_dispatcher.py:139: DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC).\n self.end_time = datetime.utcnow()\ntests/test_agent_dispatcher.py::TestDispatchResult::test_mark_failed\n C:\\Users\\russe\\Documents\\GitHub\\PMOVES.AI\\PMOVES-DoX\\backend\\app\\services\\agent_dispatcher.py:146: DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC).\n self.end_time = datetime.utcnow()\ntests/test_agent_dispatcher.py::TestDispatchResult::test_mark_timeout\n C:\\Users\\russe\\Documents\\GitHub\\PMOVES.AI\\PMOVES-DoX\\backend\\app\\services\\agent_dispatcher.py:153: DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC).\n self.end_time = datetime.utcnow()\ntests/test_agent_dispatcher.py::TestCachedAgent::test_cached_agent_creation\ntests/test_agent_dispatcher.py::TestCachedAgent::test_is_expired_fresh\ntests/test_agent_dispatcher.py::TestCachedAgent::test_is_expired_old\n C:\\Users\\russe\\Documents\\GitHub\\PMOVES.AI\\PMOVES-DoX\\backend\\app\\services\\agent_dispatcher.py:168: DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC).\n self.cached_at = datetime.utcnow()\ntests/test_agent_dispatcher.py::TestCachedAgent::test_is_expired_fresh\ntests/test_agent_dispatcher.py::TestCachedAgent::test_is_expired_old\n C:\\Users\\russe\\Documents\\GitHub\\PMOVES.AI\\PMOVES-DoX\\backend\\app\\services\\agent_dispatcher.py:174: DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC).\n return datetime.utcnow() >= self.expires_at\n-- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html\n=========================== short test summary info ===========================\nFAILED backend\\tests\\test_agent_dispatcher.py::TestAgentDispatcherInit::test_init_creates_empty_state\n!!!!!!!!!!!!!!!!!!!!!!!!!! stopping after 1 failures !!!!!!!!!!!!!!!!!!!!!!!!!!\n1 failed, 15 passed, 28 warnings in 11.68s"
},

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟡 Minor

Windows-specific command syntax in PMOVES-DoX test command.

The command uses set SUPABASE_JWT_SECRET=test-secret&& which is Windows CMD syntax. This won't work on Linux/WSL where export SUPABASE_JWT_SECRET=test-secret && is required. As per coding guidelines, "Flag command drift across Windows/WSL/Linux instructions."

Consider documenting this as a Windows-only command or providing cross-platform alternatives in associated documentation.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@pmoves/docs/evidence/submodule_test_matrix_curated.json` around lines 68 -
75, The JSON entry for submodule "PMOVES-DoX" contains a Windows-only env var
prefix in the "command" field ("set SUPABASE_JWT_SECRET=test-secret&&"), which
fails on Linux/WSL; update the "command" value to a cross-platform form (e.g.,
prefix with POSIX-style "SUPABASE_JWT_SECRET=test-secret &&" or use a wrapper
like "env SUPABASE_JWT_SECRET=test-secret &&" or reference an env-file tool) or
mark the entry as Windows-only and add a parallel Linux/WSL command variant;
ensure you modify the "command" field in the JSON and add a short note in the
related documentation clarifying platform-specific instructions.

Comment thread pmoves/docs/evidence/submodule_test_matrix_normalized.md Outdated
Comment thread pmoves/docs/evidence/submodule_test_matrix_normalized.md Outdated
@POWERFULMOVES

Copy link
Copy Markdown
Owner Author

Handoff for Claude lane: this PR is the clean extraction of today’s atomic submodule work (strategy doc + 4 gitlink bumps + deterministic evidence refresh). Local deterministic gates passed in initialized workspace: make -C pmoves submodule-layer-validate-all-strict and make -C pmoves submodule-integrity-strict. Pending CI lanes here are queue-bound self-hosted jobs.

- Redact workstation paths across all 6 evidence files (md + json)
- Replace C:\Users\russe\... with <WORKSTATION_PATH> placeholders
- Replace AppData cache paths with <WORKSTATION_CACHE>
- Classify Pmoves-cipher /bin/bash ENOENT as platform skip (Windows)
- Add platform_note to DoX curated entry for CMD syntax
- Refresh master validation timestamp to 05:05 UTC

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@POWERFULMOVES
POWERFULMOVES merged commit 59d5f28 into main Mar 3, 2026
1 check passed
@POWERFULMOVES
POWERFULMOVES deleted the codex/submodule-atomic-validation-mar03 branch March 3, 2026 05:06
POWERFULMOVES pushed a commit that referenced this pull request Mar 26, 2026
chore: update crawl4ai from 0.6.2 to 0.7.4
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