-
-
Notifications
You must be signed in to change notification settings - Fork 0
Contributing
Nick Wilkinson edited this page Jul 6, 2026
·
1 revision
Trove is intentionally small, practical, and read-only.
If you contribute, preserve that shape.
- Read-only first.
- Simple beats clever.
- SQLite is fine until there is a real reason it is not.
- Agents push. The server does not control agents.
- Platform credentials should be least-privilege.
- Avoid notification spam.
- Do not turn Trove into a management plane.
Run:
make fmt
make vet
make testFor bigger changes, also run a local server and at least one real agent.
A new agent should:
- use
internal/agentkit - implement
Collector - map platform objects into
pkg/model - use read-only platform APIs
- document required credentials
- include troubleshooting notes for common permission failures
Avoid bringing server/store dependencies into agent code.
Changes to pkg/model affect agents and server.
Think through:
- compatibility with older agents
- validation behaviour
- JSON field names
- whether the field belongs in the common model or platform metadata
Be careful with alert state.
Alerts must avoid:
- repeat spam for the same incident
- missing resolved notices
- boot floods
- treating every deploy as an incident
- losing delivery state during cooldown or reconnects
Add regression tests for edge cases.
Schema changes need migrations.
Do not rely on manual SQLite changes.
Preserve existing data where practical.
Update docs when changing:
- install steps
- environment variables
- platform credentials
- alert behaviour
- API shapes
- release workflow
- security posture
Docs should be practical. Include the command someone will actually run and the mistake they are likely to make.