- assigned_to: adityaharishch
Originally created by: Akarsh-Hegde
Originally owned by: adityaharishch
This tracks follow-up issues identified in code review of PR [#27] (feat/ui_redeisgn). Grouped by severity.
parent_key IS NULL filter excludes valid Feature-type tasks from classifier candidatesFile: services/agents/run_task_linker.py:653
The production candidate query filters out any task with a parent:
```python
" FROM pm_tasks WHERE LOWER(status_category) != 'done' AND parent_key IS NULL",
```
The JQL fetches `type IN (Task, Feature)`. In Jira, Features typically have an Epic as their parent (`parent_key IS NOT NULL`), so they are silently excluded from the candidate list. However, `build_dataset.py` (line 952) does not apply this filter — meaning the eval dataset includes Features as candidates but production never sees them. This creates a training/production mismatch.
Fix: Change to `AND issue_type != 'Subtask'` (subtasks were already removed via migration 021) or remove the filter entirely.
.pyc file committedFile: scripts/__pycache__/refresh_pm_tasks.cpython-314.pyc
Compiled Python bytecode was committed. Must be removed from git history and scripts/__pycache__/ added to .gitignore.
max_tokens silently commented out — unbounded agent token usageFile: services/agents/run_task_linker.py:662
# max_tokens=AGENT_MAX_TOKENS, # cap response size
No explanation given. The SKILL.md pitfalls section explicitly documents AGENT_MAX_TOKENS as the mitigation for truncation errors (agent_invalid_response). Removing the cap makes runaway token usage possible and the truncation pitfall more likely.
Fix: Restore max_tokens=AGENT_MAX_TOKENS, or add a clear comment explaining why removing it was intentional.
localhost:12000 URL in hermes-config/config.yamlFile: services/hermes-config/config.yaml
base_url: http://127.0.0.1:12000/v1
This is the author's local mlx_lm.server port. Other developers will get silent connection failures. The old value https://ollama.com/v1 was a usable shared default.
Fix: Revert to a shareable default URL, or document the local setup requirement in services/README.md.
File: services/tests/evals/.dataset.json
The dataset contains verbatim OCR capture data including:
Chethan MN, Suyash Diwan, Siddhi Jhade, Anshul Modh)Fix: Scrub and anonymize the data before it lives in a shared repo, or exclude this file from version control and document how to generate it locally.
"hermes_aiagent" incorrectly listed as a null task key literalFile: services/tests/evals/build_dataset.py:906
_NULL_TASK_KEYS = {"none", "null", "n/a", "nil", "undefined", "hermes_aiagent", ""}
"hermes_aiagent" is a task_method value, not a possible task_key. Its presence here looks like a copy-paste error and would silently normalize any session with task_key = 'hermes_aiagent' to "none".
Fix: Remove "hermes_aiagent" from the set.
info level with wrong format styleFile: scripts/refresh_pm_tasks.py:508
log.info(f"inserting {issue.get('key')}: {len(norm)} values")
The project uses %s-style structured logging. This is both the wrong style and debug-level noise at info.
Fix: Remove it, or change to log.debug("inserting %s: %d values", issue.get('key'), len(norm)).
STATUS_CATEGORY_MAP change creates inconsistency in existing dataThe old map included "new": "new"; the new map falls back to "todo" for Jira statusCategory.key = "new". Migration 022 preserves existing status_category values, so old rows stored as "new" won't be updated. A data migration or UPDATE statement may be needed for consistency.
skills-lock.json at repo root lacks documentationNo documentation on what this file is, how to update it, or whether CI validates it.
assignee_name column referenced in system context but never populatedservices/agents/_system_context.py references assignee_name in the pm_tasks schema, but neither src/intelligence/providers/jira.rs nor scripts/refresh_pm_tasks.py write to it. The classifier always sees NULL.
services/hermes-config/config.yaml: threshold: 0.7 → 0.5 triggers context compression earlier. Behavioral change with no comment.