Vortex Dev Log #11 — Delegation, Final Proposal Outcomes, and Release Hardening

Vortex Dev Log #11 — Delegation, Final Proposal Outcomes, and Release Hardening

TL;DR

This update turns several important parts of Vortex Simulator from “working in principle” into something that feels much closer to a real product.

Delegation is now visible, auditable, and politically legible. Proposal outcomes now resolve through proper final routes instead of stale or half-live pages. Chamber votes now stay open for a real voting window instead of finalizing the moment the first passing threshold appears. And a broad hardening pass tightened proposal pages, feed routing, mobile behavior, courts quarantine, and live release correctness on the VPS.

Delegation is now something people can actually understand

Until recently, delegation existed more as hidden backend influence than as a visible governance mechanism. That is no longer the case.

Delegation is now snapshot-backed at the proposal level, which means later delegation edits do not silently rewrite the meaning of a vote that was already live. It is also more auditable: overwrite and clear behavior now leave clearer historical traces, and the system is stricter about who is actually eligible to delegate.

Just as importantly, delegation now shows up in places where people expect to see it. My Governance exposes delegation state by chamber. Human-node and profile pages show current delegate relationships, inbound delegated weight, and inbound delegators. Chamber roster views make direct and delegated influence easier to read. Chamber proposal pages now explain when delegation is coming from a captured vote snapshot rather than only from the current live graph.

This makes delegation feel less like an invisible weight multiplier and more like an understandable political mechanism.

Proposal outcomes now feel final

Another major improvement in this update is that proposal lifecycle behavior is much cleaner and more trustworthy.

Non-formation proposals no longer pretend to enter execution. If a proposal passes and does not require a formation flow, it now ends in a real terminal passed state. Failed outcomes also resolve through proper finished-page behavior instead of leaking users into outdated stage routes.

That has a big effect on the product experience. Feed items, proposal cards, and direct links now resolve to canonical detail pages with meaningful final context rather than stale vote shells or empty dashboards. Attachments on live and finished proposals now preserve their real external links instead of rendering dead placeholder actions.

The end result is simple but important: when a proposal is over, it now actually looks over.

Chamber votes now stay open for a real voting window

One of the least satisfying behaviors in the simulator was that a chamber vote could effectively “feel done” the moment passing math was reached. That is no longer how it works.

Chamber votes now remain open for the configured voting window. Governors have time to react, express support or opposition, and see the vote close through a proper timed process. Final evaluation happens after the window ends, not the instant the first passing threshold is hit.

This makes voting feel more politically credible. A chamber decision now has space for response, timing, and finality instead of collapsing into instant closure.

A broad hardening pass landed across the live product

This update also includes a large release-readiness pass across the most visible parts of the simulator.

Proposal Pool copy now reflects the actual intended rules more truthfully, including the 22% engaged and 10% upvotes framing. Pool, chamber, feed, and proposal detail surfaces now agree much more consistently on quorum, expiry, and canonical routing. Submitted drafts are immutable after submission and no longer bounce users into stale non-canonical flows.