Add revisioned configuration events and detached commits so Web changes
refresh clean Swing forms without overwriting unsaved local edits. Preserve
configuration formatting and document the synchronized update workflow.
Publish node metadata through Tiny and Full queries, synchronize Swing and
web topology details, and document the updated protocol workflow.
BREAKING CHANGE: RouterInfo no longer carries device names; peers must use
Tiny node-info queries.
- replace integer webPort with MultiProtocolSocketAddress webListen
(default: http://0.0.0.0:4665) in controller config
- rename Swing UI item to "Web API 监听地址" and validate as full URI
- update WebServer binding to honor configured host and port
- normalize legacy webPort integers to http://0.0.0.0:<port> on load
and keep JSON API backward compatibility
- update i18n keys in zh_CN and en_US resource bundles
- update root klalb-config.json and AGENTS.md documentation
- new "Web API settings" section after security settings in the Swing
options panel: checkbox bound to webUI plus a port text field bound
to webPort (empty -> default 4665; non-numeric or out of 0-65535
shows an invalid-port warning and aborts the save)
- load handler fills both controls from the current config item
- add i18n keys to klalb_zh_CN / klalb_en_US bundles
- include previously missing webUI/webPort fields in
KLALBControllerConfigItem equals/hashCode