Shared AI Memory System

Brain

Browse, filter, edit, and archive the shared memory store from one page.

Memories

14
GLPI Bot Runner Implementation codex
glpi_bot_runner_implementation_2026_03_22 2026-03-22
glpi-task-history architecture

# GLPI Bot Runner Implementation Implemented a v1 GLPI bot workflow on `svc-auto` with a trusted execution backend and live GLPI, docs, and `brain` integration. ## Deployment - H...

architecture automation glpi homelab-bot svc-auto
GLPI Ticket 15: GLPI bot systemd_remote ssh solved test glpi-bot
glpi_ticket_15_glpi_bot_systemd_remote_ssh_solved_test_2026_03_22 2026-03-22
glpi-task-history glpi-ticket-executions

# GLPI Ticket 15 Execution Record Title: GLPI bot systemd_remote ssh solved test Outcome: solved Category: Homelab Bot Entity: Root Entity Documentation: docs/generated/glpi-bot/t...

glpi homelab-bot solved task-completion ticket-15
GLPI Ticket 14: GLPI bot docker_container_check solved test glpi-bot
glpi_ticket_14_glpi_bot_docker_container_check_solved_test_2026_03_22 2026-03-22
glpi-task-history glpi-ticket-executions

# GLPI Ticket 14 Execution Record Title: GLPI bot docker_container_check solved test Outcome: solved Category: Homelab Bot Entity: Root Entity Documentation: docs/generated/glpi-b...

glpi homelab-bot solved task-completion ticket-14
GLPI Ticket 13: GLPI bot systemd_remote solved test glpi-bot
glpi_ticket_13_glpi_bot_systemd_remote_solved_test_2026_03_22 2026-03-22
glpi-task-history glpi-ticket-executions

# GLPI Ticket 13 Execution Record Title: GLPI bot systemd_remote solved test Outcome: pending Category: Homelab Bot Entity: Root Entity Documentation: docs/generated/glpi-bot/tick...

glpi homelab-bot pending task-completion ticket-13
GLPI Ticket 12: GLPI bot path_exists solved test glpi-bot
glpi_ticket_12_glpi_bot_path_exists_solved_test_2026_03_22 2026-03-22
glpi-task-history glpi-ticket-executions

# GLPI Ticket 12 Execution Record Title: GLPI bot path_exists solved test Outcome: solved Category: Homelab Bot Entity: Root Entity Documentation: docs/generated/glpi-bot/ticket-1...

glpi homelab-bot solved task-completion ticket-12
GLPI Ticket 11: GLPI bot docker compose mounted-cli solved test glpi-bot
glpi_ticket_11_glpi_bot_docker_compose_mounted_cli_solved_test_2026_03_22 2026-03-22
glpi-task-history glpi-ticket-executions

# GLPI Ticket 11 Execution Record Title: GLPI bot docker compose mounted-cli solved test Outcome: solved Category: Homelab Bot Entity: Root Entity Documentation: docs/generated/gl...

glpi homelab-bot solved task-completion ticket-11
GLPI Ticket 10: GLPI bot docker compose cli solved test glpi-bot
glpi_ticket_10_glpi_bot_docker_compose_cli_solved_test_2026_03_22 2026-03-22
glpi-task-history glpi-ticket-executions

# GLPI Ticket 10 Execution Record Title: GLPI bot docker compose cli solved test Outcome: pending Category: Homelab Bot Entity: Root Entity Documentation: docs/generated/glpi-bot/...

glpi homelab-bot pending task-completion ticket-10
GLPI Ticket 9: GLPI bot docker compose final solved test glpi-bot
glpi_ticket_9_glpi_bot_docker_compose_final_solved_test_2026_03_22 2026-03-22
glpi-task-history glpi-ticket-executions

# GLPI Ticket 9 Execution Record Title: GLPI bot docker compose final solved test Outcome: pending Category: Homelab Bot Entity: Root Entity Documentation: docs/generated/glpi-bot...

glpi homelab-bot pending task-completion ticket-9
GLPI Ticket 8: GLPI bot docker compose solved test glpi-bot
glpi_ticket_8_glpi_bot_docker_compose_solved_test_2026_03_22 2026-03-22
glpi-task-history glpi-ticket-executions

# GLPI Ticket 8 Execution Record Title: GLPI bot docker compose solved test Outcome: pending Category: Homelab Bot Entity: Root Entity Documentation: docs/generated/glpi-bot/ticke...

glpi homelab-bot pending task-completion ticket-8
GLPI Ticket 7: GLPI bot docker compose local fast-path test glpi-bot
glpi_ticket_7_glpi_bot_docker_compose_local_fast_path_test_2026_03_22 2026-03-22
glpi-task-history glpi-ticket-executions

# GLPI Ticket 7 Execution Record Title: GLPI bot docker compose local fast-path test Outcome: pending Category: Homelab Bot Entity: Root Entity Documentation: docs/generated/glpi-...

glpi homelab-bot pending task-completion ticket-7
GLPI Ticket 6: GLPI bot docker compose remote solved test glpi-bot
glpi_ticket_6_glpi_bot_docker_compose_remote_solved_test_2026_03_22 2026-03-22
glpi-task-history glpi-ticket-executions

# GLPI Ticket 6 Execution Record Title: GLPI bot docker compose remote solved test Outcome: pending Category: Homelab Bot Entity: Root Entity Documentation: docs/generated/glpi-bo...

