Skip to content

emrg: persist repo URL in install-info.json for evolution workspace self-heal (rant 20:42) - #490

Merged
argszero merged 1 commit into
masterfrom
feature/install-info-repo-field
Aug 6, 2026
Merged

emrg: persist repo URL in install-info.json for evolution workspace self-heal (rant 20:42)#490
argszero merged 1 commit into
masterfrom
feature/install-info-repo-field

Conversation

@argszero

@argszero argszero commented Aug 6, 2026

Copy link
Copy Markdown
Owner

Summary

Complements PR #489 (evolution workspace self-heal) by persisting the EMRG repo URL in install-info.json at runtime — the write side of the repo field that #489 reads.

Background

Rant 2026-08-06T20:42:05 (方案 C) requires the clone-on-demand self-heal to source the repo URL from install-info.json's repo field (written at package time), falling back to the built-in URL. PR #489 implements the read side; this PR implements the write side: _cache_tool_paths() (called by resolve_git_gh() at daemon runtime) now persists "repo": "https://github.com/argszero/emrg.git" alongside git_path/gh_path. Packaged installs have no git remote to detect, so a runtime-persisted source makes the self-heal fully self-contained without hardcoding at clone time.

Changes

  • emrg/server/git_utils.py: _cache_tool_paths() writes repo field
  • tests/test_git_utils.py: 2 new tests (repo field written; existing fields preserved on rewrite)

Verification

  • 10/10 git_utils tests pass
  • Full suite: 475 passed
  • from emrg.client.app import run_client + emrg --help OK

…elf-heal (rant 20:42)

_cache_tool_paths now also writes 'repo' = https://github.com/argszero/emrg.git
alongside git_path/gh_path. Complements PR #489's read side: packaged
installs have no git remote to detect, so the clone-on-demand self-heal
needs a repo source persisted at runtime.

2 new tests (repo field written, existing fields preserved).

@argszero argszero left a comment

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

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

✅ LGTM — cycle 20260806-205521. Verified: (1) write side of the repo field complements #489's read side — _cache_tool_paths persists 'repo' alongside git_path/gh_path, called at daemon runtime via resolve_git_gh, so packaged installs get a self-contained clone source; (2) existing install-info.json fields preserved (tested); (3) no overlap with merged #489 (git_utils.py untouched by it); (4) CI green; (5) full suite 475 passed. Rant 20:42 acceptance fully satisfied now (read + write + tasks/projects self-heal).

@argszero argszero left a comment

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

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

✅ LGTM — cycle 20260806-2056. Second vote. Independently re-verified: (1) _cache_tool_paths now writes repo alongside git_path/gh_path via read-modify-write (preserves existing install-info fields); (2) this is the write side that #489's _repo_url_from_install_info reads — pairing completes the self-heal for packaged installs (no git remote to detect); (3) 2 new tests cover repo field written + fields preserved on rewrite; (4) git_utils 10/10, full suite 475 passed locally. Matches rant 20:42 方案 C repo-source requirement.

@argszero
argszero merged commit 148b288 into master Aug 6, 2026
1 check passed
argszero added a commit that referenced this pull request Aug 6, 2026
Version bump 0.2.7 → 0.2.8 across all 6 version sources
(pyproject.toml / emrg/__init__.py / make-installer.sh /
build-runtime.sh / gui/package.json / uv.lock). Release includes
#486/#487/#491 GUI slash commands P1-P3, #488/#492/#493 i18n prompts,
#489/#490 evolution workspace self-heal, #484/#485 README/language
policy, #483 docs cleanup. test_version_sync all green.

Co-authored-by: EMRG Evolution <emrg@argszero.dev>
@argszero
argszero deleted the feature/install-info-repo-field branch August 6, 2026 15:05
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