htmlgraph 0.26.24__tar.gz → 0.26.25__tar.gz
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-0.26.24 → htmlgraph-0.26.25}/PKG-INFO +1 -1
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/packages/gemini-extension/gemini-extension.json +1 -1
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/pyproject.toml +2 -1
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/__init__.py +1 -1
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/api/main.py +56 -23
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/api/templates/dashboard-redesign.html +3 -3
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/api/templates/dashboard.html +3 -3
- htmlgraph-0.26.25/src/python/htmlgraph/api/templates/partials/work-items.html +613 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/builders/track.py +26 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/cli/base.py +31 -7
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/cli/work/__init__.py +74 -0
- htmlgraph-0.26.25/src/python/htmlgraph/cli/work/browse.py +114 -0
- htmlgraph-0.26.25/src/python/htmlgraph/cli/work/snapshot.py +558 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/collections/base.py +34 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/collections/todo.py +12 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/converter.py +11 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/hooks/orchestrator.py +88 -14
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/hooks/session_handler.py +3 -1
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/models.py +18 -1
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/orchestration/__init__.py +4 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/orchestration/plugin_manager.py +1 -2
- htmlgraph-0.26.25/src/python/htmlgraph/orchestration/spawner_event_tracker.py +383 -0
- htmlgraph-0.26.25/src/python/htmlgraph/refs.py +343 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/sdk.py +71 -1
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/session_manager.py +1 -7
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/sessions/handoff.py +6 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/track_builder.py +12 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/tests/integration/test_copilot_spawner_tracking.py +1 -9
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/tests/integration/test_delegation_events.py +2 -1
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/tests/integration/test_discoverability.py +8 -7
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/tests/integration/test_orchestrator_pattern.py +3 -2
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/tests/integration/test_phase4_delegation_events.py +2 -1
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/tests/integration/test_post_compact_delegation.py +25 -38
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/tests/integration/test_real_workitem_integration.py +3 -2
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/tests/integration/test_spawner_routing_live.py +5 -4
- htmlgraph-0.26.25/tests/python/conftest.py +221 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/tests/python/test_agent_attribution.py +32 -52
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/tests/python/test_analytics.py +36 -94
- htmlgraph-0.26.25/tests/python/test_browse.py +217 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/tests/python/test_collection_filter.py +3 -12
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/tests/python/test_cross_session_analytics.py +46 -52
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/tests/python/test_dashboard_attribution.py +31 -52
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/tests/python/test_delete.py +54 -29
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/tests/python/test_drift_queue_cleanup.py +12 -102
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/tests/python/test_feature_track_linkage_phase1.py +44 -64
- htmlgraph-0.26.25/tests/python/test_fixtures.py +161 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/tests/python/test_handoff.py +28 -28
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/tests/python/test_lifecycle.py +19 -28
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/tests/python/test_orchestration.py +12 -12
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/tests/python/test_orchestrator_circuit_breaker.py +24 -12
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/tests/python/test_parent_child_linking.py +10 -3
- htmlgraph-0.26.25/tests/python/test_refs.py +384 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/tests/python/test_sdk_discoverability.py +25 -36
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/tests/python/test_sdk_get_active_work_item.py +4 -13
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/tests/python/test_sdk_parent_session.py +30 -24
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/tests/python/test_sdk_sqlite_integration.py +25 -25
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/tests/python/test_session_continuity.py +24 -23
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/tests/python/test_session_handoff_continuity.py +34 -33
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/tests/python/test_session_start_info_validation.py +28 -28
- htmlgraph-0.26.25/tests/python/test_snapshot.py +302 -0
- htmlgraph-0.26.25/tests/python/test_snapshot_refs_integration.py +1694 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/tests/python/test_stop_cigs.py +5 -38
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/tests/python/test_todo_collection.py +24 -24
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/tests/python/test_track_loading.py +16 -16
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/tests/python/test_transcript_linking.py +9 -9
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/tests/python/test_validate_work_hook.py +11 -28
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/tests/python/test_work_queue.py +16 -16
- htmlgraph-0.26.24/tests/python/conftest.py +0 -60
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/.gitignore +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/README.md +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/examples/agent-coordination/README.md +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/examples/agent-coordination/demo.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/examples/create_auth_track_demo.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/examples/create_htmlgraph_dev_track.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/examples/demo_agent_planning.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/examples/demo_real_project_analytics.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/examples/demo_sdk_operations.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/examples/documentation-site/README.md +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/examples/documentation-site/agents.json +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/examples/documentation-site/demo.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/examples/documentation-site/features/doc-api-graph.html +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/examples/documentation-site/features/doc-api-overview.html +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/examples/documentation-site/features/doc-api-sdk.html +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/examples/documentation-site/features/doc-example-advanced.html +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/examples/documentation-site/features/doc-example-basic.html +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/examples/documentation-site/features/doc-index.html +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/examples/documentation-site/features/doc-installation.html +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/examples/documentation-site/features/doc-quickstart.html +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/examples/example_query_compilation.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/examples/handoff-demo.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/examples/knowledge-base/README.md +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/examples/knowledge-base/agents.json +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/examples/knowledge-base/demo.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/examples/knowledge-base/features/feat-276c615f.html +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/examples/knowledge-base/features/feat-7a6f797d.html +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/examples/knowledge-base/features/note-ai-agents.html +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/examples/knowledge-base/features/note-graph-db.html +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/examples/knowledge-base/features/note-htmlgraph.html +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/examples/knowledge-base/features/note-web-standards.html +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/examples/parallel_task_coordination.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/examples/pattern_learning_demo.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/examples/retry_decorator_examples.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/examples/routing-demo.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/examples/sdk_demo.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/examples/todo-list/README.md +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/examples/todo-list/demo.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/examples/todo-list/index.html +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/examples/todo-list/styles.css +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/examples/todo-list/task-001.html +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/examples/todo-list/task-002.html +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/examples/todo-list/task-003.html +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/examples/todo-list/task-004.html +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/examples/todo-list/task-005.html +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/examples/todo-list/task-006.html +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/packages/gemini-extension/GEMINI.md +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/packages/gemini-extension/README.md +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/packages/gemini-extension/command_deploy.md +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/packages/gemini-extension/command_end.md +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/packages/gemini-extension/command_feature-add.md +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/packages/gemini-extension/command_feature-complete.md +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/packages/gemini-extension/command_feature-primary.md +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/packages/gemini-extension/command_feature-start.md +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/packages/gemini-extension/command_git-commit.md +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/packages/gemini-extension/command_help.md +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/packages/gemini-extension/command_init.md +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/packages/gemini-extension/command_plan.md +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/packages/gemini-extension/command_recommend.md +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/packages/gemini-extension/command_serve.md +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/packages/gemini-extension/command_spike.md +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/packages/gemini-extension/command_start.md +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/packages/gemini-extension/command_status.md +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/packages/gemini-extension/command_track.md +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/packages/gemini-extension/hooks/hooks.json +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/packages/gemini-extension/hooks/scripts/post-tool.sh +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/packages/gemini-extension/hooks/scripts/session-end.sh +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/packages/gemini-extension/hooks/scripts/session-start.sh +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/js/htmlgraph.js +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/.htmlgraph/.session-warning-state.json +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/.htmlgraph/agents.json +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/.htmlgraph/htmlgraph.db +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/agent_detection.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/agent_registry.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/agents.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/analytics/__init__.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/analytics/cli.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/analytics/cost_analyzer.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/analytics/cost_reporter.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/analytics/cross_session.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/analytics/dependency.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/analytics/pattern_learning.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/analytics/work_type.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/analytics_index.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/api/__init__.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/api/static/htmx.min.js +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/api/static/style-redesign.css +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/api/static/style.css +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/api/templates/partials/activity-feed-hierarchical.html +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/api/templates/partials/activity-feed.html +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/api/templates/partials/agents-redesign.html +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/api/templates/partials/agents.html +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/api/templates/partials/event-traces.html +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/api/templates/partials/features-kanban-redesign.html +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/api/templates/partials/features.html +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/api/templates/partials/metrics-redesign.html +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/api/templates/partials/metrics.html +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/api/templates/partials/orchestration-redesign.html +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/api/templates/partials/orchestration.html +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/api/templates/partials/spawners.html +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/archive/__init__.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/archive/bloom.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/archive/fts.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/archive/manager.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/archive/search.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/atomic_ops.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/attribute_index.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/builders/__init__.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/builders/base.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/builders/bug.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/builders/chore.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/builders/epic.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/builders/feature.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/builders/insight.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/builders/metric.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/builders/pattern.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/builders/phase.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/builders/spike.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/cigs/__init__.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/cigs/autonomy.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/cigs/cost.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/cigs/messages_basic.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/cigs/messaging.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/cigs/models.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/cigs/pattern_storage.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/cigs/patterns.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/cigs/posttool_analyzer.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/cigs/reporter.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/cigs/tracker.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/cli/.htmlgraph/.session-warning-state.json +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/cli/.htmlgraph/agents.json +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/cli/.htmlgraph/htmlgraph.db +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/cli/__init__.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/cli/__main__.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/cli/analytics.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/cli/constants.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/cli/core.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/cli/main.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/cli/models.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/cli/templates/__init__.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/cli/templates/cost_dashboard.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/cli/work/features.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/cli/work/orchestration.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/cli/work/report.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/cli/work/sessions.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/cli/work/tracks.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/cli_commands/__init__.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/cli_commands/feature.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/cli_framework.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/collections/__init__.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/collections/bug.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/collections/chore.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/collections/epic.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/collections/feature.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/collections/insight.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/collections/metric.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/collections/pattern.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/collections/phase.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/collections/session.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/collections/spike.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/collections/task_delegation.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/collections/traces.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/config.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/context_analytics.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/cost_analysis/__init__.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/cost_analysis/analyzer.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/dashboard.html +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/dashboard.html.backup +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/dashboard.html.bak +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/dashboard.html.bak2 +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/dashboard.html.bak3 +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/db/__init__.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/db/queries.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/db/schema.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/decorators.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/dependency_models.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/deploy.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/deployment_models.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/docs/API_REFERENCE.md +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/docs/HTTP_API.md +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/docs/INTEGRATION_GUIDE.md +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/docs/ORCHESTRATION_PATTERNS.md +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/docs/README.md +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/docs/__init__.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/docs/docs_version.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/docs/metadata.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/docs/migrations.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/docs/template_engine.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/docs/templates/_sections/cli_reference.md.j2 +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/docs/templates/_sections/core_concepts.md.j2 +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/docs/templates/_sections/sdk_basics.md.j2 +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/docs/templates/base_agents.md.j2 +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/docs/templates/example_user_override.md.j2 +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/docs/version_check.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/edge_index.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/error_handler.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/event_log.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/event_migration.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/exceptions.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/extensions/gemini/GEMINI.md +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/extensions/gemini/README.md +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/extensions/gemini/gemini-extension.json +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/extensions/gemini/hooks/hooks.json +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/extensions/gemini/hooks/scripts/post-tool.sh +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/extensions/gemini/hooks/scripts/session-end.sh +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/extensions/gemini/hooks/scripts/session-start.sh +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/file_watcher.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/find_api.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/git_events.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/graph.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/hooks/.htmlgraph/.session-warning-state.json +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/hooks/.htmlgraph/agents.json +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/hooks/.htmlgraph/index.sqlite +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/hooks/__init__.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/hooks/bootstrap.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/hooks/cigs_pretool_enforcer.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/hooks/concurrent_sessions.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/hooks/context.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/hooks/drift_handler.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/hooks/event_tracker.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/hooks/git_commands.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/hooks/hooks-config.example.json +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/hooks/installer.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/hooks/orchestrator_reflector.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/hooks/post-checkout.sh +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/hooks/post-commit.sh +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/hooks/post-merge.sh +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/hooks/post_tool_use_failure.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/hooks/post_tool_use_handler.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/hooks/posttooluse.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/hooks/pre-commit.sh +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/hooks/pre-push.sh +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/hooks/pretooluse.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/hooks/prompt_analyzer.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/hooks/session_summary.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/hooks/state_manager.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/hooks/subagent_detection.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/hooks/subagent_stop.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/hooks/task_enforcer.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/hooks/task_validator.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/hooks/validator.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/ids.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/index.d.ts +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/learning.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/mcp_server.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/operations/README.md +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/operations/__init__.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/operations/analytics.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/operations/bootstrap.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/operations/events.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/operations/fastapi_server.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/operations/hooks.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/operations/initialization.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/operations/initialization.py.backup +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/operations/server.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/orchestration/claude_launcher.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/orchestration/command_builder.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/orchestration/headless_spawner.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/orchestration/live_events.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/orchestration/model_selection.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/orchestration/prompts.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/orchestration/spawners/__init__.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/orchestration/spawners/base.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/orchestration/spawners/claude.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/orchestration/spawners/codex.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/orchestration/spawners/copilot.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/orchestration/spawners/gemini.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/orchestration/subprocess_runner.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/orchestration/task_coordination.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/orchestration.md +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/orchestrator-system-prompt-optimized.txt +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/orchestrator.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/orchestrator_config.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/orchestrator_mode.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/orchestrator_validator.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/parallel.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/parser.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/planning.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/pydantic_models.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/quality_gates.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/query_builder.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/reflection.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/repo_hash.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/routing.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/scripts/__init__.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/scripts/deploy.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/server.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/services/__init__.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/services/claiming.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/session_hooks.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/session_registry.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/session_state.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/session_warning.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/sessions/__init__.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/setup.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/spike_index.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/styles.css +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/sync_docs.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/system_prompts.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/templates/AGENTS.md.template +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/templates/CLAUDE.md.template +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/templates/GEMINI.md.template +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/templates/orchestration-view.html +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/track_manager.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/transcript.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/transcript_analytics.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/types.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/validation.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/watch.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/work_type_utils.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/tests/benchmarks/README.md +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/tests/benchmarks/__init__.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/tests/benchmarks/bench_graph.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/tests/benchmarks/conftest.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/tests/cli/test_bootstrap_command.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/tests/hooks/__init__.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/tests/hooks/test_bootstrap.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/tests/hooks/test_concurrent_sessions.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/tests/hooks/test_context.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/tests/hooks/test_event_tracker.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/tests/hooks/test_git_commands.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/tests/hooks/test_hybrid_event_capture.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/tests/hooks/test_prompt_analyzer.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/tests/hooks/test_session_handler.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/tests/hooks/test_state_manager.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/tests/hooks/test_system_prompt_persistence.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/tests/hooks/test_system_prompt_persistence_integration.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/tests/integration/multi_agent/README.md +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/tests/integration/multi_agent/__init__.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/tests/integration/multi_agent/test_agent_quirks.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/tests/integration/multi_agent/test_git_continuity_spine.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/tests/integration/test_cigs_hook_flow.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/tests/integration/test_cigs_integration.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/tests/integration/test_cigs_learning.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/tests/integration/test_codex_spawner.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/tests/integration/test_complexity_assessment.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/tests/integration/test_dashboard_spawner_display.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/tests/integration/test_deployment_workflow.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/tests/integration/test_edge_index_bug.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/tests/integration/test_features.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/tests/integration/test_gemini_spawner_diagnosis.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/tests/integration/test_handoff_routing.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/tests/integration/test_multi_agent_coordination.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/tests/integration/test_new_features.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/tests/integration/test_orchestration_tab.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/tests/integration/test_orchestration_with_playwright.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/tests/integration/test_orchestrator_spawner_delegation.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/tests/integration/test_redesigned_dashboard.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/tests/integration/test_spawner_integration.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/tests/integration/test_spawner_live_events.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/tests/integration/test_spawner_observability_e2e.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/tests/integration/test_spawner_tool_tracking.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/tests/integration/test_task_delegation.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/tests/integration/test_user_query_events.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/tests/integration/test_websocket_realtime.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/tests/integration/test_websocket_streaming.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/tests/integration/verify_phase1_userquery.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/tests/js/README.md +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/tests/js/test_htmlgraph.html +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/tests/manual/test-hook-input.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/tests/operations/__init__.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/tests/operations/test_hooks.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/tests/operations/test_server.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/tests/python/__init__.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/tests/python/test_activity_feed_ui.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/tests/python/test_agent_detection.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/tests/python/test_archive_manager.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/tests/python/test_archive_search.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/tests/python/test_atomic_ops.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/tests/python/test_auto_spike.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/tests/python/test_cigs_pretool_enforcer.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/tests/python/test_claiming.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/tests/python/test_cli_commands.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/tests/python/test_cli_pydantic_models.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/tests/python/test_cli_rich_output.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/tests/python/test_cost_analyzer.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/tests/python/test_costs_command.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/tests/python/test_cross_agent_attribution.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/tests/python/test_dashboard_ui.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/tests/python/test_decorators.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/tests/python/test_delegation_fk_fix.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/tests/python/test_deploy.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/tests/python/test_drift_parent_activity.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/tests/python/test_edge_index.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/tests/python/test_error_handling.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/tests/python/test_event_index.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/tests/python/test_event_query.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/tests/python/test_event_tracing.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/tests/python/test_find_api.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/tests/python/test_git_events.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/tests/python/test_graph_traversal.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/tests/python/test_headless_spawner.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/tests/python/test_headless_spawner_parent_session.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/tests/python/test_ids.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/tests/python/test_install_hooks.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/tests/python/test_mcp_server.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/tests/python/test_mcp_stdio_transport.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/tests/python/test_models.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/tests/python/test_orchestrator_cli.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/tests/python/test_orchestrator_enforce_hook.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/tests/python/test_orchestrator_mode.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/tests/python/test_parent_child_event_linking.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/tests/python/test_parent_linking_integration.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/tests/python/test_pattern_learning.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/tests/python/test_pattern_storage.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/tests/python/test_plugin_update_preservation.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/tests/python/test_post_tool_use_failure.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/tests/python/test_post_tool_use_handler.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/tests/python/test_posttooluse_cigs.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/tests/python/test_pre_commit_hooks.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/tests/python/test_pre_work_validation_integration.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/tests/python/test_pretooluse_event_hierarchy.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/tests/python/test_quality_gates.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/tests/python/test_query_builder.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/tests/python/test_query_cache.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/tests/python/test_query_compilation.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/tests/python/test_reflection.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/tests/python/test_repo_hash.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/tests/python/test_routing.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/tests/python/test_session_cleanup.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/tests/python/test_session_integration.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/tests/python/test_session_registry.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/tests/python/test_session_start_cigs.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/tests/python/test_session_state_manager.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/tests/python/test_spawner_agents.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/tests/python/test_spawner_routing.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/tests/python/test_sqlite_schema.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/tests/python/test_system_overhead_drift.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/tests/python/test_template_system.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/tests/python/test_traces_collection.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/tests/python/test_update_preserves_incoming_edges.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/tests/python/test_user_prompt_submit_cigs.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/tests/python/test_version_migration.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/tests/python/test_violation_tracker.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/tests/python/test_work_type.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/tests/test_agent_routing.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/tests/test_autonomy_recommender.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/tests/test_cigs_cli.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/tests/test_cigs_cost_calculator.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/tests/test_cigs_cost_reporter.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/tests/test_cigs_imperative_messages.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/tests/test_cigs_messages_basic.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/tests/test_cli_output_snapshots.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/tests/test_cli_sdk_parity.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/tests/test_deployment_models.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/tests/test_event_log.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/tests/test_hybrid_event_capture.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/tests/test_orchestrator_config.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/tests/test_orchestrator_validator.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/tests/test_pattern_detector.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/tests/test_sdk_api_surface.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/tests/test_sdk_operations.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/tests/test_transaction_snapshot.py +0 -0
- {htmlgraph-0.26.24 → htmlgraph-0.26.25}/tests/test_transcript.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: htmlgraph
|
|
3
|
-
Version: 0.26.
|
|
3
|
+
Version: 0.26.25
|
|
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,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "htmlgraph",
|
|
3
|
-
"version": "0.26.
|
|
3
|
+
"version": "0.26.25",
|
|
4
4
|
"description": "HtmlGraph session tracking and documentation for Gemini CLI. Ensures proper activity attribution, feature awareness, and continuous work tracking.",
|
|
5
5
|
"author": "Shakes",
|
|
6
6
|
"license": "MIT",
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "htmlgraph"
|
|
3
|
-
version = "0.26.
|
|
3
|
+
version = "0.26.25"
|
|
4
4
|
description = "HTML is All You Need - Graph database on web standards"
|
|
5
5
|
authors = [{name = "Shakes", email = "shakestzd@gmail.com"}]
|
|
6
6
|
readme = "README.md"
|
|
@@ -112,6 +112,7 @@ warn_unused_ignores = false # Disabled due to environment differences between l
|
|
|
112
112
|
disallow_untyped_defs = true
|
|
113
113
|
disallow_any_unimported = false # Allow untyped third-party libraries
|
|
114
114
|
ignore_missing_imports = true
|
|
115
|
+
exclude = ["tests/"]
|
|
115
116
|
|
|
116
117
|
# Per-module options for strict checking
|
|
117
118
|
[[tool.mypy.overrides]]
|
|
@@ -267,7 +267,19 @@ def get_app(db_path: str) -> FastAPI:
|
|
|
267
267
|
COUNT(*) as event_count,
|
|
268
268
|
SUM(e.cost_tokens) as total_tokens,
|
|
269
269
|
COUNT(DISTINCT e.session_id) as session_count,
|
|
270
|
-
MAX(e.timestamp) as last_active
|
|
270
|
+
MAX(e.timestamp) as last_active,
|
|
271
|
+
MAX(e.model) as model,
|
|
272
|
+
CASE
|
|
273
|
+
WHEN MAX(e.timestamp) > datetime('now', '-5 minutes') THEN 'active'
|
|
274
|
+
ELSE 'idle'
|
|
275
|
+
END as status,
|
|
276
|
+
AVG(e.execution_duration_seconds) as avg_duration,
|
|
277
|
+
SUM(CASE WHEN e.event_type = 'error' THEN 1 ELSE 0 END) as error_count,
|
|
278
|
+
ROUND(
|
|
279
|
+
100.0 * COUNT(CASE WHEN e.status = 'completed' THEN 1 END) /
|
|
280
|
+
CAST(COUNT(*) AS FLOAT),
|
|
281
|
+
1
|
|
282
|
+
) as success_rate
|
|
271
283
|
FROM agent_events e
|
|
272
284
|
GROUP BY e.agent_id
|
|
273
285
|
ORDER BY event_count DESC
|
|
@@ -297,11 +309,19 @@ def get_app(db_path: str) -> FastAPI:
|
|
|
297
309
|
|
|
298
310
|
agents.append(
|
|
299
311
|
{
|
|
312
|
+
"id": row[0],
|
|
300
313
|
"agent_id": row[0],
|
|
314
|
+
"name": row[0],
|
|
301
315
|
"event_count": event_count,
|
|
302
316
|
"total_tokens": row[2] or 0,
|
|
303
317
|
"session_count": row[3],
|
|
318
|
+
"last_activity": row[4],
|
|
304
319
|
"last_active": row[4],
|
|
320
|
+
"model": row[5] or "unknown",
|
|
321
|
+
"status": row[6] or "idle",
|
|
322
|
+
"avg_duration": row[7],
|
|
323
|
+
"error_count": row[8] or 0,
|
|
324
|
+
"success_rate": row[9] or 0.0,
|
|
305
325
|
"workload_pct": round(workload_pct, 1),
|
|
306
326
|
}
|
|
307
327
|
)
|
|
@@ -1663,22 +1683,29 @@ def get_app(db_path: str) -> FastAPI:
|
|
|
1663
1683
|
finally:
|
|
1664
1684
|
await db.close()
|
|
1665
1685
|
|
|
1666
|
-
# ==========
|
|
1686
|
+
# ========== WORK ITEMS ENDPOINTS ==========
|
|
1667
1687
|
|
|
1668
1688
|
@app.get("/views/features", response_class=HTMLResponse)
|
|
1669
|
-
async def
|
|
1670
|
-
|
|
1689
|
+
async def features_view_redirect(
|
|
1690
|
+
request: Request, status: str = "all"
|
|
1691
|
+
) -> HTMLResponse:
|
|
1692
|
+
"""Redirect to work-items view (legacy endpoint for backward compatibility)."""
|
|
1693
|
+
return await work_items_view(request, status)
|
|
1694
|
+
|
|
1695
|
+
@app.get("/views/work-items", response_class=HTMLResponse)
|
|
1696
|
+
async def work_items_view(request: Request, status: str = "all") -> HTMLResponse:
|
|
1697
|
+
"""Get work items (features, bugs, spikes) by status as HTMX partial."""
|
|
1671
1698
|
db = await get_db()
|
|
1672
1699
|
cache = app.state.query_cache
|
|
1673
1700
|
query_start_time = time.time()
|
|
1674
1701
|
|
|
1675
1702
|
try:
|
|
1676
1703
|
# Create cache key from query parameters
|
|
1677
|
-
cache_key = f"
|
|
1704
|
+
cache_key = f"work_items_view:{status}"
|
|
1678
1705
|
|
|
1679
1706
|
# Check cache first
|
|
1680
1707
|
cached_response = cache.get(cache_key)
|
|
1681
|
-
|
|
1708
|
+
work_items_by_status: dict = {
|
|
1682
1709
|
"todo": [],
|
|
1683
1710
|
"in_progress": [],
|
|
1684
1711
|
"blocked": [],
|
|
@@ -1689,9 +1716,9 @@ def get_app(db_path: str) -> FastAPI:
|
|
|
1689
1716
|
query_time_ms = (time.time() - query_start_time) * 1000
|
|
1690
1717
|
cache.record_metric(cache_key, query_time_ms, cache_hit=True)
|
|
1691
1718
|
logger.debug(
|
|
1692
|
-
f"Cache HIT for
|
|
1719
|
+
f"Cache HIT for work_items_view (key={cache_key}, time={query_time_ms:.2f}ms)"
|
|
1693
1720
|
)
|
|
1694
|
-
|
|
1721
|
+
work_items_by_status = cached_response
|
|
1695
1722
|
else:
|
|
1696
1723
|
# OPTIMIZATION: Use composite index idx_features_status_priority
|
|
1697
1724
|
# for efficient filtering and ordering
|
|
@@ -1733,37 +1760,37 @@ def get_app(db_path: str) -> FastAPI:
|
|
|
1733
1760
|
exec_time_ms = (time.time() - exec_start) * 1000
|
|
1734
1761
|
|
|
1735
1762
|
for row in rows:
|
|
1736
|
-
|
|
1737
|
-
|
|
1738
|
-
|
|
1763
|
+
item_id = row[0]
|
|
1764
|
+
item_status = row[3]
|
|
1765
|
+
work_items_by_status.setdefault(item_status, []).append(
|
|
1739
1766
|
{
|
|
1740
|
-
"id":
|
|
1767
|
+
"id": item_id,
|
|
1741
1768
|
"type": row[1],
|
|
1742
1769
|
"title": row[2],
|
|
1743
|
-
"status":
|
|
1770
|
+
"status": item_status,
|
|
1744
1771
|
"priority": row[4],
|
|
1745
1772
|
"assigned_to": row[5],
|
|
1746
1773
|
"created_at": row[6],
|
|
1747
1774
|
"updated_at": row[7],
|
|
1748
1775
|
"description": row[8],
|
|
1749
|
-
"contributors": feature_agents.get(
|
|
1776
|
+
"contributors": feature_agents.get(item_id, []),
|
|
1750
1777
|
}
|
|
1751
1778
|
)
|
|
1752
1779
|
|
|
1753
1780
|
# Cache the results
|
|
1754
|
-
cache.set(cache_key,
|
|
1781
|
+
cache.set(cache_key, work_items_by_status)
|
|
1755
1782
|
query_time_ms = (time.time() - query_start_time) * 1000
|
|
1756
1783
|
cache.record_metric(cache_key, exec_time_ms, cache_hit=False)
|
|
1757
1784
|
logger.debug(
|
|
1758
|
-
f"Cache MISS for
|
|
1785
|
+
f"Cache MISS for work_items_view (key={cache_key}, "
|
|
1759
1786
|
f"db_time={exec_time_ms:.2f}ms, total_time={query_time_ms:.2f}ms)"
|
|
1760
1787
|
)
|
|
1761
1788
|
|
|
1762
1789
|
return templates.TemplateResponse(
|
|
1763
|
-
"partials/
|
|
1790
|
+
"partials/work-items.html",
|
|
1764
1791
|
{
|
|
1765
1792
|
"request": request,
|
|
1766
|
-
"
|
|
1793
|
+
"work_items_by_status": work_items_by_status,
|
|
1767
1794
|
},
|
|
1768
1795
|
)
|
|
1769
1796
|
finally:
|
|
@@ -1830,19 +1857,19 @@ def get_app(db_path: str) -> FastAPI:
|
|
|
1830
1857
|
else:
|
|
1831
1858
|
# OPTIMIZATION: Combine session data with event counts in single query
|
|
1832
1859
|
# This eliminates N+1 query problem (was 20+ queries, now 2)
|
|
1833
|
-
# Note: Database uses
|
|
1860
|
+
# Note: Database uses created_at and completed_at (not started_at/ended_at)
|
|
1834
1861
|
query = """
|
|
1835
1862
|
SELECT
|
|
1836
1863
|
s.session_id,
|
|
1837
1864
|
s.agent_assigned,
|
|
1838
1865
|
s.status,
|
|
1839
|
-
s.
|
|
1840
|
-
s.
|
|
1866
|
+
s.created_at,
|
|
1867
|
+
s.completed_at,
|
|
1841
1868
|
COUNT(DISTINCT e.event_id) as event_count
|
|
1842
1869
|
FROM sessions s
|
|
1843
1870
|
LEFT JOIN agent_events e ON s.session_id = e.session_id
|
|
1844
1871
|
GROUP BY s.session_id
|
|
1845
|
-
ORDER BY s.
|
|
1872
|
+
ORDER BY s.created_at DESC
|
|
1846
1873
|
LIMIT 20
|
|
1847
1874
|
"""
|
|
1848
1875
|
|
|
@@ -1860,7 +1887,13 @@ def get_app(db_path: str) -> FastAPI:
|
|
|
1860
1887
|
ended_at = datetime.fromisoformat(row[4])
|
|
1861
1888
|
duration_seconds = (ended_at - started_at).total_seconds()
|
|
1862
1889
|
else:
|
|
1863
|
-
|
|
1890
|
+
# Use UTC to handle timezone-aware datetime comparison
|
|
1891
|
+
now = (
|
|
1892
|
+
datetime.now(started_at.tzinfo)
|
|
1893
|
+
if started_at.tzinfo
|
|
1894
|
+
else datetime.now()
|
|
1895
|
+
)
|
|
1896
|
+
duration_seconds = (now - started_at).total_seconds()
|
|
1864
1897
|
|
|
1865
1898
|
sessions.append(
|
|
1866
1899
|
{
|
{htmlgraph-0.26.24 → htmlgraph-0.26.25}/src/python/htmlgraph/api/templates/dashboard-redesign.html
RENAMED
|
@@ -53,12 +53,12 @@
|
|
|
53
53
|
<span class="tab-icon">◊</span>
|
|
54
54
|
ORCHESTRATION
|
|
55
55
|
</button>
|
|
56
|
-
<button class="tab-button" data-tab="
|
|
57
|
-
hx-get="/views/
|
|
56
|
+
<button class="tab-button" data-tab="work-items"
|
|
57
|
+
hx-get="/views/work-items"
|
|
58
58
|
hx-target="#content-area"
|
|
59
59
|
hx-trigger="click">
|
|
60
60
|
<span class="tab-icon">█</span>
|
|
61
|
-
|
|
61
|
+
WORK ITEMS
|
|
62
62
|
</button>
|
|
63
63
|
<button class="tab-button" data-tab="agents"
|
|
64
64
|
hx-get="/views/agents"
|
|
@@ -52,12 +52,12 @@
|
|
|
52
52
|
Orchestration
|
|
53
53
|
</button>
|
|
54
54
|
<button class="tab-button"
|
|
55
|
-
hx-get="/views/
|
|
55
|
+
hx-get="/views/work-items"
|
|
56
56
|
hx-target="#content-area"
|
|
57
57
|
hx-trigger="click"
|
|
58
|
-
data-tab="
|
|
58
|
+
data-tab="work-items">
|
|
59
59
|
<span class="tab-icon">🎯</span>
|
|
60
|
-
|
|
60
|
+
Work Items
|
|
61
61
|
</button>
|
|
62
62
|
<button class="tab-button"
|
|
63
63
|
hx-get="/views/agents"
|