glpi homelab-bot pending task-completion ticket-6
GLPI Ticket 5: GLPI bot trusted dispatcher solved test glpi-bot
glpi_ticket_5_glpi_bot_trusted_dispatcher_solved_test_2026_03_22 2026-03-22
glpi-task-history glpi-ticket-executions

# GLPI Ticket 5 Execution Record Title: GLPI bot trusted dispatcher solved test Outcome: solved Category: Homelab Bot Entity: Root Entity Documentation: docs/generated/glpi-bot/ti...

glpi homelab-bot solved task-completion ticket-5
GLPI Ticket 4: GLPI bot trusted dispatcher test glpi-bot
glpi_ticket_4_glpi_bot_trusted_dispatcher_test_2026_03_22 2026-03-22
glpi-task-history glpi-ticket-executions

# GLPI Ticket 4 Execution Record Title: GLPI bot trusted dispatcher test Outcome: pending Category: Homelab Bot Entity: Root Entity Documentation: docs/generated/glpi-bot/ticket-4...

glpi homelab-bot pending task-completion ticket-4
GLPI Ticket 3: GLPI bot runner end-to-end test glpi-bot
glpi_ticket_3_glpi_bot_runner_end_to_end_test_2026_03_22 2026-03-22
glpi-task-history glpi-ticket-executions

# GLPI Ticket 3 Execution Record Title: GLPI bot runner end-to-end test Outcome: pending Category: Homelab Bot Entity: Root Entity Documentation: docs/generated/glpi-bot/ticket-3....

glpi homelab-bot pending task-completion ticket-3

GLPI Bot Runner Implementation

active Edit Selected
Key
glpi_bot_runner_implementation_2026_03_22
Source
codex
Namespace
glpi-task-history
Doc Section
architecture
Created
2026-03-22 17:08
Updated
2026-03-22 17:48
Doc Version
none
Chunk
none
architecture automation glpi homelab-bot svc-auto
# GLPI Bot Runner Implementation Implemented a v1 GLPI bot workflow on `svc-auto` with a trusted execution backend and live GLPI, docs, and `brain` integration. ## Deployment - Host: `svc-auto` - Path: `/home/svc-admin/docker/glpi-bot-runner` - Service: `glpi-bot-runner` - Architecture doc: `docs/architecture/glpi-bot-runner.md` ## What it does - Authenticates to GLPI v2 with OAuth password grant - Polls GLPI tickets in category `Automation > Homelab Bot` - Requires `homelab-bot` assignment via TeamMember role `assigned` - Posts a claimed follow-up - Moves the ticket to `In Progress` - Parses a structured YAML bot spec from the ticket body - Executes only trusted built-in actions - Writes a Markdown artifact into the homelab documentation repo - Stores a matching memory in `brain` - Posts a professional completion-style follow-up - Moves the ticket to `Solved` on success or `Pending` on blocked/invalid work ## Current execution mode `EXECUTOR_MODE=trusted_dispatch` Supported actions now verified in live tickets: - `http_check` - `docker_compose_remote` - `path_exists` - `docker_container_check` - `systemd_remote` The dispatcher does not execute arbitrary shell from ticket text. `docker_compose_remote` is constrained by host, path, and action allowlists. ## Files - `/home/svc-admin/docker/glpi-bot-runner/docker-compose.yml` - `/home/svc-admin/docker/glpi-bot-runner/.env` - `/home/svc-admin/docker/glpi-bot-runner/app/` - `/home/svc-admin/docker/glpi-bot-runner/templates/` - `/home/svc-admin/homelab-doc-sync/homelab-documentation-system/docs/architecture/glpi-bot-runner.md` ## GLPI structure created - Category: `Automation` - Category: `Automation > Homelab Bot` - Followup template: `Bot Claimed - Homelab` - Followup template: `Bot Blocked - Homelab` - Followup template: `Bot Completion - Homelab` ## Operational decisions and fixes - GLPI v2 ticket creation needs `category: {id: 2}`; using `itilcategories_id` did not populate the category field the runner filters on. - `GLPI_ALLOWED_STATUS_IDS` was tightened to `1` so already-claimed tickets are not reprocessed every poll cycle. - `path_exists` and `systemd_remote` now force host execution over SSH instead of using the local-container fast path. - `systemd_remote` uses `sudo -n` and `systemctl --no-pager` for unattended execution. - `svc-auto` needed `22/tcp` allowed from the runner bridge subnet `172.23.0.0/16` so SSH-based same-host actions could reach the host from the container. - `svc-auto` also needed its local `~/.ssh/id_ed25519.pub` added to `authorized_keys` so the runner container's mounted key could authenticate back to the host. - `workflow.py` was fixed to import `ExecutionResult` in the exception path. ## Validation Validated live against GLPI and the runner. - Ticket `3` proved the lifecycle and artifact path in pending mode. - Ticket `4` proved invalid specs are blocked cleanly. - Ticket `5` executed a real `http_check` action, posted follow-ups, wrote `docs/generated/glpi-bot/ticket-5.md`, stored a `brain` memory, and moved to `Solved`. - Ticket `11` executed `docker_compose_remote` successfully and moved to `Solved`. - Ticket `12` executed `path_exists` successfully and moved to `Solved`. - Ticket `14` executed `docker_container_check` successfully and moved to `Solved`. - Ticket `15` executed `systemd_remote` successfully and moved to `Solved`. - Ticket `13` captured the pre-fix `systemd_remote` failure mode and remains a useful artifact for the earlier local-container/SSH routing issue. ## Next step Add more trusted actions as explicit handlers rather than allowing arbitrary command execution from ticket text.

Edit Memory

View Selected