Refactor and cleanup: remove slot_allocator.py, update mnemon-seed-pe… - #40
Conversation
#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
|
| Filename | Overview |
|---|---|
| .devcontainer/skills/codespace-lavish/scripts/lavish_planning_gui.sh | Adds the complete headed-browser stack, but leaves remote VNC access dependent on unenforced port visibility and leaks another poll supervisor on every rerun. |
| .devcontainer/skills/codespace-lavish/scripts/lavish_planning_prereqs.sh | Adds prerequisite detection and optional installation for the GUI stack; no independent blocking defect was identified. |
| .devcontainer/skills/ci-lint-check/scripts/ci_lint_check.sh | Centralizes markdown, metadata, seed, shell, and symlink checks, though workflow routing does not invoke it for every documented root shell path. |
| .github/workflows/devcontainer-ci.yml | Delegates lint validation to the canonical script while retaining path filters that omit free-disk.sh and keepalive.sh. |
| .devcontainer/skills/ci-lint-check/SKILL.md | Documents local/CI parity but inaccurately states that every .devcontainer/*.sh change triggers lint-check. |
Flowchart
%%{init: {'theme': 'neutral'}}%%
flowchart LR
User[User browser] -->|Codespace port 6080| WS[websockify / noVNC]
WS -->|VNC localhost:5900| VNC[x11vnc]
VNC --> Display[Xvfb display :99]
Display --> Chrome[Headed Chrome]
Chrome -->|localhost:4387| Lavish[Lavish-AXI session]
Poll[Persistent poll loop] --> Lavish
Prompt To Fix All With AI
### Issue 1
.devcontainer/skills/codespace-lavish/scripts/lavish_planning_gui.sh:171-173
**Passwordless VNC exposed externally**
If port 6080 is public or otherwise reachable by an untrusted user, `websockify` exposes the passwordless x11vnc service on every interface, allowing that user to control the headed Chrome session, interact with the whiteboard, and navigate the browser. **How this was verified:** The launcher combines x11vnc `-nopw`, a `0.0.0.0` websockify listener, and an external auto-connect URL without enforcing private port visibility.
### Issue 2
.devcontainer/skills/codespace-lavish/scripts/lavish_planning_gui.sh:200-213
**Reruns leak poll supervisors**
When the documented idempotent launcher is run more than once, this unguarded block starts and disowns another infinite poll loop, causing persistent background processes and concurrent long polls for the same session to accumulate.
### Issue 3
.devcontainer/skills/ci-lint-check/SKILL.md:92
**Shell-path coverage is overstated**
This table says every `.devcontainer/*.sh` change triggers `lint-check`, but the workflow filters omit `free-disk.sh` and `keepalive.sh`; contributors therefore receive no CI shell-syntax validation for changes limited to those files despite the documented guarantee.
---
For each issue above, determine whether it is valid and should be fixed. If so, fix it directly.Reviews (1): Last reviewed commit: "Merge branch 'main' into pokie" | Re-trigger Greptile
| # --- 8. Poll listener (feedback loop) — left running in background with auto-restart --- | ||
| echo "[lavish-planning-gui] starting poll listener (continuous feedback loop)..." | ||
| ( | ||
| cd "$LAVISH_DIST" | ||
| while true; do | ||
| LAVISH_AXI_PORT="$LAVISH_PORT" LAVISH_AXI_STATE_DIR="$STATE_DIR" \ | ||
| node "$LAVISH_DIST/cli.mjs" poll "$ARTIFACT" >>/tmp/lavish-poll.log 2>&1 | ||
| echo "[$(date)] poll exited, restarting in 2s..." >>/tmp/lavish-poll.log | ||
| sleep 2 | ||
| done | ||
| ) & | ||
| POLL_PID=$! | ||
| # Ensure it's in its own process group so it survives shell exit | ||
| disown -h $POLL_PID 2>/dev/null || true |
There was a problem hiding this comment.
When the documented idempotent launcher is run more than once, this unguarded block starts and disowns another infinite poll loop, causing persistent background processes and concurrent long polls for the same session to accumulate.
Prompt To Fix With AI
This is a comment left during a code review.
Path: .devcontainer/skills/codespace-lavish/scripts/lavish_planning_gui.sh
Line: 200-213
Comment:
**Reruns leak poll supervisors**
When the documented idempotent launcher is run more than once, this unguarded block starts and disowns another infinite poll loop, causing persistent background processes and concurrent long polls for the same session to accumulate.
---
For each issue above, determine whether it is valid and should be fixed. If so, fix it directly.| | `.devcontainer/wiki/**` | `lint-check` | ~30s | | ||
| | `.devcontainer/mnemon/**` | `lint-check` | ~30s | | ||
| | `.devcontainer/memories/**` | `lint-check` | ~30s | | ||
| | `.devcontainer/*.sh` | `lint-check` | ~30s | |
There was a problem hiding this comment.
Shell-path coverage is overstated
This table says every .devcontainer/*.sh change triggers lint-check, but the workflow filters omit free-disk.sh and keepalive.sh; contributors therefore receive no CI shell-syntax validation for changes limited to those files despite the documented guarantee.
Prompt To Fix With AI
This is a comment left during a code review.
Path: .devcontainer/skills/ci-lint-check/SKILL.md
Line: 92
Comment:
**Shell-path coverage is overstated**
This table says every `.devcontainer/*.sh` change triggers `lint-check`, but the workflow filters omit `free-disk.sh` and `keepalive.sh`; contributors therefore receive no CI shell-syntax validation for changes limited to those files despite the documented guarantee.
---
For each issue above, determine whether it is valid and should be fixed. If so, fix it directly.Note: If this suggestion doesn't match your team's coding style, reply to this and let me know. I'll remember it for next time!
…… (#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
lavish_planning_prereqs.shto verify and install dependencies for the lavish-planning-gui skill in Codespaces.codespace-lavishskill, detailing architecture, usage, and prerequisites.ci-lint-checkskill to validate markdown, SKILL.md structure, and shell scripts before commits.ci-lint-checkinto the CI workflow to ensure linting occurs automatically on relevant changes.INDEX.mdto 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