chore: auto-commit (5 archivos)
- app.md - appicon.ico - extract_panel.cpp - main.cpp - views.cpp Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -2,6 +2,7 @@
|
||||
name: graph_explorer
|
||||
lang: cpp
|
||||
domain: viz
|
||||
version: 0.1.0
|
||||
description: "Visor de grafos GPU-accelerated agnostico del backend. Lee operations.db de cualquier app del registry y permite explorar entidades/relaciones con shapes/iconos/layouts/filtros."
|
||||
tags: [imgui, graph, osint, visualization, gpu]
|
||||
uses_functions:
|
||||
@@ -17,19 +18,6 @@ uses_functions:
|
||||
- graph_icons_cpp_viz
|
||||
- graph_sources_cpp_viz
|
||||
- graph_types_cpp_viz
|
||||
# data_table stack — issue 0081-J: panel Table migrado a data_table::render
|
||||
- data_table_cpp_viz
|
||||
- viz_render_cpp_viz
|
||||
- compute_stage_cpp_core
|
||||
- compute_pipeline_cpp_core
|
||||
- tql_emit_cpp_core
|
||||
- tql_apply_cpp_core
|
||||
- lua_engine_cpp_core
|
||||
- join_tables_cpp_core
|
||||
- auto_detect_type_cpp_core
|
||||
- compute_column_stats_cpp_core
|
||||
- llm_anthropic_cpp_core
|
||||
- tql_to_sql_cpp_core
|
||||
# core
|
||||
- graph_spatial_hash_cpp_core
|
||||
- button_cpp_core
|
||||
@@ -168,3 +156,13 @@ Recetas validadas en notebooks 04-08 del analysis y vaultadas en `vaults/osint_n
|
||||
Issues que desbloquea: `issues/0041-split-confidence-thresholds.md` y `issues/0042-gliner2-unified-extractor.md`. El registry tiene todas las funciones necesarias; solo falta cablearlas en `extract_graph_hybrid_py_pipelines` y el panel `paste_extract`.
|
||||
|
||||
Playground de referencia: `projects/osint_graph/analysis/gliner_glirel_tuning/playground/` (FastAPI + Sigma.js, sirviendo en `localhost:7878`).
|
||||
|
||||
|
||||
## Capability growth log
|
||||
|
||||
Una linea por bump SemVer. Bump-type segun `.claude/commands/version.md`:
|
||||
- `major`: breaking observable (CLI args, schema BBDD propia, formato wire).
|
||||
- `minor`: feature aditiva (nuevo panel, endpoint, opcion).
|
||||
- `patch`: bugfix sin cambio observable.
|
||||
|
||||
- v0.1.0 (2026-05-18) — baseline.
|
||||
|
||||
BIN
Binary file not shown.
|
Before Width: | Height: | Size: 18 KiB After Width: | Height: | Size: 18 KiB |
@@ -978,6 +978,7 @@ void extract_panel_render(AppState& app) {
|
||||
// Tabla de entidades.
|
||||
if (!res->entities.empty() &&
|
||||
ImGui::CollapsingHeader("Entities", ImGuiTreeNodeFlags_DefaultOpen)) {
|
||||
// LAYOUT-TABLE — form editor con InputText/Checkbox editables inline; keep BeginTable inline.
|
||||
if (ImGui::BeginTable("##ents", 5,
|
||||
ImGuiTableFlags_Borders | ImGuiTableFlags_RowBg |
|
||||
ImGuiTableFlags_ScrollY,
|
||||
@@ -1024,6 +1025,7 @@ void extract_panel_render(AppState& app) {
|
||||
// Tabla de relaciones.
|
||||
if (!res->relations.empty() &&
|
||||
ImGui::CollapsingHeader("Relations", ImGuiTreeNodeFlags_DefaultOpen)) {
|
||||
// LAYOUT-TABLE — form editor con Checkbox por fila; keep BeginTable inline.
|
||||
if (ImGui::BeginTable("##rels", 5,
|
||||
ImGuiTableFlags_Borders | ImGuiTableFlags_RowBg |
|
||||
ImGuiTableFlags_ScrollY,
|
||||
|
||||
@@ -1124,6 +1124,7 @@ static void render_enricher_config_window() {
|
||||
g_app.enr_modal_param_bufs.resize(spec->params.size());
|
||||
}
|
||||
|
||||
// LAYOUT-TABLE — KPI/form/splitter, no data; keep BeginTable inline.
|
||||
if (ImGui::BeginTable("##enr_params", 2,
|
||||
ImGuiTableFlags_SizingStretchProp |
|
||||
ImGuiTableFlags_NoBordersInBody)) {
|
||||
|
||||
@@ -882,6 +882,7 @@ void views_inspector(AppState& app) {
|
||||
ImGui::TextUnformatted("Identity");
|
||||
ImGui::Separator();
|
||||
|
||||
// LAYOUT-TABLE — KPI/form/splitter, no data; keep BeginTable inline.
|
||||
if (ImGui::BeginTable("##insp_id", 2,
|
||||
ImGuiTableFlags_SizingStretchProp |
|
||||
ImGuiTableFlags_NoBordersInBody)) {
|
||||
@@ -955,6 +956,7 @@ void views_inspector(AppState& app) {
|
||||
const EntitySpec* spec = find_entity_spec(app.parsed_types,
|
||||
app.insp_type_buf);
|
||||
|
||||
// LAYOUT-TABLE — KPI/form/splitter, no data; keep BeginTable inline.
|
||||
if (ImGui::BeginTable("##insp_fields", 2,
|
||||
ImGuiTableFlags_SizingStretchProp |
|
||||
ImGuiTableFlags_NoBordersInBody)) {
|
||||
@@ -1851,6 +1853,8 @@ void views_node_groups_window(AppState& app) {
|
||||
ImGuiTableFlags_Borders | ImGuiTableFlags_RowBg |
|
||||
ImGuiTableFlags_ScrollY | ImGuiTableFlags_Resizable |
|
||||
ImGuiTableFlags_SizingStretchProp;
|
||||
// LAYOUT-TABLE — interactividad app-específica: Selectable+click/dblclick diferenciado,
|
||||
// PopupContextItem con promote/demote/focus, paginación manual. No migrable a data_table::render.
|
||||
if (col_count > 0 && ImGui::BeginTable("##te_rows", col_count, tflags,
|
||||
ImVec2(0, -ImGui::GetFrameHeightWithSpacing()))) {
|
||||
ImGui::TableSetupScrollFreeze(0, 1);
|
||||
|
||||
Reference in New Issue
Block a user