This adds the read side of the review syncing to the generated page: a "Get updates" button at the top right retrieves the shared state from update.cgi (reached by a bare relative URL, so it must be in a cgi-bin directory next to the page) and applies it. Nothing is fetched automatically, not even at load time: it's up to the user to explicitly click to resynchronize, and without it (or with the server down) the page keeps behaving fully standalone as today. Three states exist per line to make this work. The original state is the verdict the bot chose, captured at load time and constant. The reference state is the last known shared state, on top of which the user's edits sit; it starts equal to the original. The local state is the DOM itself (the checked radios). Applying a fetched overlay recomputes every line's reference as "the server's entry if any, otherwise the bot's verdict", so a removed override properly falls back to the original; the reference always advances but the displayed state only moves where the user had no local edit: local edits win, and re-applying the same overlay twice changes nothing. The received commit ids are resolved exactly first, then by symmetric prefix (one id being a prefix of the other, for mixed-length ids), first line wins. The shared notes land in a dedicated container below the AI explanation, rendered via innerText (no HTML injection) and replaced wholesale so the operation stays idempotent; entries for commits absent from the page are simply ignored. The whole exchange was tested with the real generated page's scripts running against a stubbed DOM covering load capture, prefix resolution, adopt-vs-keep on both changed and disappeared entries, idempotent re-application, and silent degradation on fetch failure. |
||
|---|---|---|
| .github | ||
| addons | ||
| admin | ||
| dev | ||
| doc | ||
| examples | ||
| include | ||
| reg-tests | ||
| scripts | ||
| src | ||
| tests | ||
| .gitattributes | ||
| .gitignore | ||
| .mailmap | ||
| .travis.yml | ||
| BRANCHES | ||
| BSDmakefile | ||
| CHANGELOG | ||
| CONTRIBUTING | ||
| INSTALL | ||
| LICENSE | ||
| MAINTAINERS | ||
| Makefile | ||
| README.md | ||
| SUBVERS | ||
| VERDATE | ||
| VERSION | ||
HAProxy
HAProxy is a free, very fast and reliable reverse-proxy offering high availability, load balancing, and proxying for TCP and HTTP-based applications.
Installation
The INSTALL file describes how to build HAProxy. A list of packages is also available on the wiki.
Getting help
The discourse and the mailing-list are available for questions or configuration assistance. You can also use the slack or IRC channel. Please don't use the issue tracker for these.
The issue tracker is only for bug reports or feature requests.
Documentation
The HAProxy documentation has been split into a number of different files for ease of use. It is available in text format as well as HTML. The wiki is also meant to replace the old architecture guide.
Please refer to the following files depending on what you're looking for:
- INSTALL for instructions on how to build and install HAProxy
- BRANCHES to understand the project's life cycle and what version to use
- LICENSE for the project's license
- CONTRIBUTING for the process to follow to submit contributions
The more detailed documentation is located into the doc/ directory:
- doc/intro.txt for a quick introduction on HAProxy
- doc/configuration.txt for the configuration's reference manual
- doc/lua.txt for the Lua's reference manual
- doc/SPOE.txt for how to use the SPOE engine
- doc/network-namespaces.txt for how to use network namespaces under Linux
- doc/management.txt for the management guide
- doc/regression-testing.txt for how to use the regression testing suite
- doc/peers.txt for the peers protocol reference
- doc/coding-style.txt for how to adopt HAProxy's coding style
- doc/internals for developer-specific documentation (not all up to date)
License
HAProxy is licensed under GPL 2 or any later version, the headers under LGPL 2.1. See the LICENSE file for a more detailed explanation.
