Netpulse_SasS/server/internal
byrsapty cdf5f1fb54 Візуальний diff конфігів
Збір працював, але подивитись на зібране було ніде: жодної сторінки, а
lines_added завжди 0 — порівняння ніхто не рахував.

difftext: власне порядкове порівняння з ділянками й контекстом.
Бібліотека принесла б підтримку слів, символів і кольорів у терміналі —
десяток речей, які тут не знадобляться.

- спільний початок і кінець відкидаються до основного алгоритму: у
  конфігах змінюється кілька рядків із тисячі, і квадратична таблиця
  будувалася б там, де досить порівняти десяток
- понад чотири мільйони клітинок дають truncated і грубу заміну блоку:
  точність там нічого не дає, а чесна позначка краща за правдоподібний,
  але вигаданий diff
- сусідні зміни зливаються в одну ділянку, інакше контекст дублюється

Результат кешується в ncm.diffs — diff двох версій незмінний назавжди.
Підсумок +N/−M заразом дозаписується у version, щоб список історії не
розшифровував два тіла на кожен рядок.

UI: сторінка «Конфіги» — хости зліва, історія й diff справа. Порівняння
з попередньою версією відкривається одразу: питання завжди одне — що
змінилось цього разу.

Перевірено наживо: друга версія стенду дала @@ −8,3 +8,4 @@ з одним
доданим рядком і контекстом, лічильник +1 −0 дозаписався, повний текст
на 292 байти читається.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-24 12:30:30 +03:00
..
alerting Етап 9: алерти й сповіщення 2026-08-15 11:09:19 +03:00
auth Етап 5: користувачі, вхід і права 2026-08-15 10:24:58 +03:00
crypto Етап 9: алерти й сповіщення 2026-08-15 11:09:19 +03:00
difftext Візуальний diff конфігів 2026-08-24 12:30:30 +03:00
grpcapi Етап 7: збір конфігів запрацював наскрізно 2026-08-24 12:02:50 +03:00
httpapi Візуальний diff конфігів 2026-08-24 12:30:30 +03:00
store Візуальний diff конфігів 2026-08-24 12:30:30 +03:00