Every commit scored for change-risk against this repo's own history, so 'elevated' means elevated here rather than on some global curve.
Needs review
24 commits sit in this repo's top risk tercile, which is 33% of the 73scored. The cut is drawn against this codebase's own history rather than a global curve, so a quiet repo still fills its top band, and here it starts at 8.2 out of 10. What pushes a commit up is size and spread together: a large change confined to one area scores below a smaller one scattered across a dozen files.
Commit categories over time, read off the subject line. Fixes carry the accent because that is the series this chart exists to show.
How this repo's commit mix shifts over time.
Ranked by change-risk, highest first. Priority is a tercile of this repo's own distribution, so a quiet repo still fills its top band.
| # | Commit | Author | When | Lines | Risk | Top driver |
|---|---|---|---|---|---|---|
| 1 | e358debdAdd comprehensive tests for line of sight and prop placement tools | Mnehmos | 7mo ago | +10.9K -97 | 98%Elevated | more lines added than baseline |
| 2 | 804c9b95Looking at the extensive changes in this diff, I can see this represents a major milestone in the ChatRPG project with significant tool consolidation, new features, and process improvements. | Mnehmos | 7mo ago | +16.9K -1.1K | 98%Elevated | more lines added than baseline |
| 3 | e0f83985Initial commit: 9/50 tools, 250 tests passing | Mnehmos | 7mo ago | +19.0K -0 | 98%Elevated | more lines added than baseline |
| 4 | 6c22167cRefactor combat encounter tests and add new functionality | Mnehmos | 7mo ago | +3.4K -359 | 94%Elevated | more lines added than baseline |
| 5 | f82712c5Implement state synchronization between encounters and persistent characters | Mnehmosclaudeagent | 7mo ago | +4.7K -253 | 94%Elevated | more lines added than baseline |
| 6 | 2e0b8cd1Clean up for Railway deployment - remove Smithery config, keep Dockerfile | Mnehmos | 7mo ago | +3.3K -107 | 94%Elevated | more lines added than baseline |
| 7 | 6ab47cedAdd lightweight web chatbot client for GitHub Pages deployment | Mnehmosclaudeagent | 7mo ago | +1.3K -0 | 91%Elevated | more lines added than baseline |
| 8 | facef187fix(combat): add position bounds validation and increase default grid to 50x50 | Mnehmosclaudeagent | 7mo ago | +884 -60 | 89%Elevated | more lines added than baseline |
| 9 | 99bc9374Implement stateful encounter system with character reference resolution | Mnehmosclaudeagent | 7mo ago | +763 -27 | 89%Elevated | more lines added than baseline |
| 10 | 21f52ddbAdd search and fetch tools for ChatGPT connector compatibility | Mnehmos | 7mo ago | +390 -0 | 87%Elevated | more lines added than baseline |
| 11 | bdc6c831feat(combat): add AoE spell support and improve system prompt | Mnehmosclaudeagent | 7mo ago | +325 -33 | 84%Elevated | more lines added than baseline |
| 12 | aae06982feat(web-client): add OpenRouter model switching with deepinfra/fp4 support | Mnehmosclaudeagent | 7mo ago | +338 -7 | 84%Elevated | more lines added than baseline |
| 13 | cd71e7c1Refactor web client to use OpenAI API with ChatRPG as remote MCP server | Mnehmosclaudeagent | 7mo ago | +249 -423 | 84%Elevated | more lines added than baseline |
| 14 | 18fcef84Add comprehensive deployment guide for web client | Mnehmos | 7mo ago | +255 -0 | 84%Elevated | more lines added than baseline |
| 15 | 490882cafeat(combat,web-client): implement real-time HP persistence and streaming responses with enhanced DM experience | Mnehmos | 7mo ago | +309 -44 | 79%Elevated | more lines added than baseline |
| 16 | 8552b2f8feat: Visualize tool calls in chat interface | Mnehmos | 7mo ago | +269 -192 | 79%Elevated | more lines added than baseline |
| 17 | f0327c23Add comprehensive fuzzy enum support across all tools | Mnehmosclaudeagent | 7mo ago | +244 -76 | 79%Elevated | more lines added than baseline |
| 18 | aeede25afeat(web-client,api): add typing indicator and direct tool calling for UTF-8 encoding fixes | Mnehmos | 7mo ago | +263 -28 | 76%Elevated | more lines added than baseline |
| 19 | f5eeb581refactor(spatial): complete SPAT-01, SPAT-02, and SPAT-03 improvements | Mnehmosclaudeagent | 7mo ago | +164 -122 | 74%Elevated | more lines added than baseline |
| 20 | c99374effix(combat): update terrain and entity state symbols for better clarity in battlefield rendering | Mnehmos | 7mo ago | +201 -191 | 74%Elevated | more lines added than baseline |
| 21 | 8102b40brefactor(registry): add ToolHandler and TypedToolDefinition generic types | Mnehmos | 7mo ago | +138 -39 | 71%Elevated | more lines added than baseline |
| 22 | 78dfbc32fix: repair double-encoded UTF-8 characters in source files | Mnehmosclaudeagent | 7mo ago | +156 -156 | 71%Elevated | more lines added than baseline |
| 23 | 7c6e3557feat(web-client): add follow-up narrative call after tool execution | Mnehmosclaudeagent | 7mo ago | +134 -1 | 68%Elevated | more lines added than baseline |
| 24 | 33122bf0Replace mcp-proxy with native HTTP/SSE server | Mnehmos | 7mo ago | +154 -5 | 68%Elevated | more lines added than baseline |
| 25 | 5ff4c365refactor(characters): extract calculateLevelUpHp and calculateHitDiceHealing helpers | Mnehmos | 7mo ago | +117 -25 | 66%Typical | more lines added than baseline |
| 26 | c699481afix: update stylesheet and script versioning to prevent caching issues | Mnehmos | 7mo ago | +85 -55 | 65%Typical | more lines added than baseline |
| 27 | a4c10b6arefactor(types): centralize RollModeSchema to types.ts | Mnehmos | 7mo ago | +63 -15 | 64%Typical | more lines added than baseline |
| 28 | 5376d2dbAdd LICENSE and glama.json for Glama deployment | Mnehmos | 7mo ago | +64 -1 | 62%Typical | more lines added than baseline |
| 29 | 2b977b18fix: Add cache busting to index.html to resolve stale UI | Mnehmos | 7mo ago | +56 -49 | 60%Typical | more lines added than baseline |
| 30 | d3420894feat: Make tool details expandable using HTML details tags | Mnehmos | 7mo ago | +53 -10 | 60%Typical | more lines added than baseline |
| 31 | a0b2940eAdd GitHub Pages deployment workflow to repository root | Mnehmos | 7mo ago | +57 -0 | 60%Typical | more lines added than baseline |
| 32 | 72196f58fix: enhance response headers for health check and update script versioning; add encoding repair for UTF-8 text | Mnehmos | 7mo ago | +73 -16 | 56%Typical | more lines added than baseline |
| 33 | 67189513feat: introduce web client for ChatRPG with OpenAI API and MCP server integration. | Mnehmos | 7mo ago | +48 -24 | 56%Typical | more lines added than baseline |
| 34 | 3924869bfix: Parse OpenAI Responses API output array correctly | Mnehmos | 7mo ago | +45 -6 | 54%Typical | more lines added than baseline |
| 35 | f8f1ab07feat: Enhance tool visualization with inputs, outputs, and JSON/ASCII formatting | Mnehmos | 7mo ago | +37 -1 | 52%Typical | more lines added than baseline |
| 36 | 87b8aa8ffix: Robust parsing for OpenAI Responses API output array | Mnehmos | 7mo ago | +37 -30 | 52%Typical | more lines added than baseline |
| 37 | f8c422fdEnable prompt caching with 24h retention and monitoring | Mnehmosclaudeagent | 7mo ago | +36 -3 | 50%Typical | more lines added than baseline |
| 38 | bfd9fb7drefactor(ascii-art): add BoxStyle type and JSDoc to createBox | Mnehmos | 7mo ago | +32 -3 | 49%Typical | more lines added than baseline |
| 39 | ecd18803chore: Add debug JSON dump to UI for API response parsing failure | Mnehmos | 7mo ago | +27 -24 | 47%Typical | more lines added than baseline |
| 40 | 48147831feat(web-client): add Nemotron 30B as additional OpenRouter model option | Mnehmosclaudeagent | 7mo ago | +24 -11 | 46%Typical | more lines added than baseline |
| 41 | b10a7b8efeat: Prioritize tool output visibility and fix property access | Mnehmos | 7mo ago | +20 -5 | 45%Typical | more lines added than baseline |
| 42 | 47e91eb6Fix Dockerfile: use node:20-slim, npm ci, simpler setup | Mnehmos | 7mo ago | +18 -10 | 43%Typical | more lines added than baseline |
| 43 | 2f8c5490feat(api): add /tools endpoint for OpenRouter tool discovery | Mnehmos | 7mo ago | +20 -0 | 42%Typical | more lines added than baseline |
| 44 | d4a6502eFix: Use OpenAI Responses API (GPT-5) for remote MCP support | Mnehmosclaudeagent | 7mo ago | +16 -25 | 40%Typical | more lines added than baseline |
| 45 | 7a6f6ff1Add Dockerfile with correct CMD arguments | Mnehmos | 7mo ago | +14 -0 | 39%Typical | more lines added than baseline |
| 46 | c91cb1b5fix(combat): treat non-existent characterIds as ephemeral participants | Mnehmos | 7mo ago | +14 -7 | 38%Typical | more lines added than baseline |
| 47 | 31ac5f91Add debug logging to diagnose API response format | Mnehmosclaudeagent | 7mo ago | +12 -2 | 36%Typical | more focused than baseline |
| 48 | 20d6c9b7fix: Support 'output_text' content type in OpenAI Responses API parsing | Mnehmos | 7mo ago | +11 -9 | 35%Typical | more focused than baseline |
| 49 | ce8605a4Fix: use startup script for reliable mcp-proxy exec | Mnehmos | 7mo ago | +10 -6 | 34%Typical | more subsystems than baseline |
| 50 | 88324450fix(web-client): add debug logging for text encoding and improve font rendering | Mnehmos | 7mo ago | +7 -2 | 32%Below typical | fewer lines added than baseline |
Two views of the same model: where the cuts fall, and what commit shape lands you above them.
Every scored commit, binned on the raw 0 to 10 score rather than the percentile. Percentile ranks are uniform by construction, so that axis has no shape to draw. The dashed lines are the tercile cuts behind each row's priority pill.
The 73 most recent commits, on their own recency sample rather than the feed above: that defaults to risk-sorted, so reusing it would plot only the top tercile and call it the spread. Big and scattered is what the model penalises. Click a dot to open it.
Mnehmos/mnehmos.chatrpg.game has 82 commits in its history from 2 contributors, the first of them Dec 19, 2025. No file in the repository changed in the last 90 days. Every commit is scored for change risk from its size, spread and the history of the files it touches.