rolling snapshot rollup capture

This commit is contained in:
2025-10-28 20:58:01 -05:00
parent d80d793079
commit 68df18ba37
5 changed files with 71 additions and 1 deletions

View File

@@ -10,7 +10,7 @@ Current state:
- Dockerfile installs shell tooling (zsh/bash/fish with Starship & oh-my-zsh), core CLI utilities (curl, wget, git, tmux, screen, httpie, tea, bc, etc.), build-essential + headers, aqua, and mise. Aqua is pinned to specific versions for gh, lazygit, direnv, git-delta, zoxide, just, yq, xh, curlie, chezmoi, shfmt, shellcheck, hadolint; direnv/zoxide hooks are enabled for all shells (direnv logging muted). - Dockerfile installs shell tooling (zsh/bash/fish with Starship & oh-my-zsh), core CLI utilities (curl, wget, git, tmux, screen, httpie, tea, bc, etc.), build-essential + headers, aqua, and mise. Aqua is pinned to specific versions for gh, lazygit, direnv, git-delta, zoxide, just, yq, xh, curlie, chezmoi, shfmt, shellcheck, hadolint; direnv/zoxide hooks are enabled for all shells (direnv logging muted).
- aqua-managed CLI inventory lives in README.md alongside usage notes; tea installs via direct download with checksum verification (TEA_VERSION build arg). - aqua-managed CLI inventory lives in README.md alongside usage notes; tea installs via direct download with checksum verification (TEA_VERSION build arg).
- mise handles language/tool runtimes; activation wired into zsh, bash, and fish. - mise handles language/tool runtimes; activation wired into zsh, bash, and fish.
- docker-compose.yml runs container with host UID/GID, `sleep infinity`, and docker socket mount; run via run.sh/build.sh. - docker-compose.yml runs container with host UID/GID, `sleep infinity`, and docker socket mount; run via run.sh/build.sh. Host directories `~/.local/share/mise` and `~/.cache/mise` are mounted for persistent runtimes.
- Devcontainer config ( .devcontainer/devcontainer.json ) references the compose service. - Devcontainer config ( .devcontainer/devcontainer.json ) references the compose service.
- Documentation: README.md (tooling inventory & workflow) and this PROMPT must stay current. README also notes that build.sh now uses docker buildx with a local cache directory. - Documentation: README.md (tooling inventory & workflow) and this PROMPT must stay current. README also notes that build.sh now uses docker buildx with a local cache directory.

View File

@@ -15,6 +15,7 @@ Daily-driver development container for ToolboxStack work. It provides a reproduc
```bash ```bash
./run.sh up ./run.sh up
``` ```
> Mise runtimes persist to your host in `~/.local/share/mise` and `~/.cache/mise` so language/tool downloads are shared across projects.
3. **Attach to a shell** 3. **Attach to a shell**
```bash ```bash
docker exec -it tsysdevstack-toolboxstack-toolbox-base zsh docker exec -it tsysdevstack-toolboxstack-toolbox-base zsh

View File

@@ -16,3 +16,5 @@ services:
stdin_open: true stdin_open: true
volumes: volumes:
- .:/workspace:rw - .:/workspace:rw
- ${HOME}/.local/share/mise:/home/toolbox/.local/share/mise:rw
- ${HOME}/.cache/mise:/home/toolbox/.cache/mise:rw

View File

@@ -17,6 +17,10 @@ fi
ACTION="${1:-up}" ACTION="${1:-up}"
shift || true shift || true
if [[ "${ACTION}" == "up" ]]; then
mkdir -p "${HOME}/.local/share/mise" "${HOME}/.cache/mise"
fi
case "${ACTION}" in case "${ACTION}" in
up) up)
docker compose -f "${COMPOSE_FILE}" up --build --detach "$@" docker compose -f "${COMPOSE_FILE}" up --build --detach "$@"

View File

@@ -0,0 +1,63 @@
# New Chat Summary: TSYSDevStack SupportStack End-to-End Build
## Overview
This chat will focus on executing the end-to-end build of the TSYSDevStack SupportStack using the comprehensive prompt file. The implementation will follow strict Test Driven Development (TDD) principles with all requirements specified in the prompt.
## Key Components to Build
1. **docker-socket-proxy** - Enable Docker socket access for containers that need it (not homepage)
2. **homepage** - Configure to access Docker socket directly for automatic label discovery
3. **wakaapi** - Integrate with homepage using proper labels
## Key Requirements from Prompt
- Use atomic commits with conventional commit messages
- Follow strict TDD: Write test → Execute test → Test fails → Write minimal code to pass test
- 75%+ code coverage requirement
- 100% test pass requirement
- Component-by-component development approach
- Complete one component before moving to the next
- All Docker artifacts must be prefixed with `tsysdevstack-supportstack-demo-`
- Run exclusively on localhost (localhost binding only)
- Ephemeral volumes only (no persistent storage)
- Resource limits set for single-user demo capacity
- No external network access (localhost bound only)
- Homepage container needs direct Docker socket access for labels to auto-populate
- Docker socket proxy provides controlled access for other containers that need Docker access
- All containers need proper UID/GID mapping for security
- Docker group GID must be mapped properly for containers using Docker socket
- Non-Docker socket using containers should use invoking UID/GID
- Use SQLite for every service that will support it to avoid heavier databases where possible
- Only use heavier databases when SQLite is not supported or inadequate for the service
## Implementation Process
1. Start with docker-socket-proxy (dependency for homepage)
2. Implement homepage (requires docker-socket-proxy)
3. Implement wakaapi (integrates with homepage)
4. Validate all components work together with proper service discovery
5. Run comprehensive test suite with >75% coverage
6. Ensure all tests pass with 100% success rate
## Files to Reference
- **Prompt File**: `/home/localuser/TSYSDevStack/collab/SupportStack/BuildTheStack`
- **Status Tracking**: `/home/localuser/TSYSDevStack/collab/SupportStack/STATUS.md`
- **Human Help**: `/home/localuser/TSYSDevStack/collab/SupportStack/HUMANHELP.md`
- **Production Roadmap**: `/home/localuser/TSYSDevStack/collab/SupportStack/ProdRoadmap.md`
## Directory Structure
All artifacts will be created in:
- `/home/localuser/TSYSDevStack/artifacts/SupportStack/`
## Success Criteria
- ✅ All 3 MVP components implemented and tested
- ✅ Docker socket proxy providing access for homepage discovery
- ✅ Homepage successfully discovering and displaying services through Docker labels
- ✅ WakaAPI properly integrated with homepage via Docker labels
- ✅ All tests passing with 100% success rate
- ✅ Code coverage >75%
- ✅ All containers running with proper resource limits
- ✅ All containers using correct naming convention (`tsysdevstack-supportstack-demo-*`)
- ✅ All containers with proper UID/GID mapping for security
- ✅ All services accessible on localhost only
- ✅ SQLite used for database-backed services where possible
- ✅ Zero technical debt accrued during implementation
Let's begin the end-to-end build process by reading and implementing the requirements from the prompt file!