Skip to content

Fix symlink command and update hermes-agent installation - #1

Merged
gitricko merged 10 commits into
mainfrom
gitricko-patch-1
May 11, 2026
Merged

gitricko merged 10 commits into
mainfrom
gitricko-patch-1

Conversation

@gitricko

@gitricko gitricko commented May 11, 2026

Copy link
Copy Markdown
Owner

This pull request updates the development container setup to improve reliability and performance, particularly around the installation and management of modelrelay, adds support for ripgrep to enhance search capabilities, and ensures deterministic installation of hermes-agent. The changes also include improved logging and a new post-start-cmd.sh script for better container lifecycle handling.

Devcontainer configuration improvements:

  • Updated .devcontainer/devcontainer.json to redirect logs from postCreateCommand and postStartCommand to files, and to use a new post-start-cmd.sh script for startup tasks.

Modelrelay installation and management:

  • Improved installation logic in .devcontainer/post-create-cmd.sh to use a forceful symlink (ln -sf), check if modelrelay is already running before starting it, and provide clearer logging.
  • Added a new .devcontainer/post-start-cmd.sh script to check and start modelrelay on container start, with appropriate logging and a delay to ensure proper startup.

Tooling and agent installation enhancements:

  • Added logic to install ripgrep (rg) if not present, improving search performance for hermes-agent on Linux systems.
  • Updated hermes-agent installation to use a fixed version (v2026.5.7) for deterministic builds.

Other improvements:

  • Minor cleanup and improved cache handling in setup scripts. [1] [2]

Copilot AI review requested due to automatic review settings May 11, 2026 04:22

Copilot AI 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.

Pull request overview

Updates the devcontainer post-create script to make modelrelay installation idempotent and to pin hermes-agent installation to a specific version instead of tracking main.

Changes:

  • Use ln -sf for the modelrelay symlink to avoid failures when the link already exists.
  • Pin hermes-agent installer download to v2026.5.7 via a HERMES_VERSION variable.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread .devcontainer/post-create-cmd.sh
