Codumentor logo Codumentor

Log Collection Plugin

Lets you group log files into named collections and start conversations scoped to them. On the welcome page, a Log Collections widget lists your collections; Analyze opens a conversation against one. A banner in the conversation shows the active collection.

Configuration

plugins:
  - module: codumentor.plugins.log_collection
    class: LogCollectionPlugin
    args:
      enabled: true

Parameters

KeyTypeDefaultDescription
enabledbooltrueMaster switch.

Isolation modes

ModeWhat the agent seesDisabled tools
isolated (default)Only the collection's log files — no code reposknowledge_search, replace_in_file, write_file, agentic_developer
mergedLog files plus all configured code repos

Using the UI

  1. On the welcome page, click + New Collection
  2. Set Name, optional Description, and Isolation Mode
  3. Add files: Label, Real Path (absolute path on the server, must exist and be readable), and Symlink Name (the name the agent sees)
  4. Create Collection, then Analyze

The widget refreshes about every 30 seconds. Existing conversations are not affected when you delete a collection.

Operator API

All routes require authentication and are scoped to the calling user. They are mounted under /ui/plugins/log_collection.

MethodPathDescription
POST/Create a collection
GET/List the caller's collections
GET/{id}Collection details including files
PUT/{id}Update name, description, or isolation mode
DELETE/{id}Delete a collection
POST/{id}/filesAdd files
DELETE/{id}/files/{file_id}Remove a file

Create a collection:

curl -X POST http://localhost:2638/ui/plugins/log_collection \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $TOKEN" \
  -d '{"name": "production-logs", "description": "Prod logs", "isolation_mode": "isolated"}'

Add files (real_path must exist on the host):

curl -X POST http://localhost:2638/ui/plugins/log_collection/1/files \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $TOKEN" \
  -d '{
    "files": [{"label": "App Log", "real_path": "/var/log/app.log", "symlink_name": "app.log"}]
  }'

Start a conversation against a collection:

curl -X POST "http://localhost:2638/ui/conversations?source_type=log_collection&source_id=1" \
  -H "Authorization: Bearer $TOKEN"

Agent tools

During a log-collection conversation the agent can manage collections:

Troubleshooting

Widget missing. Confirm the plugin is in plugins with enabled: true.

404 on a collection API call. The collection must belong to the authenticated user and the id must exist.

Agent cannot read a log file. real_path must be an absolute path that exists and is readable by the Codumentor process.