migrate stage build to native elc; chat restores from localStorage on return
Build pipeline - build-stage.sh replaces the old in-Dockerfile bootstrap.py path. Host pre-compiles src/*.el into dist/main.c via the canonical native elc at foundation/el/dist/platform/elc and applies the stub-decl sed before docker buildx runs. - Dockerfile.stage drops bootstrap.py + python3 from the builder stage and just runs cc on the host-supplied dist/main.c. - Pre-rendered HTML shells under /srv/landing/ are now chowned to the landing user so the El page-builder's fs_write at startup can rewrite them — without that, post-COPY edits never reach the served HTML and the served page stays as the stale build-time fallback. Chat restore - session.verified + session.verifiedAt persist through localStorage so a return visit within 24h skips the Turnstile gate and lands directly in the restored conversation. - restoreOrGreet() is the single source of truth for what shows up in the message pane after the gate clears: replays prior messages with skipSave, else drops the canned hello once and remembers it. - applyVerifiedDom() hides the gate / reveals the chat row, called both from the verified-on-load path (DOMContentLoaded if loading, else immediate) and from the Turnstile callback. - neuronDemoReset clears verified + verifiedAt so the gate returns next open. Extracted JS assets (src/assets/js/*.js + manifest.json) and the extract-js.py helper land here too — they match what the new build-stage flow produces and removes the inline <script> blobs from the served HTML.
This commit is contained in:
+1
-16
@@ -44,22 +44,7 @@ fn environmental() -> String {
|
||||
<p style=\"font-family:var(--body);font-size:0.75rem;color:var(--t3)\">Based on estimated token reduction applied to your monthly spend.</p>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
(function() {
|
||||
var slider = document.getElementById('calc-slider');
|
||||
var spendEl = document.getElementById('calc-spend');
|
||||
var savingsEl = document.getElementById('calc-savings');
|
||||
if (!slider) return;
|
||||
function update() {
|
||||
var monthly = parseInt(slider.value, 10);
|
||||
var annual = Math.round(monthly * 0.35 * 12);
|
||||
spendEl.textContent = '$' + monthly;
|
||||
savingsEl.textContent = '$' + annual;
|
||||
}
|
||||
slider.addEventListener('input', update);
|
||||
update();
|
||||
})();
|
||||
</script>
|
||||
<script src=\"/assets/js/9bbad1ad5acb.js\" defer></script>
|
||||
</div>
|
||||
|
||||
<div style=\"display:flex;flex-direction:column;gap:1.5rem;padding-top:1rem\">
|
||||
|
||||
Reference in New Issue
Block a user