@gitricko
gitricko merged commit c715cb5 into main May 11, 2026
1 check passed
@gitricko
gitricko deleted the gitricko-patch-1 branch May 11, 2026 13:17
gitricko added a commit that referenced this pull request Aug 3, 2026
* Add codespace keepalive to prevent idle shutdown (#1)

* Add codespace keepalive to prevent idle shutdown

Two-layer keepalive so headless services (gateway, ollama) aren't reaped
by the Codespaces idle timeout:

- keepalive.sh: (A) periodic terminal heartbeat on the session tty to
  mimic client activity (GitHub platform idle signal); (B) pinger to the
  VS Code server internal /delay-shutdown endpoint to reset the 5-min
  server-side shutdown timer. Zero-auth endpoint, verified HTTP 200.
- start-hermes.sh: start keepalive idempotently (pgrep-guarded) on every
  codespace start/rebuild, using existing SCRIPT_DIR var.
- wiki/keepalive-proposal.md: design, layers, success criteria, risks.
- wiki/codespace-lifecycle.md: reference on Codespaces idle detection.
  (Folds in the removed orphan skill's content.)
- wiki/INDEX.md + mnemon/seed.json updated (keepalive, importance=5).

Shell syntax, seed.json validation, and keepalive --test pass locally.

* chore: add trailing newlines to keepalive and wiki files (markdownlint MD047)

* feat: add non-blocking CI watch pattern to skill and playbook

Add a new section to the github-codespace skill documenting the
background + notify_on_complete pattern for watching long CI builds
without blocking the agent turn or burning a sleep-polling loop.

Cross-reference this in the codespace-playbook wiki (Step 3: Monitor)
as a third option alongside polling and streaming approaches, so both
the skill (procedural) and wiki (reference) stay in sync.

Skill change: .devcontainer/skills/github-codespace/SKILL.md
  - "Non-blocking watch from an agent turn" subsection under CI Monitoring

Wiki change: .devcontainer/wiki/codespace-playbook.md
  - "Agent session approach" bullet in Step 3: Monitor (Poll or Stream)
  - links to the skill for full rationale and code

No functional code changes; documentation/skill only.

* fix: discover keepalive heartbeat tty at runtime, drop hardcoded PID

Replace the hardcoded hermes PID (17522) with runtime pgrep discovery that
resolves the interactive hermes process attached to a tty, skipping the
headless gateway/dashboard/supervised processes. Keeps keepalive portable
across rebuilds and CI (where that PID won't exist).

* fix: make keepalive --test robust to cwd; clean output

- Resolve SCRIPT_DIR/SELF from the script's own location so --test passes
  when invoked from the repo root or CI, not just from .devcontainer/.
- Fix handed-off \n Note echo that printed a literal backslash-n.

* Potential fix for pull request finding

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>

---------

Co-authored-by: gitricko <gitricko@users.noreply.github.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
gitricko added a commit that referenced this pull request Aug 3, 2026
* Add codespace keepalive to prevent idle shutdown (#1)

* Add codespace keepalive to prevent idle shutdown

Two-layer keepalive so headless services (gateway, ollama) aren't reaped
by the Codespaces idle timeout:

- keepalive.sh: (A) periodic terminal heartbeat on the session tty to
  mimic client activity (GitHub platform idle signal); (B) pinger to the
  VS Code server internal /delay-shutdown endpoint to reset the 5-min
  server-side shutdown timer. Zero-auth endpoint, verified HTTP 200.
- start-hermes.sh: start keepalive idempotently (pgrep-guarded) on every
  codespace start/rebuild, using existing SCRIPT_DIR var.
- wiki/keepalive-proposal.md: design, layers, success criteria, risks.
- wiki/codespace-lifecycle.md: reference on Codespaces idle detection.
  (Folds in the removed orphan skill's content.)
- wiki/INDEX.md + mnemon/seed.json updated (keepalive, importance=5).

Shell syntax, seed.json validation, and keepalive --test pass locally.

* chore: add trailing newlines to keepalive and wiki files (markdownlint MD047)

* feat: add non-blocking CI watch pattern to skill and playbook

Add a new section to the github-codespace skill documenting the
background + notify_on_complete pattern for watching long CI builds
without blocking the agent turn or burning a sleep-polling loop.

Cross-reference this in the codespace-playbook wiki (Step 3: Monitor)
as a third option alongside polling and streaming approaches, so both
the skill (procedural) and wiki (reference) stay in sync.

Skill change: .devcontainer/skills/github-codespace/SKILL.md
  - "Non-blocking watch from an agent turn" subsection under CI Monitoring

Wiki change: .devcontainer/wiki/codespace-playbook.md
  - "Agent session approach" bullet in Step 3: Monitor (Poll or Stream)
  - links to the skill for full rationale and code

No functional code changes; documentation/skill only.

* fix: discover keepalive heartbeat tty at runtime, drop hardcoded PID

Replace the hardcoded hermes PID (17522) with runtime pgrep discovery that
resolves the interactive hermes process attached to a tty, skipping the
headless gateway/dashboard/supervised processes. Keeps keepalive portable
across rebuilds and CI (where that PID won't exist).

* fix: make keepalive --test robust to cwd; clean output

- Resolve SCRIPT_DIR/SELF from the script's own location so --test passes
  when invoked from the repo root or CI, not just from .devcontainer/.
- Fix handed-off \n Note echo that printed a literal backslash-n.

* Potential fix for pull request finding

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>

* feat: persistent memory via symlinks (Option A) + self-check validation (#2)

* feat: persistent memory via symlinks (Option A) + self-check validation

- post-create-cmd.sh: authoritative creation of ~/.hermes/memories -> .devcontainer/memories (whole-folder symlink, skills pattern), runs before Hermes instantiates the runtime dir
- start-hermes.sh: slim repair guard for pre-existing containers (postCreateCommand doesn't re-run)
- self-check.sh: Persistence section validates both symlinks (memories + skills), 3-case logic, 9c content check removed as redundant with git checkout
- devcontainer-ci.yml: memories/skills in runtime path group (30s lint-check, not 15min full-build); lint-check gains 'Validate symlink persistence' step
- .devcontainer/memories/: MEMORY.md, USER.md, .gitignore (*.lock, *.log) — git-tracked persistence store
- wiki: persistent-memory-proposal.md (reference) + INDEX entry
- skill: codespace-persistent-symlinks (procedural) + seed.json entries for Option A, self-check, CI wiring, wiki, skill

* fix: remove trailing spaces in persistent-memory-proposal.md (MD009)

* fix: symlink persistence check must be static (bare runner has no devcontainer symlinks)

* chore: sync MEMORY.md with runtime rules (CI path-filter convention, gh pr create ref-lag workaround)

---------

Co-authored-by: gitricko <gitricko@users.noreply.github.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
gitricko pushed a commit that referenced this pull request Aug 19, 2026
#34)

* feat: codespace-vscode-open skill — auto-discover VS Code CLI in Codespaces (#1)

* feat: add codespace-vscode-open skill for auto-discovering VS Code CLI in Codespaces

* docs: enhance codespace-vscode-open skill with wiki link, mnemon persistence, related skills

* improve codespace-gh-auth

* Add documentation for Codespace port visibility automation and GitHub operations

- Introduced `codespace-port-visibility.md` detailing automation for managing port visibility in GitHub Codespaces.
- Created `github-codespace.md` to outline GitHub operations, authentication methods, and CI monitoring/debugging strategies in Codespaces.
- Added `github-pr-review.md` for evaluating automated review comments from CodeQL and Copilot on pull requests.
- Documented `memory-automation.md` for Mnemon persistence workflow, including recall and save patterns.
- Established `mnemon-seed-persistence.md` to explain the importance of seed.json for Mnemon memory across Codespace rebuilds.
- Introduced `persistent-knowledge.md` to describe the architecture for persisting skills and knowledge in Codespaces using symlinks.

* feat: enhance codespace-vscode-open skill with auto-discovery and installation script

* refactor: remove redundant installation section from SKILL.md

* feat: set default terminal working directory in hermes configuration

to preven jebberish

* feat: increase port polling timeout and add mnemon integration test to CI workflow
gitricko pushed a commit that referenced this pull request Aug 19, 2026
#1) (#40)

* Refactor and cleanup: remove slot_allocator.py, update mnemon-seed-persistence and persistent-knowledge documentation, and delete outdated lavish-axi setup files

* Add lavish planning prerequisites script and CI lint check skill

- Implemented `lavish_planning_prereqs.sh` to verify and install dependencies for the lavish-planning-gui skill in Codespaces.
- Updated wiki with new documentation for `codespace-lavish` skill, detailing architecture, usage, and prerequisites.
- Created `ci-lint-check` skill to validate markdown, SKILL.md structure, and shell scripts before commits.
- Integrated `ci-lint-check` into the CI workflow to ensure linting occurs automatically on relevant changes.
- Enhanced `INDEX.md` to include links to new skills and documentation.

* fix: restore lint-check job in devcontainer CI workflow

* docs: add dev/prod parity pattern for CI lint checks and update mnemon seed persistence workflow
gitricko pushed a commit that referenced this pull request Aug 21, 2026
* Refactor and cleanup: remove slot_allocator.py, update mnemon-seed-pe… (#1)

* Refactor and cleanup: remove slot_allocator.py, update mnemon-seed-persistence and persistent-knowledge documentation, and delete outdated lavish-axi setup files

* Add lavish planning prerequisites script and CI lint check skill

- Implemented `lavish_planning_prereqs.sh` to verify and install dependencies for the lavish-planning-gui skill in Codespaces.
- Updated wiki with new documentation for `codespace-lavish` skill, detailing architecture, usage, and prerequisites.
- Created `ci-lint-check` skill to validate markdown, SKILL.md structure, and shell scripts before commits.
- Integrated `ci-lint-check` into the CI workflow to ensure linting occurs automatically on relevant changes.
- Enhanced `INDEX.md` to include links to new skills and documentation.

* fix: restore lint-check job in devcontainer CI workflow

* docs: add dev/prod parity pattern for CI lint checks and update mnemon seed persistence workflow

* feat(skill): selkies-native-desktop skill for portable Selkies/XFCE (#3)

* feat(skill): add selkies-native-desktop skill for portable Selkies/XFCE

- Generic control script (prereqs/install/start/stop/restart/status/autostart/logs)
- Environment variable overrides for all paths, ports, and display
- Auto XFCE session config creation (prevents failsafe session popup)
- Template nginx config with placeholder substitution
- Prerequisite checker (prereqs.sh) with --fix auto-install
- References: architecture.md, troubleshooting.md, selkies-package-discrepancy.md
- Cross-reference from github-codespace skill

Generic version of the Codespace-specific selkies stack, works on any Ubuntu/Debian base.

* fix(skill): add prereqs subcommand dispatch to selkies-native.sh

SKILL.md already documented the prereqs subcommand, but the main()
dispatch was missing it. Now 'selkies-native.sh prereqs' delegates
to prereqs.sh.

* fix(ci): wrap bare URLs in markdown to pass MD034 lint

- SKILL.md: wrap pypi.org and selkies-project URLs in <>
- selkies-package-discrepancy.md: wrap github URL in <>
- CI lint-check failure was MD034/no-bare-urls on these two URLs

* docs(skills): encode MD034/no-bare-urls pitfall + ci-lint-check pre-commit gate

- ci-lint-check/SKILL.md: add pitfall that raw URLs fail MD034; must wrap in <>
- selkies-native-desktop/SKILL.md: add CI lint gate note (run ci_lint_check.sh before commit)

* feat(selkies): port 3000 consistency + mnemon seed + venv gitignore

- Change default NGINX_PORT from 8899 to 3000 (webtop standard) across
  SKILL.md, references, and selkies-native.sh
- Add Mnemon seed entry (importance 4) for launching webtop/Selkies desktop
  on request — encodes pixelflux wheel source + libva deps gotchas
- Add .gitignore to .devcontainer/selkies/ ignoring venv/ and wheels/
- Remove redundant proposed seed file (merged into seed.json)

* docs(wiki): add selkies native desktop wiki articles

- selkies-native-desktop.md: architecture, WebSocket-only streaming, XFCE
  failsafe fix, port 3000, two-implementation comparison (PR2 vs PR3)
- selkies-package-discrepancy.md: PyPI 1.6.1 vs GitHub Actions wheel gotcha
- INDEX.md: register both new articles

* feat: add selkies-native webtop control script and prerequisites

- Introduced `prereqs.sh` to check and install system dependencies for the codespace webtop.
- Added `selkies-native.sh` for managing the Selkies/XFCE webtop stack, including installation, starting, stopping, and status checks.
- Created `.gitignore` to exclude vendored wheels.
- Added nginx configuration template for reverse proxying to the Selkies server.
- Updated wiki documentation to reflect changes and provide guidance on the new webtop setup.
- Implemented autostart functionality for seamless integration with shell environments.

* fix(codespace-webtop): Greptile P1/P2 — document auth posture + mktemp staging path

- P2: replace predictable PID-derived /tmp/selkies-nginx-$$.conf with
  mktemp (CVE-style symlink-substitution hardening on multi-user hosts).
- P1: keep --enable-basic-auth=false by design (Codespace port-forward is
  GitHub-authenticated), but document the exposure + hardening for the
  VM/bare-metal target in SKILL.md and the LLM wiki. Inline comment added
  at the selkies start call.

---------

Co-authored-by: pokemanricko <noreply@github.com>
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