chore: auto-commit (286 archivos)

- .claude/agents/fn-orquestador/SKILL.md
- .claude/commands/fn_claude.md
- .claude/rules/INDEX.md
- .claude/rules/cpp_apps.md
- .claude/rules/ids_naming.md
- CHANGELOG.md
- apps/dag_engine/README.md
- apps/dag_engine/api.go
- apps/dag_engine/dags_migrated/example.yaml
- apps/dag_engine/dags_migrated/example_lineage_tracking.yaml
- ...

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-05-16 16:33:22 +02:00
parent d6175964e4
commit 212875ed0d
290 changed files with 12703 additions and 19778 deletions
+58 -4
View File
@@ -212,8 +212,9 @@ static void draw_cell_custom(const ColumnSpec& spec, const char* value,
col.w);
ImGui::PushStyleColor(ImGuiCol_HeaderHovered, hover_col);
ImGui::PushStyleColor(ImGuiCol_HeaderActive, hover_col);
ImGui::Selectable(label, false,
ImGuiSelectableFlags_SpanAllColumns);
// Issue 0081-O.7: removed SpanAllColumns — badge hover must not
// illuminate the entire row, only the badge cell.
ImGui::Selectable(label, false);
ImGui::PopStyleColor(3);
} else {
ImGui::TextUnformatted(label);
@@ -3087,6 +3088,11 @@ void render(const char* id,
ImGuiTableFlags flags =
ImGuiTableFlags_Borders | ImGuiTableFlags_RowBg |
ImGuiTableFlags_Resizable | ImGuiTableFlags_ScrollY;
// Issue 0081-O.7/9: disable ALL Selectable bg painting. Hover + selection
// are painted via TableSetBgColor(CellBg, ...) below, edge-to-edge.
ImGui::PushStyleColor(ImGuiCol_HeaderHovered, ImVec4(0, 0, 0, 0));
ImGui::PushStyleColor(ImGuiCol_HeaderActive, ImVec4(0, 0, 0, 0));
ImGui::PushStyleColor(ImGuiCol_Header, ImVec4(0, 0, 0, 0));
if (ImGui::BeginTable(id, visible_cols, flags, ImVec2(0, 0))) {
for (int dc = 0; dc < (int)st.col_order.size(); ++dc) {
@@ -3203,6 +3209,14 @@ void render(const char* id,
if (c < 0 || c >= eff_cols) continue;
if (!st.col_visible[c]) continue;
ImGui::TableSetColumnIndex(draw_idx++);
// Issue 0081-O.7: capture cell rect before rendering for
// per-cell hover overlay (manual hit-test avoids relying on
// GetItemRect of the last sub-item inside draw_cell_custom).
ImVec2 cell_min = ImGui::GetCursorScreenPos();
float cell_w = ImGui::GetContentRegionAvail().x;
float cell_h = ImGui::GetTextLineHeight();
ImVec2 cell_max(cell_min.x + cell_w, cell_min.y + cell_h);
int src = src_for_eff[c];
std::string eval_buf;
const char* cell;
@@ -3251,8 +3265,15 @@ void render(const char* id,
}
}
if (!custom_rendered) {
// Issue 0081-O.8: disable Selectable's own bg paint so
// it doesn't double-up with the manual cell overlay below.
// Pass explicit size so empty cells still have a hit area
// (otherwise drag-select skips empty cells).
ImGui::PushStyleColor(ImGuiCol_HeaderHovered, ImVec4(0, 0, 0, 0));
ImGui::Selectable(cell ? cell : "", in_sel,
ImGuiSelectableFlags_AllowDoubleClick);
ImGuiSelectableFlags_AllowDoubleClick,
ImVec2(0, ImGui::GetTextLineHeight()));
ImGui::PopStyleColor();
// Tooltip for Text cells (Phase 2).
if (cell_cs && cell_cs->tooltip_on_hover &&
ImGui::IsItemHovered()) {
@@ -3263,6 +3284,27 @@ void render(const char* id,
}
}
}
// Issue 0081-O.7/9/10: per-cell bg via TableSetBgColor.
// Edge-to-edge (full cell incl. CellPadding). Selection (in_sel)
// overrides hover. Both colors uniform — no Selectable padding.
{
ImVec2 mp = ImGui::GetMousePos();
ImVec2 pad = ImGui::GetStyle().CellPadding;
bool is_hovered =
mp.x >= cell_min.x - pad.x && mp.x < cell_min.x + cell_w + pad.x &&
mp.y >= cell_min.y - pad.y && mp.y < cell_min.y + cell_h + pad.y &&
ImGui::IsWindowHovered(ImGuiHoveredFlags_AllowWhenBlockedByActiveItem);
if (in_sel) {
// Selected (drag-range): blue, slightly stronger when hovered.
ImGui::TableSetBgColor(ImGuiTableBgTarget_CellBg,
is_hovered
? IM_COL32(102, 140, 217, 80)
: IM_COL32(102, 140, 217, 60));
} else if (is_hovered) {
ImGui::TableSetBgColor(ImGuiTableBgTarget_CellBg,
IM_COL32(255, 255, 255, 22));
}
}
// AllowWhenBlockedByActiveItem: durante drag,
// otras celdas tambien reciben hover -> sel se
// pinta mientras arrastras.
@@ -3318,6 +3360,7 @@ void render(const char* id,
}
ImGui::EndTable();
}
ImGui::PopStyleColor(3); // HeaderHovered/HeaderActive/Header (issue 0081-O.7)
// Ctrl+C -> TSV.
if (U.sel_active && ImGui::GetIO().KeyCtrl &&
@@ -3747,6 +3790,10 @@ void render(const char* id,
ImGuiTableFlags flags =
ImGuiTableFlags_Borders | ImGuiTableFlags_RowBg |
ImGuiTableFlags_Resizable | ImGuiTableFlags_ScrollY;
// Issue 0081-O.7: tone down row hover (default 0.31 alpha was too bright).
ImGui::PushStyleColor(ImGuiCol_HeaderHovered, ImVec4(1.0f, 1.0f, 1.0f, 0.05f));
ImGui::PushStyleColor(ImGuiCol_HeaderActive, ImVec4(1.0f, 1.0f, 1.0f, 0.08f));
ImGui::PushStyleColor(ImGuiCol_Header, ImVec4(0.40f, 0.55f, 0.85f, 0.20f));
if (cur_cols_n > 0 && ImGui::BeginTable(id, cur_cols_n, flags, ImVec2(0, 0))) {
for (int c = 0; c < cur_cols_n; ++c) {
ImGui::TableSetupColumn(cur_headers[c].c_str(),
@@ -3839,7 +3886,13 @@ void render(const char* id,
}
}
if (!custom_rendered) {
ImGui::Selectable(cell ? cell : "");
// Issue 0081-O.8: disable Selectable's bg paint to avoid
// double hover with the manual cell overlay; explicit size
// ensures empty cells have a hit area.
ImGui::PushStyleColor(ImGuiCol_HeaderHovered, ImVec4(0, 0, 0, 0));
ImGui::Selectable(cell ? cell : "", false, 0,
ImVec2(0, ImGui::GetTextLineHeight()));
ImGui::PopStyleColor();
// Tooltip for Text cells (Phase 2).
if (cell_cs2 && cell_cs2->tooltip_on_hover &&
ImGui::IsItemHovered()) {
@@ -3893,6 +3946,7 @@ void render(const char* id,
}
ImGui::EndTable();
}
ImGui::PopStyleColor(3); // HeaderHovered/HeaderActive/Header (issue 0081-O.7)
}
stage_n_table_end:;