Skip to content

Publish the memory and tools concept pages the personal-name ignore rules hid - #16

Closed
Parad0x-Labs wants to merge 2 commits into
mainfrom
mission/public-concept-pages
Closed

Parad0x-Labs wants to merge 2 commits into
mainfrom
mission/public-concept-pages

Conversation

@Parad0x-Labs

Copy link
Copy Markdown
Owner

Main CI run 35570948370 fails two docs checks:

  • test_summary_lists_only_pages_that_exist: docs/SUMMARY.md lists concepts/memory.md and concepts/tools.md, which are absent from the tracked tree.
  • test_markdown_links_inside_public_pages_resolve: docs/concepts/memory.md does not exist on a fresh checkout.

Root cause

Demonstrated: the bare MEMORY.md and TOOLS.md personal-file rules in .gitignore match the public concept pages that share their names wherever matching is case-insensitive (core.ignoreCase=true, the macOS default), so git add silently refuses the paths and git status never shows the loss - the same silent-loss mode the memory/ -> !core/memory/ negation in .gitignore already documents. Why the pages were originally omitted from the public tree is inferred from this mechanism, not proven.

Changes

  • .gitignore: two exact, repository-root-relative negations (!docs/concepts/memory.md, !docs/concepts/tools.md) added after the personal-identity block. The broad personal rules are preserved: MEMORY.md/TOOLS.md stay ignored at the root, nested, and in other casings wherever matching is case-insensitive (with case-sensitive matching only the exact names are ignored).
  • docs/concepts/memory.md, docs/concepts/tools.md: the pages restored, with claims verified against the owning implementation and unsupported absolutes removed or qualified. Memory lives in VOOL's data home (not the workspace), is one store per home (not partitioned per workspace), and MEMORY.md is a readable mirror of the entries store - erasure goes through VOOL's forget operation, which rewrites store and mirror together and re-reads both to verify. The tools page now states permission by operating mode: Manual asks for every change; Auto runs everyday file and command changes automatically while deletes, overwrites, installs, spending, deploying, messages, settings and git history still ask; the workspace and sandbox checks remain underneath. Workspace confinement is scoped to file tools, since public retrieval is read-only and reaches outside the workspace.
  • tests/test_docs_site_builds.py: a probe test drives a disposable git repository holding this repository's actual .gitignore under both core.ignoreCase settings. It pins that both public pages remain addable while root and nested MEMORY.md/TOOLS.md stay ignored, plus differently-cased lookalikes wherever matching is case-insensitive. It fails on the baseline configuration for the public-page case. The build-gate test additionally asserts both pages publish and appear in the generated search index.

Validation

The complete docs suite passes (6 existing cases preserved + 2 new parametrized = 8 collected), the build/publication gate passes with both pages published and indexed, and pinned ruff 0.16.7 passes.

Known unrelated failures on main (run 35570948370) are out of scope for this branch.

Contributor: sls_0x

sls_0x added 2 commits September 21, 2026 14:07
…ules hid

The bare MEMORY.md/TOOLS.md personal-file rules match the public concept pages
docs/concepts/memory.md and docs/concepts/tools.md under core.ignoreCase=true
(the macOS default), so git add silently refused them and git status never
showed the loss -- the same silent-loss mode the memory/ negation documents.
Negate exactly those two tracked pages; every other MEMORY.md/TOOLS.md anywhere
stays ignored, on both ignoreCase settings (new probe test).

The restored memory page drops the absolutes the owning implementation
contradicts: memory lives in VOOL's data home (core/memory/files.py), not the
workspace; it is one store per home, not per-workspace; MEMORY.md is a mirror
of the entries store, so deleting the file is not erasure -- VOOL's forget
operation rewrites both and verifies.
The tools page said changes always ask first. The mode matrix contradicts
that: Auto allows creating and editing files and side-effecting commands to
run on their own, while deletes, overwrites, installs, git history, deploy,
messages, spending and settings still prompt (MODE_PERMISSION_MATRIX in
core/mode_permission_policy.py). Say which mode does what, and that the
workspace and sandbox checks stay underneath either way. Scope the workspace
claim to file tools -- public retrieval is read-only too and reaches outside
the workspace (PUBLIC_READ_ONLY_RETRIEVAL).

The ignore comment and probe docstring overstates the case-insensitive side:
with core.ignoreCase=false only the exact names are ignored; lookalike
lowercase files are merely untracked. Describe the matching per setting;
rules and assertions unchanged.
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