htmlgraph 0.26.16__py3-none-any.whl → 0.26.18__py3-none-any.whl

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.
htmlgraph/__init__.py CHANGED
@@ -95,7 +95,7 @@ from htmlgraph.types import (
95
95
  )
96
96
  from htmlgraph.work_type_utils import infer_work_type, infer_work_type_from_id
97
97
 
98
- __version__ = "0.26.16"
98
+ __version__ = "0.26.18"
99
99
  __all__ = [
100
100
  # Exceptions
101
101
  "HtmlGraphError",
@@ -738,6 +738,7 @@ def track_event(hook_type: str, hook_input: dict[str, Any]) -> dict[str, Any]:
738
738
  # lose the parent_event_id linkage.
739
739
  subagent_type = None
740
740
  parent_session_id = None
741
+ task_event_id_from_db = None # Will be set by Method 1 if found
741
742
  hook_session_id = hook_input.get("session_id") or hook_input.get("sessionId")
742
743
 
743
744
  if db and db.connection and hook_session_id:
@@ -762,9 +763,69 @@ def track_event(hook_type: str, hook_input: dict[str, Any]) -> dict[str, Any]:
762
763
  else:
763
764
  subagent_type = "general-purpose" # Default if format unexpected
764
765
 
766
+ # CRITICAL FIX: When Method 1 succeeds, also find the task_delegation event!
767
+ # This ensures parent_activity_id will use the task event, not fall back to UserQuery
768
+ try:
769
+ # First try to find task in parent_session_id (if not NULL)
770
+ if parent_session_id:
771
+ cursor.execute(
772
+ """
773
+ SELECT event_id
774
+ FROM agent_events
775
+ WHERE event_type = 'task_delegation'
776
+ AND subagent_type = ?
777
+ AND status = 'started'
778
+ AND session_id = ?
779
+ ORDER BY timestamp DESC
780
+ LIMIT 1
781
+ """,
782
+ (subagent_type, parent_session_id),
783
+ )
784
+ task_row = cursor.fetchone()
785
+ if task_row:
786
+ task_event_id_from_db = task_row[0]
787
+
788
+ # If not found (parent_session_id is NULL), fallback to finding most recent task
789
+ # This handles Claude Code's session reuse where parent_session_id can be NULL
790
+ if not task_event_id_from_db:
791
+ cursor.execute(
792
+ """
793
+ SELECT event_id
794
+ FROM agent_events
795
+ WHERE event_type = 'task_delegation'
796
+ AND subagent_type = ?
797
+ AND status = 'started'
798
+ ORDER BY timestamp DESC
799
+ LIMIT 1
800
+ """,
801
+ (subagent_type,),
802
+ )
803
+ task_row = cursor.fetchone()
804
+ if task_row:
805
+ task_event_id_from_db = task_row[0]
806
+ print(
807
+ f"DEBUG Method 1 fallback: Found task_delegation={task_event_id_from_db} for {subagent_type}",
808
+ file=sys.stderr,
809
+ )
810
+ else:
811
+ print(
812
+ f"DEBUG Method 1: No task_delegation found for subagent_type={subagent_type}",
813
+ file=sys.stderr,
814
+ )
815
+ else:
816
+ print(
817
+ f"DEBUG Method 1: Found task_delegation={task_event_id_from_db} for subagent {subagent_type}",
818
+ file=sys.stderr,
819
+ )
820
+ except Exception as e:
821
+ print(
822
+ f"DEBUG: Error finding task_delegation for Method 1: {e}",
823
+ file=sys.stderr,
824
+ )
825
+
765
826
  print(
766
827
  f"DEBUG subagent persistence: Found current session as subagent in sessions table: "
767
- f"type={subagent_type}, parent_session={parent_session_id}",
828
+ f"type={subagent_type}, parent_session={parent_session_id}, task_event={task_event_id_from_db}",
768
829
  file=sys.stderr,
769
830
  )
770
831
  except Exception as e:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: htmlgraph
3
- Version: 0.26.16
3
+ Version: 0.26.18
4
4
  Summary: HTML is All You Need - Graph database on web standards
5
5
  Project-URL: Homepage, https://github.com/Shakes-tzd/htmlgraph
6
6
  Project-URL: Documentation, https://github.com/Shakes-tzd/htmlgraph#readme
@@ -1,4 +1,4 @@
1
- htmlgraph/__init__.py,sha256=RiNsbZiIVsL2_R6c5IcNdTNMsxkmFy0o1D_RRN6Q8k8,5718
1
+ htmlgraph/__init__.py,sha256=-RI-wc5scv5rV65MqCPYn6b1AU0RMvlPOUNCLh4m7fg,5718
2
2
  htmlgraph/agent_detection.py,sha256=wEmrDv4hssPX2OkEnJZBHPbalxcaloiJF_hOOow_5WE,3511
3
3
  htmlgraph/agent_registry.py,sha256=Usa_35by7p5gtpvHO7K3AcGimnorw-FzgPVa3cWTQ58,9448
4
4
  htmlgraph/agents.py,sha256=Yvu6x1nOfrW2WhRTAHiCuSpvqoVJXx1Mkzd59kwEczw,33466
@@ -192,7 +192,7 @@ htmlgraph/hooks/cigs_pretool_enforcer.py,sha256=Lyp4DDaw_sVHEcW-kzdegldyfXjvVD25
192
192
  htmlgraph/hooks/concurrent_sessions.py,sha256=qOiwDfynphVG0-2pVBakEzOwMORU8ebN1gMjcN4S0z0,6476
193
193
  htmlgraph/hooks/context.py,sha256=tJ4dIL8uTFHyqyuuMc-ETDuOikeD5cN3Mdjmfg6W0HE,13108
194
194
  htmlgraph/hooks/drift_handler.py,sha256=QckL5U5ooku51kI6mppGLsXzaKVt1Yx5uNu-iXZrgSk,17602
195
- htmlgraph/hooks/event_tracker.py,sha256=rPEh12YrLeMLT5OKuQ3hqSHQZhQ7rjx4-ZpKn_CaFEY,46790
195
+ htmlgraph/hooks/event_tracker.py,sha256=i4zhwzfbRRB3JURZoZt_xFgwwJakOM6RnoFpjP-oS9k,49869
196
196
  htmlgraph/hooks/git_commands.py,sha256=NPzthfzGJ_bkDi7soehHOxI9FLL-6BL8Tie9Byb_zf4,4803
197
197
  htmlgraph/hooks/hooks-config.example.json,sha256=tXpk-U-FZzGOoNJK2uiDMbIHCYEHA794J-El0fBwkqg,197
198
198
  htmlgraph/hooks/installer.py,sha256=nOctCFDEV7BEh7ZzxNY-apu1KZG0SHPMq74UPIOChqY,11756
@@ -252,12 +252,12 @@ htmlgraph/templates/AGENTS.md.template,sha256=f96h7V6ygwj-v-fanVI48eYMxR6t_se4be
252
252
  htmlgraph/templates/CLAUDE.md.template,sha256=h1kG2hTX2XYig2KszsHBfzrwa_4Cfcq2Pj4SwqzeDlM,1984
253
253
  htmlgraph/templates/GEMINI.md.template,sha256=gAGzE53Avki87BM_otqy5HdcYCoLsHgqaKjVzNzPMX8,1622
254
254
  htmlgraph/templates/orchestration-view.html,sha256=DlS7LlcjH0oO_KYILjuF1X42t8QhKLH4F85rkO54alY,10472
255
- htmlgraph-0.26.16.data/data/htmlgraph/dashboard.html,sha256=MUT6SaYnazoyDcvHz5hN1omYswyIoUfeoZLf2M_iblo,251268
256
- htmlgraph-0.26.16.data/data/htmlgraph/styles.css,sha256=oDUSC8jG-V-hKojOBO9J88hxAeY2wJrBYTq0uCwX_Y4,7135
257
- htmlgraph-0.26.16.data/data/htmlgraph/templates/AGENTS.md.template,sha256=f96h7V6ygwj-v-fanVI48eYMxR6t_se4bet1H4ZsDpI,7642
258
- htmlgraph-0.26.16.data/data/htmlgraph/templates/CLAUDE.md.template,sha256=h1kG2hTX2XYig2KszsHBfzrwa_4Cfcq2Pj4SwqzeDlM,1984
259
- htmlgraph-0.26.16.data/data/htmlgraph/templates/GEMINI.md.template,sha256=gAGzE53Avki87BM_otqy5HdcYCoLsHgqaKjVzNzPMX8,1622
260
- htmlgraph-0.26.16.dist-info/METADATA,sha256=FkOo9VALF-C4vbcdpJojQKGhejTU8Q5ZqBwpnxeJ6G0,10237
261
- htmlgraph-0.26.16.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
262
- htmlgraph-0.26.16.dist-info/entry_points.txt,sha256=Wmdo5cx8pt6NoMsssVE2mZH1CZLSUsrg_3iSWatiyn0,103
263
- htmlgraph-0.26.16.dist-info/RECORD,,
255
+ htmlgraph-0.26.18.data/data/htmlgraph/dashboard.html,sha256=MUT6SaYnazoyDcvHz5hN1omYswyIoUfeoZLf2M_iblo,251268
256
+ htmlgraph-0.26.18.data/data/htmlgraph/styles.css,sha256=oDUSC8jG-V-hKojOBO9J88hxAeY2wJrBYTq0uCwX_Y4,7135
257
+ htmlgraph-0.26.18.data/data/htmlgraph/templates/AGENTS.md.template,sha256=f96h7V6ygwj-v-fanVI48eYMxR6t_se4bet1H4ZsDpI,7642
258
+ htmlgraph-0.26.18.data/data/htmlgraph/templates/CLAUDE.md.template,sha256=h1kG2hTX2XYig2KszsHBfzrwa_4Cfcq2Pj4SwqzeDlM,1984
259
+ htmlgraph-0.26.18.data/data/htmlgraph/templates/GEMINI.md.template,sha256=gAGzE53Avki87BM_otqy5HdcYCoLsHgqaKjVzNzPMX8,1622
260
+ htmlgraph-0.26.18.dist-info/METADATA,sha256=jLl4eGhQFJoa_iTKCVChUQ8YEt0Ci0Orn442kmFrd6s,10237
261
+ htmlgraph-0.26.18.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
262
+ htmlgraph-0.26.18.dist-info/entry_points.txt,sha256=Wmdo5cx8pt6NoMsssVE2mZH1CZLSUsrg_3iSWatiyn0,103
263
+ htmlgraph-0.26.18.dist-info/RECORD,,