2f27659f99fix(security): secure Adminer wrapper, hide credentials from URL, auto-fill TCP 127.0.0.1 and disable in production (task-d095b0e23b)michele2026-08-27 17:30:41 +0200
71fc4efb47docs(control-tower): update CURRENT-205.md with final commit hash 7920903fmichele2026-08-27 17:24:16 +0200
7920903f09fix(stabili): use auto-generated codice_univoco for archive paths and restart server for PHP pgsql extension (task-d095b0e23b)michele2026-08-27 17:24:05 +0200
b01bc8c0a7docs(control-tower): update CURRENT-205.md with final commit hash fc5f49b9michele2026-08-27 17:09:38 +0200
fc5f49b99ffeat(database): add Adminer PostgreSQL web management interface, setup_postgresql.sh script and document PostgreSQL architecture directive (task-d095b0e23b)michele2026-08-27 17:09:26 +0200
9014626478docs(control-tower): update CURRENT-205.md with final commit hash 39dd7e51michele2026-08-27 16:43:15 +0200
39dd7e515cfix(millesimi): align comproprietari matching across all stabili (OTTAVIANO B/1), load voc_spe voci di spesa, fix dropdown owner display and canonicalabile code folder paths (task-d095b0e23b)michele2026-08-27 16:43:03 +0200
836e59ea4edocs(control-tower): update CURRENT-205.md with final commit hash 7fe49cf9michele2026-08-27 14:18:57 +0200
7fe49cf930fix(ui): consolidate nominativiStorici items on browser view, move directives to /directives/ and store ASCII wireframes in /skill-netgescon/ui-wireframes/ (task-d095b0e23b)michele2026-08-27 14:18:47 +0200
d31b788aefdocs(control-tower): update CURRENT-205.md with final commit hashmichele2026-08-27 14:08:13 +0200
f345abc3bafix(unita): enforce deterministic timeline gestion spans, import tabelle/dett_tab millesimal tables from legacy MDB and document Commercialista rule (task-d095b0e23b)michele2026-08-27 14:08:01 +0200
81734c7eeadocs(control-tower): update CURRENT-205.md with final commit hashmichele2026-08-27 13:50:09 +0200
5a8c8a53d4feat(stabili): consolidate timeline gestion spans, import AC_ catasto fields and support multi-section catasto (task-d095b0e23b)michele2026-08-27 13:49:57 +0200
7ef8892924docs(control-tower): update CURRENT-205.md with final commit hashmichele2026-08-27 13:29:37 +0200
6d01ab2296fix(directives): enforce id_cond mapping between condomin and comproprietari, preserve 50% comproprietà and document architectural rules (task-d095b0e23b)michele2026-08-27 13:29:25 +0200
7e0fce51c5docs(control-tower): update CURRENT-205.md with comproprietari gate statisticsmichele2026-08-27 12:35:41 +0200
2a873958cafix(anagrafiche): import comproprietari from MDB, link Francioni/Tordini to Stabile 0016 B/4 and replicate canonical contacts (task-d095b0e23b)michele2026-08-27 12:35:30 +0200
1036e76593docs(control-tower): update CURRENT-205.md with Stabili 0013 and 0016 import stats and wireframesmichele2026-08-26 19:55:31 +0200
39341940e4feat(stabili): add dynamic mirror import for Stabili 0013 and 0016 and create ASCII wireframes directory (task-d095b0e23b)michele2026-08-26 19:55:25 +0200
edb6398858fix(unita): strictly map active tenant and 100% quota per AnnoGestione from legacy condomin mirror (task-d095b0e23b)michele2026-08-26 19:21:22 +0200
8689f05ce5docs(control-tower): update CURRENT-205.md with inquilini quota split and fallback timelinemichele2026-08-26 18:59:59 +0200
dadee62d20fix(unita): add fallback timeline population and normalize inquilini quota split and start dates for active gestion (task-d095b0e23b)michele2026-08-26 18:59:53 +0200
90ec7461ccdocs(control-tower): update CURRENT-205.md with Timeline Subentri section detailsmichele2026-08-26 18:46:51 +0200
da28f26cb9feat(unita): render prominent Timeline Subentri e Gestioni Anteriore section card on Riepilogo tab (task-d095b0e23b)michele2026-08-26 18:46:44 +0200
9d7992b324docs(control-tower): update CURRENT-205.md with nominativo search and takeover datesmichele2026-08-26 18:40:37 +0200
cfc1c07b91feat(unita): add search by nominativo in unit picker dropdown and resolve active owners across all units (task-d095b0e23b)michele2026-08-26 18:40:31 +0200
df09bc67b2docs(control-tower): update CURRENT-205.md for task-d095b0e23bmichele2026-08-26 18:15:27 +0200
ae8f54dc36fix(anagrafica): Anagrafica Unica canonica filtering, audit history filter, and protected CRUD guards (task-d095b0e23b)michele2026-08-26 18:15:18 +0200
4774ef5751feat(anagrafica): idempotent bonifica of Benedetto duplicate rubrica records & card deduplication (task-b2aa57adea)michele2026-08-25 17:16:48 +0200
ccc0c1ec39fix(unita-page): filter getLegacyCondominRow by active header year context and invalidate cache (task-bfbd99fe5b)michele2026-08-17 13:14:42 +0200
d7a4cd420ddocs(control-tower): update CURRENT-205 for task-ade81ed21d auditmichele2026-08-16 11:11:52 +0200
cf0eaae8affix(unita-page): filter active owner by active anno gestione header context (task-c1f4a4c534)michele2026-08-15 09:54:50 +0200
6fb8d20af3feat(anagrafica-fornitori): materialize consolidated persons, promote legacy fornitori and index custom sidebar pages (task-25f318e499)michele2026-08-14 20:14:56 +0200
4da5922357docs(control-tower): publish audit report for task-9da25e193cmichele2026-08-14 13:47:04 +0200
fb1ebdf505fix(unita-page): resolve undefined property canale_convocazione with structured projection and regression test (task-c05327b8f1)michele2026-08-14 13:17:52 +0200
d3658d32e5feat(nominativi): switch NominativiStabile page to consolidated domain model source (task-d28345d744)michele2026-08-13 08:53:32 +0200
872b3a6b58docs(control-tower): update CURRENT-205.md for task-11b2442cbcmichele2026-08-13 00:46:18 +0200
45de2eaad2docs(control-tower): update CURRENT-205.md for task-d1affac2c5michele2026-08-12 20:11:34 +0200
b54ea07f54fix(importer): strictly use raw CFs, remove placeholder, support multi-gestione temporal tenant relations (task-856d2ae3f2)michele2026-08-11 00:05:30 +0200
f60898aae6feat(importer): reconstruct Anagrafica Unica, Unità and Relazioni for 0021 from condomin_mirror (task-856d2ae3f2)michele2026-08-10 23:45:19 +0200
dc08affa82docs: update CURRENT-205.md for task-25d2e33f8dmichele2026-08-10 10:17:32 +0200
4c99f5e87cfeat(staging): implement append-only condomin_mirror table and gescon:import-mirror-0021 command for pilot 0021michele2026-08-10 10:17:22 +0200
e5c8617d7dfeat(ops): add PRINT_TIMEOUT with 20m default and pass --print-timeout to agymichele2026-08-10 09:43:19 +0200
86928f069bfix(ops): fetch real task details via GET /api/tasks/{taskId} and prevent synthetic task fallbacksmichele2026-08-10 09:16:21 +0200
27b8f34392feat(ops): log detailed wrapper path, stdin length, env keys, stdout and stderr when proc_open wrapper exits non-zeromichele2026-08-10 09:11:18 +0200
7eaff36e75fix(ops): explicitly pass isolated env array and default absolute wrapper script path in ControlTowerPollCommandmichele2026-08-10 01:32:13 +0200
0ac85f8b92fix(ops): format list fields as JSON arrays, filter out placeholder strings, and update prompt template rulesmichele2026-08-10 01:28:15 +0200
1fbe2a746dfeat(ops): add AGY_MODE fallback to plan mode in run_205_followup_via_agy.shmichele2026-08-10 01:21:46 +0200
36d16b8cb9fix(ops): update 205_followup_prompt.template.txt with mandatory extended report fieldsmichele2026-08-10 01:16:57 +0200
24825cbb2cfix(ops): connect ControlTowerPollCommand directly to agy wrapper via stdin and add mock testsmichele2026-08-10 00:55:01 +0200