Skip to content

fix(star): its data lives under devlore/, like writ's - #921

Merged
David-Noble-at-work merged 3 commits into
developfrom
fix/918-star-data-under-devlore
Sep 23, 2026
Merged

David-Noble-at-work merged 3 commits into
developfrom
fix/918-star-data-under-devlore

Conversation

@David-Noble-at-work

@David-Noble-at-work David-Noble-at-work commented Sep 23, 2026 •

Copy link
Copy Markdown
Contributor

Summary

Lane 15 of NobleFactor/noblefactor-ops#217, pass 1 of two. star is one of devlore's products, and its config and
cache already said so -- ~/.config/devlore/config.d/star.yaml, ~/.cache/devlore/star -- while its data sat beside
devlore/ rather than in it.

What Was Becomes
User scope ~/.local/share/star/extensions ~/.local/share/devlore/star/extensions
System scope /usr/local/share/star/extensions /usr/local/share/devlore/star/extensions
self install target <prefix>/share/star/extensions <prefix>/share/devlore/star/extensions
Release archive share/star/extensions share/devlore/star/extensions

Each old path is still probed, after its replacement, so a machine holding both prefers the new one and nothing
breaks before writ redeploys or star is reinstalled. Pass 2, #920, removes them.

Project scope does not move. A repository's own star/extensions is build tooling: make generate calls
star devlore actions generate, and knowledge-extract.yaml calls devlore knowledge extract, both from a bare
checkout with nothing deployed.

The design document gains the model this settles (docs/architecture/star-extensions.md): scopes come from star
-- project, user, system, with embedded as packaging -- ownership comes from writ, and a repository's maintainer
chooses which scope their extensions inhabit. It also drops a fiction: the Search Path table described project scope
as ${GIT_WORKSPACE_ROOT}, an environment variable that does not exist. The root is found by walking up for .git.

Next, and required for the live path: a noblefactor-ops PR moves the base layer's com.noblefactor.ops.GitHub to
Home/common/.local/share/devlore/star/extensions, then writ deploy.

Test plan

  • make vet, make lint and make test pass
  • make dist-all PLATFORM=linux/arm64: 26 files, three binaries and 23 extensions at
    share/devlore/star/extensions, nothing at the old layout, and the recipe's own check passed
  • From a staged archive layout, self install placed 23 files at the new path and none at the old; with
    XDG_DATA_HOME pointed at the prefix's share, star devlore --help resolves through the new user probe
  • Two new search-path tests pin the order: project, new user, old user, new system, old system; and that project
    scope is absent outside a repository
  • CI on this PR

Plan: docs/plans/fix/918-star-data-under-devlore.md

Resolves #918

Time

Marker UTC Elapsed
opened (first commit) 2026-09-23T06:41:51Z —
submitted (PR opened) 2026-09-23T06:57:03Z 0.3 h after opened
merged 2026-09-23T07:09:03Z 0.2 h after submitted; 0.5 h in all

Computed by the algorithm of noblefactor-ops#188 at merge.

star is one of devlore's products, and its config and cache already said so; its data did not. The user scope becomes
~/.local/share/devlore/star/extensions, the system scope /usr/local/share/devlore/star/extensions, the self install
target <prefix>/share/devlore/star/extensions, and the release archive share/devlore/star/extensions. Each old path
is probed after its replacement so a machine holding both prefers the new one, and nothing breaks before writ
redeploys or star is reinstalled; they go in #920.

The design doc gains the model this settles: scopes come from star -- project, user, system, with embedded as
packaging -- ownership comes from writ, and a repository's maintainer chooses which scope their extensions inhabit.
It also corrects project scope's description: the root is found by walking up for .git, not read from an environment
variable named GIT_WORKSPACE_ROOT, which does not exist.
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.

star keeps its data outside devlore/: extensions belong at ~/.local/share/devlore/star/extensions

1 participant