Skip to content

docs: navigation-node CLAUDE.md hierarchy + public-header doc-comments#109

Merged
facontidavide merged 8 commits into
mainfrom
final_scene3D-docs
Jun 1, 2026
Merged

docs: navigation-node CLAUDE.md hierarchy + public-header doc-comments#109
facontidavide merged 8 commits into
mainfrom
final_scene3D-docs

Conversation

@facontidavide
Copy link
Copy Markdown
Contributor

Add per-module navigation nodes for pj_base, pj_datastore, pj_plugins and the pj_plugins/dialog_protocol subfolder; rewrite the submodule-root CLAUDE.md as a pointer hub. Corrections: the dialog C ABI lives in pj_plugins/dialog_protocol/ (not pj_base); clang-format is pinned to v22.1.0; pj_base has 15 builtin struct headers / 14 codecs.

Add file/class doc-comments to public headers across the three libraries, and fix doc-vs-code drift in pj_datastore & pj_plugins ARCHITECTURE.md and toolbox-guide.md.

Comment/doc-only; no logic changes. PJ4 build + tests unchanged (112/112).

facontidavide and others added 7 commits May 31, 2026 11:41
Add per-module navigation nodes for pj_base, pj_datastore, pj_plugins and the
pj_plugins/dialog_protocol subfolder; rewrite the submodule-root CLAUDE.md as a pointer
hub. Corrections: the dialog C ABI lives in pj_plugins/dialog_protocol/ (not pj_base);
clang-format is pinned to v22.1.0; pj_base has 15 builtin struct headers / 14 codecs.

Add file/class doc-comments to public headers across the three libraries, and fix
doc-vs-code drift in pj_datastore & pj_plugins ARCHITECTURE.md and toolbox-guide.md.

Comment/doc-only; no logic changes. PJ4 build + tests unchanged (112/112).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Rewrite Release Versioning as a plugin-impact semver contract: MAJOR = ABI/API
break (recompile/source change; abi/baseline.abi changes only here), MINOR =
backward-compatible addition (old plugins keep working with no recompile; tail-appended,
struct_size-gated; abidiff additions-only), PATCH = compatible fixes (consumer-invisible
changes take no bump). Define the plugin Conan range [>=X.Y.Z <(X+1).0.0] and the pre-1.0
rule: no breaks within 0.x; the next ABI/API break ships as 1.0.0.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
The abidiff gate (cmake/PjAbiCheck.cmake) existed but was dormant — PJ_ENABLE_ABI_CHECK
defaulted OFF and no workflow enabled it. Install abigail-tools, configure with
-DPJ_ENABLE_ABI_CHECK=ON, and run the abi_check target after Build so an ABI-incompatible
change vs pj_base/abi/baseline.abi fails CI. Makes the Release Versioning policy's
'non-MAJOR must not break ABI' guarantee mechanical rather than aspirational.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
The ABI-gate wiring accidentally dropped the 'ccache stats' step header, merging its
if/run into the ABI-gate step (two run: keys — GitHub rejects this even though PyYAML's
safe_load silently tolerates duplicate keys). Restore the step boundary.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…DebInfo)

Temporary: the checked-in baseline.abi was captured from a local debug_asan build while
the gate runs in RelWithDebInfo, so inline SDK methods elided by the optimizer read as
739 'removed' functions. This dispatch-only step regenerates a config-consistent baseline
and uploads it as an artifact; it is removed in the follow-up commit that lands the baseline.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
libabigail's abidw takes --out-file, not -o; the abi_update_baseline target failed with a
usage error the first time it was actually run (the gate had been dormant). Permanent fix.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
- Replace pj_base/abi/baseline.abi with one generated in the same RelWithDebInfo config the
  gate runs in (the old baseline was a local debug_asan dump, so Release-inlined SDK methods
  read as 739 phantom 'removed' functions). Baseline + check are now config-consistent and the
  gate passes; a real ABI break will fail it. Regenerated via abidw in CI.
- Remove the temporary dispatch-only regen/upload steps from linux-ci.yml.
- Add the missing trailing newline / trim the extra blank line on three CLAUDE.md nodes
  (end-of-file-fixer; the submodule's local hooks were not installed when they were authored).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@facontidavide facontidavide merged commit 12805ba into main Jun 1, 2026
4 checks passed
@facontidavide facontidavide deleted the final_scene3D-docs branch June 1, 2026 10:44
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