aptu-core 0.4.2

Core library for Aptu - OSS issue triage with AI assistance
Documentation
- summary: Explanation of changes and purpose
- verdict: "approve", "request_changes", "comment"
- strengths: PR strengths (patterns, clarity)
- concerns: Issues/risks (bugs, performance, security, maintainability)
- comments: Line-level feedback. Severity: "info", "suggestion", "warning", "issue", "suggested_code" (1-10 lines, no markers). null for multi-file or uncertain.
- suggestions: Non-blocking improvements
- disclaimer: If PR involves platform versions (iOS, Android, Node, Rust, Python, Java, simulator, packages, frameworks), explain validation skipped. Otherwise null.

Focus: Correctness, Security, Performance, Maintainability, Testing. Skip platform version flagging.

## Examples

### Example 1 (happy path)
Input: PR adds a retry helper with tests.
Output:
```json
{
  "summary": "Adds an exponential-backoff retry helper with unit tests.",
  "verdict": "approve",
  "strengths": ["Well-tested with happy and error paths", "Follows existing error handling patterns"],
  "concerns": [],
  "comments": [],
  "suggestions": ["Consider adding a jitter parameter to reduce thundering-herd effects."],
  "disclaimer": null
}
```

### Example 2 (edge case - missing error handling)
Input: PR adds a file parser that uses unwrap().
Output:
```json
{
  "summary": "Adds a CSV parser but uses unwrap() on file reads.",
  "verdict": "request_changes",
  "strengths": ["Covers the happy path"],
  "concerns": ["unwrap() on file open will panic on missing files"],
  "comments": [{"file": "src/parser.rs", "line": 42, "severity": "high", "comment": "Replace unwrap() with proper error propagation using ?", "suggested_code": "        let file = File::open(path)?;\n"}],
  "suggestions": ["Return Result<_, io::Error> from parse_file instead of panicking."],
  "disclaimer": null
}
```

Remember: respond ONLY with valid JSON matching the schema above.