Исправить декодирование URL в haih-agent
Проблема
В haih-agent воспроизводится та же ошибка, что и на freecode.academy: URL со спецсимволами в percent-encoded виде могут приводить к 404, хотя соответствующая сущность существует.
Причина подтверждена: отсутствует корректное декодирование URL. В прикладном кейсе использование decodeURI решает проблему.
Что нужно сделать
- Найти общий участок в
haih-agent, где URL/route params/slug используются для поиска сущности или сопоставления маршрута. - Добавить единообразное декодирование до бизнес-логики/lookup, чтобы percent-encoded символы сравнивались с данными в ожидаемом формате.
- Определить точное место применения
decodeURI/эквивалента так, чтобы исправление работало централизованно, а проекты на базеhaih-agentне были вынуждены чинить это локально. - Не допустить двойного декодирования и ошибок на уже decoded значениях.
- Проверить взаимодействие с URL generation/canonical URLs, чтобы encode/decode были симметричны и выполнялись ровно по одному разу на соответствующей границе.
Пример проблемного кейса
/comments/topics/dzheneriki-typescript/nu-vot-ts-tebe-govorit-%22ty-zanimaeshsya-figney%22,-i
До исправления такой URL может давать 404 из-за %22 и других encoded-символов. После декодирования должна находиться существующая страница/сущность.
Связанный SEO/GEO контекст
Эта работа стала частью более общего базиса для человекопонятных URL: haih-agent должен уметь генерировать и обслуживать стабильные slug URI, а приложения на его базе — использовать этот механизм для SEO-friendly маршрутов.
Связанная задача fi1osof.ru: Прокачать SEO/GEO
Реализация: https://github.com/haih-net/agent/commit/1f99a51dd407eb4e58f9e2f83f411a265db2f24c
Коммит не ограничивается decodeURI: он добавляет slugify URI для концептов и автоматический 301 redirect при изменении URI, то есть формирует общий фундамент для перехода приложений на ЧПУ.