|
1 | 1 | {"id":"bd-10s","title":"Document attachment_paths resolution semantics","description":"README/docs do not state how attachment_paths are resolved; currently non-absolute paths resolve relative to the project archive root. Clarify in README and/or adjust behavior.","status":"closed","priority":3,"issue_type":"task","created_at":"2026-01-20T04:20:51.344765737Z","created_by":"ubuntu","updated_at":"2026-01-20T22:03:51.146956183Z","closed_at":"2026-01-20T22:03:51.146912761Z","close_reason":"Document attachment_paths resolution (archive root)","source_repo":".","compaction_level":0,"original_size":0} |
2 | | -{"id":"bd-11g","title":"mcp-toon-fixtures-expand","description":"Capture additional real-world fixtures (fetch_inbox, file_reservation_paths, macro_start_session) in /dp/toon_test_fixtures/real_world for bd-21h; document sizes and token savings.","status":"open","priority":2,"issue_type":"task","created_at":"2026-01-24T20:29:11.761111953Z","created_by":"ubuntu","updated_at":"2026-01-24T20:29:11.761111953Z","source_repo":".","compaction_level":0,"original_size":0} |
| 2 | +{"id":"bd-11g","title":"mcp-toon-fixtures-expand","description":"Capture additional real-world fixtures (fetch_inbox, file_reservation_paths, macro_start_session) in /dp/toon_test_fixtures/real_world for bd-21h; document sizes and token savings.","status":"closed","priority":2,"issue_type":"task","created_at":"2026-01-24T20:29:11.761111953Z","created_by":"ubuntu","updated_at":"2026-02-01T20:20:44.024919326Z","closed_at":"2026-02-01T20:20:44.024830899Z","source_repo":".","compaction_level":0,"original_size":0} |
3 | 3 | {"id":"bd-11w","title":"Add Factory Droid (~/.factory) integration support (GH #63)","description":"Add detection and configuration for Factory Droid AI coding tool. Need to add ~/.factory to installer script and update documentation.","status":"closed","priority":3,"issue_type":"feature","created_at":"2026-01-21T20:14:36.166776741Z","created_by":"ubuntu","updated_at":"2026-01-21T21:10:21.577919248Z","closed_at":"2026-01-21T21:10:21.577566844Z","close_reason":"Added ~/.factory detection, created integrate_factory_droid.sh, updated README","external_ref":"https://github.com/Dicklesworthstone/mcp_agent_mail/issues/63","source_repo":".","compaction_level":0,"original_size":0} |
4 | 4 | {"id":"bd-17e","title":"Clarify RBAC behavior for bearer-only deployments","description":"RBAC defaults to reader role; with JWT disabled and bearer-only auth, remote tool calls may be blocked unless RBAC is configured. Document expected setup or adjust defaults/logic.","status":"closed","priority":3,"issue_type":"task","created_at":"2026-01-20T04:21:02.328996395Z","created_by":"ubuntu","updated_at":"2026-01-20T22:08:03.215698437Z","closed_at":"2026-01-20T22:08:03.215651018Z","close_reason":"Document bearer-only RBAC behavior","source_repo":".","compaction_level":0,"original_size":0} |
5 | 5 | {"id":"bd-2bi","title":"Clear notification signal when inbox is read","description":"clear_notification_signal is defined but never used. Consider clearing signals after fetch_inbox/mark_message_read/mark-all-read to avoid stale notifications.","status":"closed","priority":3,"issue_type":"task","created_at":"2026-01-20T04:25:44.983178631Z","created_by":"ubuntu","updated_at":"2026-01-20T04:41:40.218069437Z","closed_at":"2026-01-20T04:41:40.218026656Z","close_reason":"Completed","source_repo":".","compaction_level":0,"original_size":0} |
|
13 | 13 | {"id":"bd-3lz","title":"Optimize historical inbox snapshot commit traversal","description":"get_historical_inbox_snapshot iterates up to 10k commits without path scoping; consider limiting to inbox path or using git rev-list with path filter to reduce cost on large archives.","status":"closed","priority":3,"issue_type":"task","created_at":"2026-01-20T04:11:51.610711768Z","created_by":"ubuntu","updated_at":"2026-01-20T04:48:11.933110087Z","closed_at":"2026-01-20T04:48:11.933067517Z","close_reason":"Completed","source_repo":".","compaction_level":0,"original_size":0} |
14 | 14 | {"id":"bd-3ss","title":"Handle Z-suffixed timestamps in write_message_bundle","description":"write_message_bundle uses datetime.fromisoformat without handling trailing Z; add robust parsing (accept Z and offsets) and tests.","status":"closed","priority":2,"issue_type":"task","created_at":"2026-01-20T04:11:19.761582730Z","created_by":"ubuntu","updated_at":"2026-01-20T04:42:58.006562906Z","closed_at":"2026-01-20T04:42:58.006519023Z","close_reason":"Completed","source_repo":".","compaction_level":0,"original_size":0} |
15 | 15 | {"id":"bd-7z9","title":"Review server-side file reservation enforcement semantics","description":"send_message enforcement checks reservation patterns against mail archive paths (agents/*/inbox/outbox). Docs describe reservations as project file paths; review mismatch, decide intended enforcement surface, and update logic or docs.","status":"closed","priority":3,"issue_type":"task","created_at":"2026-01-20T04:12:09.220672324Z","created_by":"ubuntu","updated_at":"2026-01-20T04:52:57.758727711Z","closed_at":"2026-01-20T04:52:57.758685491Z","close_reason":"Completed","source_repo":".","compaction_level":0,"original_size":0} |
16 | | -{"id":"bd-icd","title":"Add web UI routing support","description":"## Summary\nAdd web UI routing support to serve static files and handle SPA routing alongside MCP API endpoints.\n\n## Context\n- GitHub Issue #71 provides patch outline for web UI routing\n- Need to serve static files from web/ directory\n- Need /api/ prefix for MCP endpoints\n- Need SPA fallback routing\n\n## Requirements\n1. Serve static files from web/ directory at root\n2. Prefix all MCP tool endpoints with /api/\n3. SPA fallback: non-API routes return index.html\n4. CORS headers for local development\n\n## Technical Approach\nUsing FastAPI/Starlette:\n```python\napp.mount(\"/api\", mcp_router)\napp.mount(\"/\", StaticFiles(directory=\"web\", html=True))\n\n@app.exception_handler(404)\nasync def spa_fallback(request, exc):\n if not request.url.path.startswith(\"/api\"):\n return FileResponse(\"web/index.html\")\n raise exc\n```\n\n## Files to Modify \n- src/mcp_agent_mail/server.py - Add routing logic\n- Create web/ directory structure\n\n## Acceptance Criteria\n- [ ] Static files served at /\n- [ ] MCP endpoints at /api/*\n- [ ] SPA routes return index.html\n- [ ] Development CORS working","status":"open","priority":2,"issue_type":"feature","created_at":"2026-01-23T05:03:13.490874378Z","created_by":"ubuntu","updated_at":"2026-01-23T05:03:13.490874378Z","source_repo":".","compaction_level":0,"original_size":0} |
| 16 | +{"id":"bd-icd","title":"Add web UI routing support","description":"## Summary\nAdd web UI routing support to serve static files and handle SPA routing alongside MCP API endpoints.\n\n## Context\n- GitHub Issue #71 provides patch outline for web UI routing\n- Need to serve static files from web/ directory\n- Need /api/ prefix for MCP endpoints\n- Need SPA fallback routing\n\n## Requirements\n1. Serve static files from web/ directory at root\n2. Prefix all MCP tool endpoints with /api/\n3. SPA fallback: non-API routes return index.html\n4. CORS headers for local development\n\n## Technical Approach\nUsing FastAPI/Starlette:\n```python\napp.mount(\"/api\", mcp_router)\napp.mount(\"/\", StaticFiles(directory=\"web\", html=True))\n\n@app.exception_handler(404)\nasync def spa_fallback(request, exc):\n if not request.url.path.startswith(\"/api\"):\n return FileResponse(\"web/index.html\")\n raise exc\n```\n\n## Files to Modify \n- src/mcp_agent_mail/server.py - Add routing logic\n- Create web/ directory structure\n\n## Acceptance Criteria\n- [ ] Static files served at /\n- [ ] MCP endpoints at /api/*\n- [ ] SPA routes return index.html\n- [ ] Development CORS working","status":"closed","priority":2,"issue_type":"feature","created_at":"2026-01-23T05:03:13.490874378Z","created_by":"ubuntu","updated_at":"2026-02-01T19:45:57.592876552Z","closed_at":"2026-02-01T19:45:57.592802813Z","source_repo":".","compaction_level":0,"original_size":0} |
17 | 17 | {"id":"bd-p6n","title":"Integrate TOON into MCP Agent Mail (MCP server)","description":"## Goal\nAdd TOON (Token-Optimized Object Notation) output format to MCP Agent Mail tools/resources while keeping MCP JSON-RPC semantics intact.\n\n## Current Implementation (2026-01-22)\n\n### Output Envelope (when format=toon)\n- Return a **compact envelope** instead of the original JSON payload:\n```json\n{\n \"format\": \"toon\",\n \"data\": \"<toon string>\",\n \"meta\": {\n \"requested\": \"toon\",\n \"source\": \"param|default|implicit\",\n \"encoder\": \"tru\",\n \"toon_stats\": {\"json_tokens\": 10, \"toon_tokens\": 5, \"saved_tokens\": 5, \"saved_percent\": 50.0}\n }\n}\n```\n- The envelope is **JSON** (required by MCP), but the payload is **TOON** (token-optimized).\n- When format is omitted and no defaults are set, outputs are unchanged (JSON as before).\n\n### Format Resolution\nPrecedence: tool/resource `format` param > `MCP_AGENT_MAIL_OUTPUT_FORMAT` > `TOON_DEFAULT_FORMAT` > json.\nInvalid values raise a ValueError (expected json|toon).\n\n### Config / Env Vars\n- `MCP_AGENT_MAIL_OUTPUT_FORMAT` - default format for tool outputs.\n- `TOON_DEFAULT_FORMAT` - global fallback default for all tools/resources.\n- `TOON_TRU_BIN` - override `tru` binary path (highest precedence).\n- `TOON_BIN` - secondary override for `tru` path/command.\n- `TOON_STATS` - enable `tru --stats` and parse stderr into `meta.toon_stats`.\n\n## Implementation Summary (Done)\n- **config**: Added defaults and env mapping in `src/mcp_agent_mail/config.py`.\n- **format helpers**: `_normalize_output_format`, `_resolve_output_format` in `app.py`.\n- **TOON encode**: `_run_toon_encode`, `_encode_payload_to_toon_sync` with graceful fallback.\n- **tools**: Optional `format` param added to all MCP tools; wrapper applies TOON when requested.\n- **resources**: `?format=toon` supported for resources; format param supported in resource handlers.\n- **internal calls**: Macros and auto-handshake pass `format=\"json\"` to avoid nested TOON.\n- **docs**: README updated (Tools + Resources sections) and `resource://tooling` schemas include output format hints.\n\n## Tests (Added)\n- `tests/test_toon_formatting.py` (unit): tool & resource envelope + fallback.\n- `tests/e2e/test_toon_format_e2e.py` (e2e): smoke coverage with detailed logging.\n\n## Remaining Tasks\n1) Run quality gates (requires explicit command approval):\n - `uvx ty check`\n - `uvx ruff check --fix --unsafe-fixes`\n - `pytest tests/test_toon_formatting.py tests/e2e/test_toon_format_e2e.py`\n2) Ensure `tru` binary exists (build `toon_rust` or set `TOON_TRU_BIN` or `TOON_BIN`).\n3) Manual verification:\n - `format=toon` returns envelope with TOON payload.\n - `format=json` returns unchanged shape.\n - TOON payload decodes to JSON-equivalent.\n\n## Acceptance Criteria\n- format=toon works for tools/resources without breaking JSON defaults.\n- Envelope has minimal overhead and includes TOON payload + metadata.\n- README/Tooling schemas document format usage.\n- Unit tests + E2E pass with detailed logs.","notes":"Status update (2026-01-23):\n- Resource URI templates now include {?format,...} so FastMCP accepts query params.\n- Added test_resource_format_query_param_fastmcp.\n- README now notes optional format query param for resources.\n- Fixtures captured in /dp/toon_test_fixtures/real_world: mcp_agent_mail_health_check.{json,toon}, mcp_agent_mail_projects.{json,toon}.\n- Quality gates: uvx ty check, uvx ruff check, pytest (5 tests) all pass.\n- tru binary path resolved to /tmp/cargo-target/release/tru (CARGO_TARGET_DIR).\n- NOTE: FastMCP does not accept resource://projects without a query param; use ?format=json or ?format=toon.","status":"in_progress","priority":1,"issue_type":"task","created_at":"2026-01-22T21:49:12.340633763Z","created_by":"ubuntu","updated_at":"2026-01-24T20:40:42.594718025Z","source_repo":".","compaction_level":0,"original_size":0,"comments":[{"id":1,"issue_id":"bd-p6n","author":"QuietCanyon","text":"Updated description to tru naming (TOON_TRU_BIN/TOON_BIN, encoder=tru). Note: prior note about tr path is legacy; use tru path/env now.","created_at":"2026-01-24T20:40:01Z"}]} |
18 | 18 | {"id":"bd-ycg","title":"Harden CLI ISO parsing for Z/offset timestamps","description":"CLI commands (e.g., file_reservations check) use datetime.fromisoformat without handling 'Z' suffix; add a helper to accept Z/offset and reuse for expiry comparisons and since filters.","status":"closed","priority":3,"issue_type":"task","created_at":"2026-01-20T04:20:41.524010312Z","created_by":"ubuntu","updated_at":"2026-01-20T21:53:09.444366371Z","closed_at":"2026-01-20T21:53:09.444289776Z","close_reason":"Add ISO parser helper for Z/offset in CLI","source_repo":".","compaction_level":0,"original_size":0} |
19 | 19 | {"id":"bd-zqs","title":"Add LIKE fallback for search_messages when FTS fails","description":"HTTP search falls back to LIKE when FTS errors; MCP search_messages currently returns empty on FTS failure. Consider adding LIKE fallback for robustness and aligning CLI/tool behavior.","status":"closed","priority":3,"issue_type":"task","created_at":"2026-01-20T04:12:49.159161289Z","created_by":"ubuntu","updated_at":"2026-01-20T04:44:53.108822487Z","closed_at":"2026-01-20T04:44:53.108667365Z","close_reason":"Completed","source_repo":".","compaction_level":0,"original_size":0} |
|
0 commit comments