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
| Key | Type | Default | Description |
|---|---|---|---|
enabled | bool | true | Master switch. |
Isolation modes
| Mode | What the agent sees | Disabled tools |
|---|---|---|
isolated (default) | Only the collection's log files — no code repos | knowledge_search, replace_in_file, write_file, agentic_developer |
merged | Log files plus all configured code repos | — |
Using the UI
- On the welcome page, click + New Collection
- Set Name, optional Description, and Isolation Mode
- Add files: Label, Real Path (absolute path on the server, must exist and be readable), and Symlink Name (the name the agent sees)
- 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.
| Method | Path | Description |
|---|---|---|
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}/files | Add 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:
manage_log_collection— create, list, get, update, or delete collectionsmanage_log_collection_files— add, list, or remove files in a collection
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.