@meridiona/meridian-darwin-arm64 1.48.1 → 1.48.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/VERSION CHANGED
@@ -1 +1 @@
1
- 1.48.1
1
+ 1.48.2
package/bin/meridian CHANGED
Binary file
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@meridiona/meridian-darwin-arm64",
3
- "version": "1.48.1",
3
+ "version": "1.48.2",
4
4
  "description": "Prebuilt Meridian app for macOS arm64 (daemon binary + dashboard + Python services). Installed via @meridiona/meridian.",
5
5
  "homepage": "https://github.com/Meridiona/meridian",
6
6
  "repository": {
@@ -51,6 +51,6 @@ DATABASE (for verification and ad-hoc queries)
51
51
  app_sessions: id, app_name, started_at, ended_at, duration_s, session_text,
52
52
  session_text_source, window_titles, category, confidence,
53
53
  task_key, task_confidence, task_routing
54
- pm_tasks: task_key, title, description_text, issue_type, status_category,
54
+ pm_tasks: task_key, title, description_text, issue_type, status_raw, is_terminal,
55
55
  parent_key, epic_title, sprint_name, assignee_name
56
56
  """
@@ -177,7 +177,7 @@ def risk_flagger(run_output: RunOutput, *, bundle: SessionBundle) -> None:
177
177
  if upd.confidence < config.PM_WORKLOG_MIN_CONFIDENCE:
178
178
  flags.add(RiskFlag.LOW_CONFIDENCE)
179
179
 
180
- if bundle.pm_task_status == "done":
180
+ if bundle.pm_task_is_terminal:
181
181
  flags.add(RiskFlag.TICKET_CLOSED)
182
182
 
183
183
  # Cross-ticket leak: any bullet that references a session_id which
@@ -57,7 +57,8 @@ class SessionBundle(BaseModel):
57
57
  real_seconds: int
58
58
  raw_text_bytes: int = 0
59
59
  is_heavy: bool = False
60
- pm_task_status: Optional[str] = None
60
+ pm_task_status: Optional[str] = None # verbatim provider status name (e.g. "In Review")
61
+ pm_task_is_terminal: bool = False # normalized "is this ticket done/closed?" signal
61
62
  pm_task_title: Optional[str] = None
62
63
  pm_task_description: Optional[str] = None
63
64
  assignee_name: Optional[str] = None
@@ -487,7 +487,8 @@ def _fetch_pm_tasks(con: _sqlite3.Connection) -> list[dict[str, Any]]:
487
487
  rows = con.execute(
488
488
  "SELECT task_key, title,"
489
489
  " COALESCE(description_text,'') AS description_text,"
490
- " COALESCE(status_category,'') AS status_category,"
490
+ " COALESCE(status_raw,'') AS status_raw,"
491
+ " COALESCE(is_terminal,0) AS is_terminal,"
491
492
  " COALESCE(issue_type,'') AS issue_type,"
492
493
  " COALESCE(parent_key,'') AS parent_key,"
493
494
  " COALESCE(epic_title,'') AS epic_title,"
@@ -64,7 +64,8 @@ def db(tmp_path: Path) -> Path:
64
64
  );
65
65
  CREATE TABLE pm_tasks (
66
66
  task_key TEXT PRIMARY KEY, title TEXT, description_text TEXT,
67
- status_category TEXT DEFAULT 'in_progress',
67
+ status_raw TEXT DEFAULT '',
68
+ is_terminal INTEGER DEFAULT 0,
68
69
  issue_type TEXT, parent_key TEXT, epic_title TEXT, sprint_name TEXT,
69
70
  assignee_name TEXT
70
71
  );
@@ -78,9 +79,9 @@ def db(tmp_path: Path) -> Path:
78
79
  '["run_watcher.py"]', 'coding', 0.9)
79
80
  """)
80
81
  con.execute("""
81
- INSERT INTO pm_tasks (task_key, title, description_text, status_category)
82
+ INSERT INTO pm_tasks (task_key, title, description_text, status_raw, is_terminal)
82
83
  VALUES ('KAN-42', 'Fix gap detection',
83
- 'Fix gap detection across ETL run boundaries', 'in_progress')
84
+ 'Fix gap detection across ETL run boundaries', 'In Progress', 0)
84
85
  """)
85
86
  con.commit()
86
87
  con.close()
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "meridian-agents"
7
- version = "1.48.1"
7
+ version = "1.48.2"
8
8
  description = "Meridian agents — MLX classifier server and Jira worklog synthesis for meridian.db"
9
9
  requires-python = ">=3.11"
10
10
  authors = [{ name = "Meridiona" }]
@@ -94,10 +94,11 @@ def _fetch_labeled_sessions(con: sqlite3.Connection) -> list[dict]:
94
94
  def _fetch_pm_tasks(con: sqlite3.Connection) -> list[dict]:
95
95
  rows = con.execute(
96
96
  "SELECT task_key, title, COALESCE(description_text,'') AS description_text,"
97
- " COALESCE(status_category,'') AS status_category,"
97
+ " COALESCE(status_raw,'') AS status_raw,"
98
+ " COALESCE(is_terminal,0) AS is_terminal,"
98
99
  " COALESCE(issue_type,'') AS issue_type, COALESCE(epic_title,'') AS epic_title,"
99
100
  " COALESCE(sprint_name,'') AS sprint_name"
100
- " FROM pm_tasks WHERE LOWER(status_category) != 'done'"
101
+ " FROM pm_tasks WHERE is_terminal = 0"
101
102
  ).fetchall()
102
103
  return [dict(r) for r in rows]
103
104
 
package/ui.tar.gz CHANGED
Binary file