Fix symlink command and update hermes-agent installation - #1
Merged
Merged
Conversation
Contributor
There was a problem hiding this comment.
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 -sffor the modelrelay symlink to avoid failures when the link already exists. - Pin hermes-agent installer download to
v2026.5.7via aHERMES_VERSIONvariable.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
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>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This pull request updates the development container setup to improve reliability and performance, particularly around the installation and management of
modelrelay, adds support forripgrepto enhance search capabilities, and ensures deterministic installation ofhermes-agent. The changes also include improved logging and a newpost-start-cmd.shscript for better container lifecycle handling.Devcontainer configuration improvements:
.devcontainer/devcontainer.jsonto redirect logs frompostCreateCommandandpostStartCommandto files, and to use a newpost-start-cmd.shscript for startup tasks.Modelrelay installation and management:
.devcontainer/post-create-cmd.shto use a forceful symlink (ln -sf), check ifmodelrelayis already running before starting it, and provide clearer logging..devcontainer/post-start-cmd.shscript to check and startmodelrelayon container start, with appropriate logging and a delay to ensure proper startup.Tooling and agent installation enhancements:
ripgrep(rg) if not present, improving search performance forhermes-agenton Linux systems.hermes-agentinstallation to use a fixed version (v2026.5.7) for deterministic builds.Other improvements: