Sloppy Voice DevelopersSloppy Voice ↗

Decision register

Revision: 0.4. Date: 2026-10-18. The entries marked accepted record direct human answers in this chat. Acceptance is limited to the stated choice; nearby mechanisms remain proposed.

Accepted decisions

Qt saved-server recovery, 2026-11-06: the human requests automatic re-sign-in for retained foreign servers when loading/opening them, with an error presented only after recovery fails. SPEC-005 records the bounded recovery scope; explicit sign-out, authority pins, unresolved commands and independent voice remain protected.

D-169 trial allowance extension, 2026-11-03: the human explicitly authorizes up to two additional generated-media Cloudflare validation runs for the Qt managed-video source-identification correction, increasing the cumulative limit from twenty to twenty-two. The existing app, generated video/sound, one-presenter/two-viewer, 4 Mbps and 600-second per-run bounds remain unchanged.

D-169 trial allowance extension, 2026-11-02: the human explicitly approves up to five additional generated-media runs for the Qt screen-sharing setup investigation, increasing the cumulative limit from fifteen to twenty. Each run retains the 600-second, one-presenter/two-viewer and 4 Mbps bounds in SPEC-025.

IDDecisionSource and consequences
D-228Add non-visible channel control messages for bots/plugins.Explicit human request and follow-up on 2026-11-08: existing channel access, encryption and retention apply; API consumers can retrieve controls, while clients exclude them from transcripts, search, unread counts and notifications. SPEC-028 owns the engineering wire profile.
D-227Publish the developer API/library, searchable documentation and protocol design at developer.sloppyvoice.com; support multiple logical servers in one instance.Explicit human request and follow-ups on 2026-11-08: shared instance accounts, any signed-in account can create a logical server, independent server owners/members/channels/settings. SPEC-028 records the resource/text API implementation scope and engineering choices; this does not select a logical-server media transport or client navigation design.
D-226Add a Qt server context-menu invitation workflow for new local and existing accounts, granting propagating server membership.Explicit human request on 2026-11-07. Include all channels inheriting server permissions; retain denial precedence, inheritance breaks, owner-only server admission, explicit channel joins and independent voice. Publish a higher Gentoo source version and update both overlays. SPEC-022 owns the permission/wire extension.
D-225Native Qt transcripts follow arriving messages only when already at the bottom.Explicit human request on 2026-11-07. Preserve the existing scroll position when above bottom; returning to bottom resumes following. Fixed presentation behaviour, with no preference or protocol change. SPEC-005 owns the shared native transcript contract.
D-224Show active outgoing Qt screen sharing in a compact pane in the main window; keep share configuration in a dialog.Explicit human request on 2026-11-07. Setup/source consent and incomplete-layout correction remain in the existing dialog; successful publication closes setup and shows call-owned sharing status and Stop in the main workspace. Browsing conversations preserves the share. No new capture, media, permission or configuration behavior is selected.
D-223Native Qt message composers send with Enter and insert a newline with Shift+Enter.Explicit human request and shortcut clarification on 2026-11-07. Applies to ordinary channel, direct/group and inline-reply composers. Use the existing enabled Send action and preserve draft/error/pending safeguards. No new preference; unrelated multiline forms retain native editing.
D-222Raise continuous PTT duration limits to ten minutes.Explicit human request on 2026-11-07: “Please increase any limitations on how long users can hold the PTT button to 10 minutes.” Supersedes D-095’s duration default/ceiling and preservation of shorter existing values: default and maximum become 600 seconds; a one-time transactional upgrade raises saved server and room limits to 600 seconds, retaining inheritance. Subsequent authorized shorter settings remain supported within 10–600 seconds. Existing release, mute, authority and fresh-press gates remain. SPEC-004/012 own the duration and upgrade contracts.
D-221Use WebSocket change hints with authenticated canonical synchronization and polling fallback.Explicit human selection on 2026-11-07 among the server-performance council options, relayed verbatim in substance by the orchestrating agent's implementation brief: “WebSocket hints + authenticated canonical sync + polling fallback”, with the transport choice stated as approved. The council vote itself approves nothing further. Consequences fixed by that selection: hints are advisory and content-free; existing authenticated reads remain authoritative; existing polling continues as the fallback. Engineering selections under D-024 (not separately human-approved): event-hints/1 paths and frames, single-use 30 s hashed tickets in Sec-WebSocket-Protocol, watch frames instead of ticket scopes, close codes, socket lifetimes and caps, 100 ms coalescing, pacing under the unchanged 240/min account bucket, client 1 s spacing and 15 hint reads per loop per minute, six sockets per account, the iOS native broker. No polling relaxation, new limit, preference, visitor-freshness extension or media-deadline change is selected. SPEC-027 owns the wire profile; SPEC-008 and SPEC-005 own server and client behaviour. Number chosen as the next unused identifier; renumber at merge if a concurrent change claims it.
D-220Bound native media lease Durable Object retries to two seconds, retaining the default retry count.Human acceptance on 2026-11-07 of the 2026-11-06 maintenance recommendation: upgrade Wrangler from 4.151.1 to at least 4.158.0; use a separate /lease stub with retry.timeoutMs=2000, leave maxRetries omitted, preserve default duplicate suppression and grant expiry. The budget does not cancel the initial attempt. Validate isolated retry timing, duplicate suppression and expired-grant rejection before D-159 rollout. No latency or cost saving has been measured. Follow-up human instruction on 2026-11-07, “Let's deploy this,” explicitly authorizes rollout after the disclosed lack of isolated distributed pre-dispatch timing evidence; retain that limitation without claiming the missing test passed. SPEC-008 owns this fixed adapter policy.
D-219Keep mobile ⋮ navigation, show actual connected call destination/account in the bottom bar, and keep enabled statistics continuously visible.Explicit human answers on 2026-11-06 select both recommended placements. Refines D-161/D-163 mobile placement and resolves D-215/D-182 shared visibility scope for mobile; independent call versus viewed account, existing preference/default, permissions and measurements remain unchanged. SPEC-005 owns wrapping, enlarged-layout fallback and tests.
D-218Adapt selected Electron B UI for mobile through council rounds and deliver an internal iOS TestFlight build for feedback.Explicit human request on 2026-11-06. Retain the specified D-161/D-163 mobile interaction model while reviewing and implementing B content refinements. No new navigation model, broadcasting or background behaviour is selected. D-219 records the human’s subsequent placement selections; the earlier council votes alone did not resolve them. SPEC-005 owns the mobile composition and tests. Signed upload, Apple processing, Owner testing availability and physical acceptance remain distinct outcomes.
D-217Move both hosted control servers and both media relays to North America now; prefer Canada wherever a placement option exists.Explicit human request on 2026-11-05: “Please deploy for both servers now, and also move the control servers. Canada is the preference for any components where the option is available.” Supersedes D-216's retention of the existing EU control objects. Cloudflare currently offers no Canada-specific Durable Object jurisdiction or location hint, Container region or R2 location, so every moved component uses us; Canada takes precedence over us for any component where a supported Canada control later exists. The control data moves by the SPEC-002 one-time copy: the new object copies every table and row from the inactive EU object, resumes after interruption, and serves only after both databases produce the same digest. Existing identities, accounts, sessions, history, secrets and domain names are preserved. The EU source is retained, never modified and never serves again unless an operator rolls back; a rollback restores the EU state as of the copy and loses later writes. The public website, its EU R2 downloads and the shortcut directory are not control servers and stay in the EU. Active calls end once during the move. Deployed under D-159.
D-216Relax D-040's EU placement so hosted components may run in North America for lower-latency North American clients.Explicit human request on 2026-11-05: “relax that requirement so my North American clients can connect to servers with lower latency.” Supersedes D-040's EU-before-US order and the EU-only hosted media check. Placement follows the expected client population; us is the lower-latency choice for the current North American cohort. Each Cloudflare media deployment selects eu or us, with a matching Container constraints.jurisdiction, and the media object must report that jurisdiction; unrestricted media placement remains rejected because the object would be created beside its first caller. Control DATA_JURISDICTION retains eu, us or omission. Canada remains unavailable as a Cloudflare jurisdiction. Changing an existing control or site object's jurisdiction selects a different object and requires a specified migration, so existing EU control data, R2 downloads and shortcut records remain until one is approved. Moving a live media relay needs no data migration but ends active calls; it is a deployment action under D-159. Global Worker ingress and TURN routing remain outside the placement claim.
D-215Select the Electron/shared-web B organization and accumulated refinements for a new testing alpha; exclude C.Human selection on 2026-11-05: agrees with the council's B recommendation and rejects C, then explicitly requests build and deployment of a new alpha incorporating refinements to date. Adopt topic categories, Privacy & joining, Saved servers, retained-form secondary details and responsive core-state/base-statistics layout. Exclude C's Focus task behavior, A's continuous administration and D's scope-led category rail. Resolve observed layout/state defects during integration; preserve independent authority, drafts, calls and capture gates. Testing release is authorized before the still-unmet highest-reference visual gate, without claiming visual completion. SPEC-005 owns shared-client behavior; native Qt remains separate.
D-214Expand the native Qt conversation to the full available width.Explicit human request on 2026-11-04 to remove the large empty space to the left and right of the channel message view. Supersedes D-213's centred 64-character reading measure and surplus gutters only. Heading, transcript and composer share the available page width with native style margins; retain grouped session controls, navigation, full identities, thread information, desktop scaling and protected ownership. No width preference is introduced.
D-213Select option B's measured reading workspace, with relevant bottom-session information and actions grouped coherently.Explicit human selection on 2026-11-04: “Let's proceed with option B.” The human values D's collection of related bottom information so it can be read as one, without claiming D is inherently better. Retain B's permanent two-root navigation and conversation tabs, align the heading/transcript/composer with a desktop-relative reading measure, and present the actual call destination, owning account, microphone state and related actions as one coherent bottom session area. SPEC-005 completes presentation/reflow details. This selects the layout and grouping principle; full visible identities, D-212 thread fields, native selection/style, statistics and independent text/call/draft ownership remain authoritative. Separate compact-identity, neutral-field, quiet-selection, hidden-control and new navigation proposals are not selected by this answer. Historical A/C/D studies remain evidence rather than active implementation targets.
D-212Use the lighter continuous native conversation fields and stronger identity hierarchy shown in the UI overhaul review.Explicit human selection on 2026-11-04 after the source-withheld calibration. Refines D-206 under D-211: retain sand/lavender/sage thread relationships, full identities/reply references, native font metrics and action ownership, but use the selected substantially lighter fields, bold display names and secondary qualified-address text. SPEC-005 owns the exact rendering weights and checks; no preference, permission, metadata removal or navigation change.
D-211Polish and simplify the UI through a scored before/after council review, prioritizing native Qt and aligning shared web presentation where practical.Explicit human request and follow-up on 2026-11-04. Authorizes a UI polish overhaul PR and iterative visual review until every available council member scores at least 9/10. The later follow-up adds blind screenshot comparison with Discord, TeamSpeak, Ventrilo, KDE System Settings, Windows Control Panel and professionally recognized Internet references; SloppyVoice must also rank highest. Record provenance separately, withhold source/award labels from scoring briefs and preserve honest independent ratings. The human re-adds GPT Astra alongside Claude Opus and GPT Sol later on 2026-11-04, with reasoning effort capped at extra high; earlier two-member results retain their original scope. A subsequent request adds Trillian Messenger, Microsoft Teams, Webex, Slack and Zoom to the comparison pool and explicitly authorizes exploration of substantial UI rearrangement. Keep at most four active design variants; where a material specification choice needs human selection, continue evaluating/refining the proposals across rounds without marking that choice confirmed. Preserve existing native navigation, desktop integration, security/identity information and independent voice/draft contracts; implementation-level spacing, grouping and reflow refine the existing presentation. New interaction models remain subject to human ownership.
D-210During alpha, keep only the most recent build of each download available on the website, and keep only the matching current Gentoo ebuild.Explicit human request on 2026-11-03: “Yes, let's only keep the most recent build available on the web site. Once we get out of alpha builds I might change my mind on that, though.” Supersedes D-063 archived-download retention and D-184's preservation of earlier ebuilds/distfile digests while releases are alpha; D-184 version ordering remains. The allowlist keeps each platform's current manifest and the current Gentoo source archive only; older versioned URLs return 404. Immutable R2 objects stay in private storage (not deleted), so retention can be restored by a later decision. Revisit when leaving alpha.
D-209Add an in-application bug report function that posts reports to the human's GitHub repository megaschlong/sloppy-voice.Explicit human request on 2026-11-03: “Please implement a bug submit function in the application such that it will post the bug report to my github repo. Currently the repo is not public but I will change that when I get home, so continue working under the assumption that it will be.” The human was unavailable, so the following mechanisms are PROPOSED for confirmation rather than accepted: server-side posting with a fine-grained BUG_REPORT_GITHUB_TOKEN secret (no client credential), capability bug-reports/1, a prefilled GitHub new-issue fallback when unavailable, public-posting notice, opt-in diagnostics/account address (default off), 120/8000-character limits, 32 KB diagnostics, 5 reports per account per hour and 20 per server per day, optional label unset by default, mention/HTML/fence neutralisation and redaction. SPEC-026 owns the contract; SPEC-005/SPEC-008 own presentation/posting. Numbered D-209 because D-208 may be assigned concurrently; renumber at merge if needed.
D-208Build the distributed Linux x64 binaries, currently the native archive and Flatpak, for the x86-64 baseline so they run on all x64 processors. Keep the same baseline for future prebuilt packages without restricting source distributions.Explicit human request on 2026-11-03: “Rebuild the distributed Linux binaries to support all x64 processors” and “Set the same baseline for future builds, though don't impact the source distributions in any way that would limit them from taking advantage of newer processors.” This corrects alpha.57's accidental host -march=native (AVX-512) dependency. SPEC-005 owns the profile: KDE 6.10 SDK, -march=x86-64 -mtune=generic, the official Rust toolchain at target-cpu=x86-64, pinned checksum-verified third-party sources, ISA-note/instruction gates and old-CPU QEMU qualification. Reviewed runtime-dispatched SIMD in third-party code remains allowed. The source archive, Gentoo ebuilds and CMake add no ISA flags. There is no runtime setting. Immutable alpha.57 objects remain unchanged.
D-207Show live channel occupants and distinguish native tree servers, channels and users with foreground/background colours.Explicit human request on 2026-11-03. Refines D-198 navigation styling. Project existing connection-scoped SPEC-012 voice attendance beneath its channel; retain permission filtering, full qualified identities, explicit muted state, hierarchy, native selection, readable light/dark colours and desktop scaling. Informational presence rows add no membership, text or voice action. The same-day follow-up requests the existing web/Electron Public/Private labels and permission-aware channel handset, with exact account/connection/channel matching and existing join/move/leave safeguards. No preference, timer or protocol change.
D-206Use the selected muted Solid thread fields presentation in the native Qt transcript, with compact opaque rounded hover controls.Human selects Astra’s Solid thread fields, requests less action-row space and rounded solid controls, further mutes the palette, then explicitly requests implementation on 2026-11-02. Supersedes D-198’s neutral-only message presentation and the native portions of D-067/D-075/D-080 covered by SPEC-005: full root/reply colour regions, repeated root author context, high-contrast YOU/initials instead of blue body text, inline metadata and an overlay toolbar. Preserve thread order/eligibility, actual reply parents, counts, dates/ages, drafts, errors, permissions, voice and keyboard/touch access. Review-only palette pickers and forced hover are not application preferences.
D-205Reserve space for changing native status-bar client bitrates so the Server: heading stays still.Explicit human request on 2026-11-02. Refines D-200/D-201/D-203 presentation only: reserve numeric width for upload/download, preserve labels, units, accessible values, desktop scaling and compact wrapping/shrinkage. Human refinement on 2026-11-02 requests 30–40% less reserved space: reduce twelve numeric characters to eight (one third less), stable through 999999.9 kbps; longer values expand naturally without clipping or changing units. No new preference or measurement rule.
D-204Restore the existing lobster behind the ordinary channel title in the native Qt client.Explicit human request on 2026-11-02 and placement clarification: “Behind the channel title above the conversation.” Supersedes D-198’s retirement of the lobster only. Reuse D-149’s static, case-insensitive whole-word Lobbyster decoration with readable unchanged title/accessibility, native font/scaling, theme-aware text contrast and unobstructed controls. No setting, network request, animation or conversation/voice behavior changes.
D-203Reorder only owner server totals so upload/download and service/voice RTT are adjacent; clearly distinguish server totals from client measurements.Explicit human request on 2026-11-02. Human clarification keeps the client metric order unchanged. Refines D-200/D-201 presentation only; use fixed owner metric order rather than JSON key order and explicit Client/Server section labels. The human requests labels distinct from statistics and suggests bold white; use bold desktop-foreground headings for light/dark readability with extra section spacing, retaining units, category colours, compact wrapping and existing measurement/owner boundaries.
D-202Gentoo builds the native client and project helpers/plugins from source instead of installing downloaded application binaries.Explicit human request on 2026-11-02. Supersedes D-032/D-061 prebuilt payload selection for new Gentoo versions only; retain automatic immutable source downloads, normal Portage dependency/toolchain/flags handling, D-181 overlay verification and D-184 version ordering. Existing binary archives remain supported for other distribution formats and historical ebuilds.
D-201Use colour and spacing to distinguish components of the native status-bar statistics.Explicit human request on 2026-11-02 after alpha.56. Refines D-200 presentation and permits category accents within D-198’s standard Qt statistics area: retain compact content-sized wrapping, always-visible labelled values/units, desktop appearance, owner authorization, unavailable values and existing measurement/reporting cadence. Colour identifies metric categories rather than inventing connection-quality thresholds; labels and spacing retain meaning without colour.
D-200Single-click native channels open/select their text tab; keep native statistics always visible in a status bar sized to its contents, without the statistics checkbox or Conversations button.Explicit human request on 2026-11-02 after alpha.55. Supersedes D-199’s native display toggle and retained opt-in behavior only; the historical showStatistics value is preserved but ignored by this client. Keep owner authorization, metric provenance/cadence, unavailable-value handling, protected prepared text selection and independent voice. Unread tree/tab indicators and the existing Direct Messages context-menu summary remain.
D-199Show the native Qt client’s enabled statistics along the bottom status bar, on one line when they fit.Explicit human defect report/request on 2026-11-02. Supersedes D-198’s native statistics-details dialog placement only. Keep local connection/available voice metrics and owner-authorized aggregates in the status area, wrapping when needed; retain the existing display preference, reporting, measurement and permission contracts. The same report requests correction of foreign-server sign-in, incomplete permitted channels and DM navigation under their existing accepted account/permission requirements.
D-198Approve the remaining named native presentation changes: standard Qt styling, modeless Preferences/listening dialogs, static unread counts, compact avatars, plain headings, remembered splitters and an embedded screen viewer with standard controls.Explicit human answer on 2026-11-01 to the P-037 review: “Approve these native presentation changes (Recommended)”. Retires the Linux-only custom palettes, rounded cards, animated badges and lobster heading art while preserving their functions, permissions and call safeguards. Other clients retain their presentation. Separate viewer windows remain optional proposals, not selected by this answer.
D-197The native Qt Linux client follows desktop fonts and display scaling without a separate application zoom control. Preserve the old zoom value as migration metadata.Explicit human answer on 2026-11-01: “Follow desktop scaling only (Recommended): simpler native settings; preserve the old zoom value for migration records.” This selects the scaling amendment in P-037 for the Linux successor, superseding D-100/R-106's native application-scale control. Preserve the source preference during migration without applying it to Qt or changing other clients.
D-196Complete the full native Qt replacement rather than publish a separate incomplete preview.Explicit human instruction following the native progress report on 2026-10-31: “Let's complete the native replacement.” Continue implementation through the remaining applicable functionality and validation, then D-195 deployment and D-181/D-184 Portage delivery. The prior optional preview-publication question is closed; no further release-scope confirmation is needed.
D-195Build and deploy the selected native Qt client and publish it through the local Portage repository.Explicit human request on 2026-10-31 after D-193/D-194 and the revised tabbed sketch. Authorizes implementation and validated release/publication, including both Gentoo copies and upgrade selection under D-181/D-184; no further per-release approval is required. A development shell or partial protocol port cannot be published as the replacement. Keep existing services, profiles and immutable packages intact until applicable native parity/security/media and package acceptance pass.
D-194Select the native tabbed layout, remove its toolbar/ribbon and right pane, and use Servers and Direct Messages tree roots with creation context menus. Keep all pinned contacts in Direct Messages and sort by latest message, then newest pin, then alphabetically.Human selection/refinement on 2026-10-31, followed by the explicit sorting answer “Last message; newest pins first (Recommended)”. Servers offers Add server; Direct Messages offers New conversation. This replaces P-037's initial three-pane recommendation and the prior right-sidebar/creation-toolbar presentation for the Linux successor only. SPEC-005 owns the native layout/order; SPEC-014 retains underlying saved-contact/Recent semantics and records the missing pin-chronology data dependency. The sketch is design evidence, not delivery of the native client. Other P-037 workflow proposals are approved only to the extent explicitly selected.
D-193Replace the Linux Electron client with a native client in C/C++ or Rust, use Qt, and prioritize minimum practical processor/memory use with low installed disk requirements.Human requests on 2026-10-31: rewrite the Linux app, make it behave like a native app, suggest changes to earlier custom UI requirements for review, and “Definitely use Qt, please.” This supersedes D-028's Electron/shared-renderer implementation target for the Linux successor. It does not select a reduced feature set, approve the individual presentation amendments in P-037, or change other platforms. SPEC-005 records the confirmed scope and proposed C++/Qt Widgets presentation. The alpha.51 Linux package remains the released implementation until a validated successor is delivered.
D-186Confirm the password during account creation and make signup more intuitive.Human request 2026-10-31. SPEC-005 adds a local retype field to owner setup, invited/public signup and creation on another service; public signup is offered directly when the existing service policy permits it. Qualified identity, invitation binding, password policy and new-device approval stay under their existing authorities.
D-187Extend personal remote-user volume from silence to four times normal playback gain.Human request 2026-10-31. SPEC-004 owns 0–400% personal gain, neutral 100%, exact silence, legacy preference compatibility and existing output limiting; SPEC-005 owns presentation. Shared moderator gain/mute authority remains unchanged.
D-189Keep voice activation continuous during ordinary navigation and sensitivity edits; make sensitivity increase left to right with descriptive labels and show mandatory PTT beside the channel.Human request 2026-10-31. SPEC-004 retains authority/focus/recording safety fences; SPEC-005 owns controls. Threshold-only edits preserve the armed detector and current phrase; an actual input-mode change still stops it.
D-190Make viewer zoom accessible and provide an independent mute for shared PC audio.Human request 2026-10-31. SPEC-023/005 extend the existing local viewing controls; microphone playback and other viewers remain independent.
D-191Fit visible voice usernames in the automatic left sidebar where space permits.Human defect report 2026-10-31. Restores D-110's automatic-fit requirement, retaining manual widths and viewport caps.
D-192Exclude Sloppy Voice playback when sharing selected output-device sound.Human request 2026-10-31 supersedes D-164's inclusion of own call playback. Application selection and explicit capture consent remain; SPEC-023 records the filtered Linux output contract.
D-188Save microphone mode and sensitivity automatically and remove Save microphone mode.Human request 2026-10-31. SPEC-005 owns immediate application, serialized persistence, latest-change status and visible failure/retry; SPEC-004 retains PTT/activation defaults, limits and fresh-input gates.
D-185Refresh right-sidebar profile labels at sign-in and after 24 hours in an open client, whichever occurs first.Human request 2026-10-30. SPEC-005 owns scheduling and safe cached fallback; SPEC-008 owns bounded authenticated current-profile projections. Update nickname/picture only for the same qualified identity, preserving saved/Recent context and permissions.
D-184Bump the Gentoo package version on every ebuild update, including now.Explicit human instruction 2026-10-27. New native archive bytes use a new upstream version; same-archive ebuild/installed-file changes increment -rN. Publish alpha48-r1 now, verify project/local-overlay agreement and ordinary Portage upgrade selection, and retain separate human installation under D-181. SPEC-005 and deployment documentation own the procedure.
D-183Upgrade Electron to patched 44.9.1 and deploy rebuilt desktop packages.Explicit human request 2026-10-27, following the confirmed eMudhra certificate-verification audit. SPEC-005 owns desktop runtime/security validation, immutable Windows/Linux/Flatpak publication and D-181 Gentoo verification. Retain existing accounts, policies, authorities and media services; deployment follows D-159. Installation remains a human action.
D-182Keep enabled statistics continuously visible independently of right-sidebar scrolling.Explicit human instruction 2026-10-27. SPEC-005 places statistics outside the independently scrolling people list and preserves enabled visibility in collapsed/narrow/scaled layouts. Measurement, reporting and owner permissions are unchanged.
D-181Keep the local Gentoo overlay current whenever client software is updated.Explicit human instruction 2026-10-27. Every client release verifies the project ebuild/Manifest and /var/db/repos/local-overlay against the latest published compatible Linux archive; publish new archive bytes before updating references and validate a fresh Portage fetch. Server-loaded interface updates may retain a compatible native package, but still verify overlay alignment. Updating the overlay does not merge/install the package. SPEC-005 owns packaging; docs/deployment.md owns the release procedure.
D-172Add a pinned channel comment and conditional service/update notices above chat.Human request 2026-10-27; explicit answers restrict pin/replace/clear to admins and moderators and grant the one pinned message to current and future channel members. SPEC-013 owns pin/history semantics; SPEC-005/008 own client/server responsibilities.
D-173Offer local connection statistics and admin-only aggregate average/minimum/maximum statistics.Human request 2026-10-27. SPEC-021/005/008 own bounded numeric measurement/reporting, presentation and authorization.
D-174Add channel handset join/leave buttons with available hover, solid connected green and red disconnect hover.Human request 2026-10-27; preserve existing channel admission and voice movement authority.
D-175Add opt-in low-friction public mode while retaining required encryption.Explicit human answer 2026-10-27 selects skipped optional security prompts and automatic key handling, with required channel encryption and other users' privacy preserved. Private-context approval and server denial remain authoritative.
D-176Organize User settings with left-hand tabs and pause PTT only while recording a new binding.Human request 2026-10-27 supersedes the settings-wide microphone pause and D-141's no-category-tabs presentation restriction. Focus/lock, moderation and recorder fresh-press rules remain.
D-177Preserve held PTT when a new voice participant joins.Human request 2026-10-27 permits transparent key preparation/distribution instead of requiring release/repress. Preserve authorized encryption, original PTT duration and stops on removal/revocation/moderation.
D-178Support Wine/Proton application audio sources on Linux.Human reports missing Wine/Proton streams while Firefox and output devices work. Retain explicit exact-stream capture and own-call exclusion; SPEC-005 owns native adapter behavior.
D-179Publish a searchable server directory on sloppyvoice.com with automatic verified owner-opt-in listings.Human request and explicit listing-policy answer 2026-10-27. Listing grants no access and does not expose private/unlisted contexts.
D-180Offer client updates from the releases published on sloppyvoice.com's download page.Human request 2026-10-27. Preserve active calls, validate release metadata and offer the correct platform package/update path.
D-171Add QR device linking in both directions using the QR exchange plus explicit approval on an existing device, without a password on the new device.Human request on 2026-10-25 and explicit answer “QR exchange + device approval, without password”. SPEC-011 owns the versioned pairing/key binding and bounded rendezvous; SPEC-005 owns deliberate local scanning and scoped camera access; SPEC-008 owns transactional approval. Retain manual legacy linking, independent device keys, account permissions, history eligibility, existing sessions and explicit voice movement. Technical formats/bounds complete this requested flow; they are not additional human preferences. Validated existing-service deployment follows D-159.
D-170Publish the existing Android APK on the download page, labelled Experimental.Explicit human request on 2026-10-25 after asking to share the APK with a friend. Publish the validated alpha.30-android.2 artifact at a public immutable URL with its own version, size, checksum, installation guidance and emulator-only validation limits. SPEC-005 owns presentation, SPEC-002 the manifest and SPEC-008 download responses. Existing Android behavior and package bytes remain unchanged; website rollout follows D-159.
D-169Proceed with the Cloudflare Realtime SFU trial after native screen-sharing fixes remained unsatisfactory; create an isolated trial application.Human request on 2026-10-25, followed by explicit confirmation to create sloppy-voice-sfu-trial, backend-only App Secret storage and the ten-run generated-media envelope; the human subsequently approved up to five further runs on 2026-10-25, with unchanged per-run constraints. The first usable trial includes all channels on sloppyvoice.com, preserving channel sharing permissions; other servers retain native delivery. SPEC-025 implements the bounded trial and compatibility gates under SPEC-024; this does not waive private E2EE. Routine validated deployment remains under D-159.
D-168Stabilize native video adaptation with delayed quality recovery, failed-increase rollback and a more conservative sustained operating rate.Human request on 2026-10-25 reports Firefox held-frame stalls and frequent adaptation changes. SPEC-024 revision 1.1 replaces five-second recovery with successful-progress hysteresis and bounded retry backoff. Engineering windows complete D-134; native permissions, selected ceilings and future SFU scope remain unchanged. Validated deployment follows D-159.
D-167Approve the video requirements audit VDR-01–VDR-10, amend specifications and update the client before SFU evaluation.Explicit human instruction on 2026-10-25: implement all review recommendations in the specifications, then update the client before trying SFU. SPEC-024 owns scoped supersession, independent presentation timing, managed enforcement/rate/placement semantics and the pre-SFU client increment. Existing native relay and microphone guarantees remain applicable to their adapter; managed RTP/SFU is specified but not enabled by this increment. Preserve required E2EE, sender authenticity, capture consent, access, mute and listener controls. Deployment of validated in-scope work follows D-159.
D-166Adapt video workload under congestion and retain the last good picture during ordinary frame drops; remove mandatory preview before sharing.Explicit human requests on 2026-10-24. Reduce video resolution, cadence and bitrate within selected ceilings, with bounded receiver feedback and gradual recovery. A frozen authorized picture stays visible with an explicit status; source end, permission loss and Stop watching still clear it. Start sharing acquires the explicitly selected source directly; no separate preview confirmation. All-screen selection remains explicit and cancellation never publishes. SPEC-023 supersedes the old 250 ms canvas-blanking rule; engineering constants follow D-134 and deployment D-159.
D-165Preserve native source resolution up to 4K in Quality mode and offer common resolution/frame-rate ceilings.Explicit human answers on 2026-10-24: Quality up to 4K, Speed lower, followed by a request for common resolution and frame-rate choices. Automatic retains content-based frame rates and the lower Speed profile; per-share choices allow 720p/1080p/1440p/4K and 15/30/60 fps without upscaling, bypassing bitrate limits or changing capture consent. SPEC-023 owns these client preferences; D-159 authorizes validated deployment.
D-164Offer explicit Linux output-device sound capture alongside application selection.Human request on 2026-10-24 to share all output or a particular output device when the application list omits the desired source. SPEC-023/005 retain application mode by default, add a fixed selection of up to eight output devices and an all-listed shortcut, disclose inclusion of call audio, and preserve capture consent, leases and bounded mixing. This explicitly permits broader capture only in output mode; no automatic fallback or routing change.
D-163Build an iOS client based on the Android design, using Codemagic and TestFlight; background calls are required in the first build.Explicit human iOS request and selection of option 1 on 2026-10-24, followed by explicit background-call confirmation. Primary physical target: iPhone 13 mini, user-reported iOS 27.0.1. Additional compatibility target: iPhone XS on iOS 18.x, exact version not yet supplied. The human initially requested account signup instructions. On 2026-10-25 the connected Codemagic account, explicit Apple bundle identifier and Sloppy Voice App Store Connect record are observed; the human authorizes the distribution certificate and TestFlight delivery, and signed version 0.1.0 (3) uploads successfully from 0d91bb0. Apple processing/compliance and Owner testing assignment are complete, with the owner invited; installation and physical acceptance remain pending in the implementation review. SPEC-005 owns client requirements and unresolved implementation/configuration choices. The decision selects delivery and background requirements; implementation, signing and physical validation are tracked separately. Public App Store publication is not selected.
D-162Show outgoing chat immediately with explicit delivery state and remove avoidable history-display latency.Human request on 2026-10-24 to see their message immediately instead of wondering whether it worked. Local echoes are transient and scoped to the originating account/channel; server acknowledgement establishes Sent, not recipient reading. Preserve failed drafts and original-ticket reconciliation for unknown outcomes, deduplicate against authenticated history, and display history before unrelated visitor home-profile requests. Deployment follows D-159.
D-161Focus Android on channel chat, expand other controls from a three-dot button, and retain the user/config bar at the bottom with Hold to talk only while connected.Explicit human request and follow-up on 2026-10-24. Server/channel navigation, voice status/actions and people expand from the three-dot control. The account bar and config icon remain visible; the microphone control is embedded there only for an active local connection. Preserve voice activation policy and background calls under D-152. This changes Android presentation, not server or desktop behavior.
D-160Refer to the website platform as Linux and publish a Flatpak version.Explicit human request on 2026-10-24. Replace KDE/Wayland product labelling with Linux while retaining precise technical requirements in installation documentation. Publish a verified x86_64 Flatpak bundle on the existing download site, preserving archive/Windows downloads. The human’s subsequent ordering refinement places Flatpak above the x64 archive in the Linux card. SPEC-005 records the packaging/security/profile scope; SPEC-002 owns the required manifest and SPEC-008 exact download routing. This does not imply a Flathub listing or universal desktop/hardware acceptance.
D-159Deploy the chat/voice fixes and remove repeated human predeployment approval during cyclic testing.Explicit human instruction on 2026-10-24: “Let’s deploy” and no further deployment approvals during cyclic testing. Standing authorization covers validated fixes and sufficiently specified requested changes on the existing testing services until the human ends or revokes it. Supersedes separate deployment-approval gates, including the pending deployment language in D-156/D-157. Automated engineering checks, specification consistency and Cloudflare rollout monitoring remain; this does not select unrelated open product decisions.
D-158Disclose the local encryption-key storage requirement where the website offers joining from a browser.Explicit human correction on 2026-10-24. Add the notice to the homepage and download-page browser sections, describing the existing SPEC-003 browser key vault without changing storage behavior. Publish the correction within the ongoing website work.
D-157Improve message-send responsiveness and focus, and add parenthesized elapsed time to visible message timestamps.Explicit human reports and timestamp request on 2026-10-24. Preserve drafts, recipient trust, encryption, duplicate-safe commands and existing timestamp grouping. Technical correction completes acknowledged sends before history refresh, retains editor focus, and permits one definitive revision-conflict retry only with unchanged audience/context. SPEC-005 and SPEC-013 own client behavior; D-159 subsequently authorizes deployment and removes separate per-release approval during cyclic testing.
D-156Increase the shared home-device approval freshness window from one second to ten seconds.Explicit human request on 2026-10-24 following the posting-status investigation. Applies to the shared directory bound, with the longer cached-revocation window acknowledged in the preceding explanation. Retain request-start accounting, expiry rejection and separate voice/transport limits. SPEC-015 owns the updated bound; D-159 subsequently authorizes deployment and removes separate per-release approval during cyclic testing.
D-154Publish the reviewed Editorial website with the public-server alternative to self-hosting, encryption/access choices, invitations, route-aware bandwidth and equal desktop downloads.Explicit human request on 2026-10-24 to update the website with the review as it stands and test in production. Selects the Editorial preview, including the subsequent clarification that public servers avoid hosting complexity. Publish only the website; retain live D-153 public admission, application/media versions and immutable desktop packages. Do not advertise unavailable platforms, webcam support or unrestricted direct routing. Monitor website allocation, observed traffic and live routes under the existing rollout procedure.
D-155Build the portable Windows client and publish it on the download page.Explicit human requests on 2026-10-24. Use the existing D-050 portable x64 ZIP format, with extraction/launch instructions and manifest-backed verification. Preserve normal Windows profile storage and existing installer/Linux downloads. Authorizes the portable website/download addition. Coordinate overlapping website publication without changing unrelated Android or application behavior.
D-153Open sloppyvoice.com to public visitor joins and invitation-free local account registration.Explicit human request on 2026-10-24 to make the server match the public-server website description and accept a larger user pool. Set the existing publicVisitors and localRegistration owner policies to true on sloppyvoice.com only. Preserve channel permissions/encryption, bans, existing identities, resource limits and other servers. This authorizes a live policy change, not a new application deployment or a change to independent-server defaults. Application and verification status are recorded in the admission review.
D-152Build an Android client and provide emulator installation guidance; calls must continue in the background in the first build.Explicit human request and follow-up “Background calls required in the first build” on 2026-10-24. SPEC-005 owns the Android implementation profile and validation gates. Preserve existing identity, room policy and explicit microphone activation. Android background calling refines the browser focus/OS-lock boundary only as described there; this is not approval of automatic answering or automatic rejoining.
D-151Present available desktop downloads side-by-side, accommodate future desktop/store entries without advertising unavailable apps, and centre homepage messaging on self-hosting and federated accounts.Human website request on 2026-10-24. Windows and Linux are visible now; macOS, iOS and Android remain absent until available. SPEC-005 owns responsive presentation and accurate federation/hosting copy. Exact wording is an editorial draft for review; no new platform support, admission policy or production deployment is selected.
D-150Deploy the larger channel title and Lobbyster easter egg as alpha.29.Explicit human request “Let’s deploy it” on 2026-10-23 follows validated D-149 implementation. Publish matching source/specifications, both shared control/client services and public release notes. Preserve authorities, data, secrets, admission/login policy, EU placement, media services and immutable compatible alpha.27 packages. Verify live assets and existing objects, and distinguish configured allocation from bounded observed traffic.
D-149Enlarge the current channel heading and place a cartoon lobster behind the word Lobbyster when present.Explicit human request on 2026-10-23. SPEC-005 owns the presentation-only refinement: a larger readable heading, case-insensitive whole-word decoration, unchanged channel text and accessible name, and a static decorative lobster excluded from assistive technology. No server or saved-setting change; publication remains separate.
D-148Deploy Pinned and private-activity indicators as alpha.28.Explicit human request “Let’s deploy” on 2026-10-23 follows validated D-147 implementation. Publish matching source/specifications, both shared control/client services and public release notes. Retain existing authorities, data, secrets, admission/login policy, EU placement, media services and compatible immutable alpha.27 desktop packages. Verify live assets, persistent objects and Cloudflare allocation separately from bounded observed traffic.
D-147Rename Friends to Pinned, use thumbtacks with clearly distinct active/inactive colours, and highlight phone/message icons only for private communication.Explicit human request on 2026-10-23 delegates colour selection and requests active call/current-message indicators; the follow-up excludes people merely sharing an ordinary channel. SPEC-005 owns the client presentation: amber filled pins, muted outline inactive controls, green connected private-call participants and lavender for the displayed one-to-one transcript. Preserve the account-wide contacts data, consent, actions and local Recent behavior. No server, protocol or persisted preference change; deployment remains separate.
D-146Deploy Linux game/music sharing as alpha.27, with matching native packages and shared client assets.Explicit human request “Let’s deploy it” on 2026-10-23 follows the D-144/D-145 local implementation and disclosed physical acceptance gap. Publish matching source/specifications, desktop downloads and Gentoo package; preserve existing authorities, admission settings, data, secrets and media services. Verify live behavior, persistent-object propagation and Cloudflare rollout under the standing monitoring requirement.
D-145Share sound from multiple selected applications together, including a game and a separate music player.Explicit human request on 2026-10-23 during D-144 implementation. Extend the sound picker to multiple explicit selections; mix the selected streams into the existing presentation-audio role and retain call-audio exclusion, PTT independence, listener controls and capture lifecycle. The bounded eight-stream adapter and documented mixing mechanics are technical completion under D-134, not an automatic whole-system capture default.
D-144Implement Linux presentation sound using a bounded Electron loopback evaluation, then native PipeWire application capture if app-audio exclusion is unavailable.Human request “Let’s do it” on 2026-10-23 accepts the recommended implementation. Preserve explicit source consent, accurate scope, microphone-only PTT, optional sound initially on, listener ducking, synchronization and stop/revocation behavior. The runtime evaluation and upstream Linux implementation do not provide own-audio exclusion, so select the native application-stream adapter under D-134’s technical delegation. No production deployment or system permission change is requested.
D-143Deploy the approved settings and sidebar presentation as alpha.26.Explicit human request “Let’s deploy” on 2026-10-23. Publish D-141/D-142 on both existing control/client services and the website. Retain schema 9, identities, stored data, secrets, admission/login policy, EU placement, media services and compatible immutable alpha.25 desktop packages. Preserve enabled visitor joins on shittyshittybangbang.com. Verify exact assets and existing objects, then distinguish configured allocation from bounded observed traffic.
D-142Extend the approved settings preview's visual treatment to the left and right sidebars.Explicit human request on 2026-10-23 after approving the previews. Use consistent rounded section boundaries, restrained heading colour and readable spacing for server/channel navigation, people lists and persistent controls. Supersede D-066's separator-only treatment for these sidebar groups while retaining compact rows, qualified identities, selection/unread/access/voice semantics, existing actions, keyboard behavior, width preferences and responsive breakpoints.
D-141Make User settings sections easier to distinguish with solid heading boxes, softer matching settings panels and significantly rounded corners; prioritize clarity over the preferred lavender accent.Explicit human requests on 2026-10-23. The linked Juxtopposed VLC redesign is visual inspiration for hierarchy, spacing and restrained colour. This narrowly supersedes D-066's separator-only/no-card treatment within User settings. Keep existing setting behavior, order, one scrollable main workspace, system-selected appearance and accessibility. Broader navigation changes or a whole-application redesign are not selected by this visual increment.
D-140Deploy the validated screen-preview, attendance and channel-maintenance update as alpha.25.Explicit human request “Let’s deploy” on 2026-10-23. Publish both existing control/client services, matching Windows/Linux packages and website; retain schema 9, identities, stored data, admission settings, secrets and EU placement. Preserve enabled public visitor joins on shittyshittybangbang.com. Verify existing-object behavior, immutable downloads, configured allocation and bounded observed traffic; native fixes require installing the new wrapper.
D-139Replace the channel tree's “Voice here” text with a small phone handset icon.Explicit human request on 2026-10-23; preserve a tooltip and accessible meaning. No voice behaviour changes.
D-138Repair channel-link copying, show public channel links in settings, and support owner-confirmed recursive channel deletion including the Lobby.Explicit human requests and answers on 2026-10-23. Delete the selected channel and its complete subchannel tree, history and membership data after explaining the consequences and receiving confirmation. Only the server owner may delete. If a saved/default channel is unavailable, select the first accessible ordinary channel alphabetically; no automatic voice join. SPEC-012 and SPEC-015 define the contracts.
D-137Triple live voice attendance expiry from five to fifteen seconds.Explicit human request on 2026-10-23 after reviewing a delayed-renewal disconnect. Increase the fixed attendance/reservation lifetime in SPEC-006 and LIMITS.attendanceMs; keep media authorization, revocation, explicit departure and shared-generation deadlines unchanged. Applies to hosted attendance and the existing home-server reservation that shares this lifetime. Implementation is requested; this does not add automatic rejoin or select a new deployment.
D-136Make screen-sharing failures prominent and correct the denied preview path.Human request on 2026-10-22 after seeing “Permission denied” from Preview selected source: show a reddish error box across the dialog width and make capture work. SPEC-005 owns the alert and capability guidance. Restore R-119's explicit source/preview flow without weakening OS permission or source consent. An old installed wrapper must receive an actionable update requirement instead of attempting an unsupported capture request.
D-135Deploy the implemented screen-sharing increment as alpha.24.Explicit human request “Let's deploy” on 2026-10-22 after the implementation report disclosed platform/audio and capacity-validation gaps. Publish both existing control/client and media services, matching desktop packages and public release notes; preserve existing identities, storage, secrets and EU placement. Validate the changed Container image and live behavior, monitor configured allocation and bounded observed traffic separately, and retain the reported gaps. During rollout the human confirmed enabling public visitor joins on shittyshittybangbang.com and explicitly requested leaving them enabled; preserve that current policy.
D-134Approve the remaining SPEC-023 completion proposal and delegate technical completion to implementation/testing, with game-audio capture initially enabled.Explicit answer on 2026-10-22: “Approved except I would like game-audio capture to start on.” Selects P-035's reviewed infrastructure/aggregate and presenter/source limits, call-policy scope and audio/synchronization completion. Technical codec, packet, clock and queue details are delegated subject to documenting and validating them against existing voice/security requirements. The popup's optional game-audio toggle starts on; capture still requires explicit Start sharing and platform source/audio consent. Supersedes the proposed off default. No deployment is requested.
D-133Start clients at a 4 Mbps presentation limit, adapting downward with room for optional game audio and transport overhead; enable sharing on servers with channels inheriting.Explicit answers on 2026-10-22 select both recommendations. Capture still requires the presenter's explicit action. Together with D-132 this separates the 4 Mbps initial client budget from the 8 Mbps normal server relay ceiling. Other unselected completion details keep their stated status.
D-132Use 8 Mbps as the normal server relay limit; start the client below that limit.Explicit human clarification on 2026-10-22: “8Mbps is a good limit,” with a lower client default of perhaps 2 or 4 Mbps and a request for advice about 720p gaming. D-133 subsequently selects 4 Mbps and enabled/inherited sharing. Exact rate accounting and infrastructure/aggregate ceilings are not resolved by these answers.
D-131Proceed with encoded video beside the existing voice transport.Explicit human selection on 2026-10-22. Selects the second approach in SPEC-023/P-035 and authorizes its bounded feasibility work and technical completion while retaining the accepted voice/security contract. It does not approve every nearby proposed default. D-132 subsequently confirms the normal server relay rate while requesting advice on a lower client default.
D-130Present All screens as one combined desktop; PTT controls only microphone voice; duck shared game sound to half volume during held PTT or another user's speech, configurable by the listener.Explicit human answers on 2026-10-22 select one combined desktop view and microphone-only PTT, then add receiver/listener-configurable half-volume game sound during PTT/speech. SPEC-023 records the confirmed outcome separately from proposed trigger details, gain representation, ramps and preference persistence.
D-129Permit a server-admin channel-specific relay-rate exception below an infrastructure ceiling; include microphone plus optional application/system audio; prioritize responsive voice when video cannot stay synchronized.Explicit answers to the three screen-sharing review questions on 2026-10-22. Resolves these behavioral choices in SPEC-023. Numeric rates/sync bounds, transport and platform mechanisms remain proposed or open; no deployment is requested.
D-128Starting from alpha.23, add channel and direct/ad hoc screen sharing with channel allow/deny and bitrate controls, a source/content/quality/bitrate popup, and video synchronized with the presenter’s audio.Explicit human request on 2026-10-22. Relayed traffic obeys host limits; channel limits above the normal server rate require server administration. P2P treats server/channel rates as defaults the presenter can exceed for their priorities. R-117–R-120 and SPEC-023 record the request; this does not select every proposed completion detail or claim implementation.
D-127Deploy immediate channel identity switching as alpha.23.Human request “Let's deploy it” on 2026-10-22 after validated D-126. Publish matching client/control services, website, source and specifications; retain schema 9, identities, policies, media and desktop packages, and monitor allocation, observed traffic and existing-object propagation.
D-126Selecting a channel-menu username immediately opens that channel and switches an existing voice connection there to the selected identity.Human request on 2026-10-22 to join immediately in the current modes, followed by “Only switch voice when already in this channel.” Supersedes D-118’s selection-only dropdown. Voice elsewhere stays intact; authentication/access failures preserve the prior usable context, and a voice identity change requires fresh input. Local implementation is requested; deployment remains separate.
D-125All new channels inherit permissions by default; preserve existing access during migration; deploy the completed update.Human request “Let's deploy” on 2026-10-22 followed by explicit selection “Make all new channels inherit; preserve existing access.” Resolves D-124/SPEC-022 defaults: public and private channels inherit by default at every depth, with an editable override. Schema 9 preserves existing effective channel access using independent explicit entries and eligible ordinary-member grants. Deploy only after implementation and release validation, preserving the existing authorities, storage and media; monitor configured allocation, observed traffic and existing-object behavior.
D-124Build the channel permission and targeted invitation update.Explicit human instruction “Let's build it” on 2026-10-22 after D-122/D-123 and the reviewed uniform permission model. SPEC-022 owns the implementation contract. The requested build does not silently select the previously unresolved ordinary-channel inheritance defaults or existing-channel migration policy; those choices have been presented to the human. Deployment remains separate.
D-123Use identical channel features and restrictions at every nesting level; an applicable denial wins over a permit.Explicit human clarification on 2026-10-22 that subchannels behave exactly as channels, followed by selection “Denial wins; break inheritance for an exception.” Breaking inheritance removes inherited permission entries, while server bans remain mandatory. The permission review records this accepted scope separately from proposed propagation/default/migration details. No special subchannel permission model or deployment is authorized.
D-122Include restricted server admission in an invitation to a specific channel.Explicit human request on 2026-10-22 while inviting saxon@shittyshittybangbang.com to The lobbyster on sloppyvoice.com: the invitation permits joining the server and that channel, without granting visibility or admission to other channels. This is a requested, unimplemented extension to SPEC-015's ordinary visitor membership. The review records the confirmed scope, proposed completion details and unresolved interaction with required parent access. No deployment or parent-access exception is approved by this entry.
D-121Deploy the compact server identity refinement as alpha.21.Explicit human request “Let's deploy it” on 2026-10-22 following validated D-120. Publish both existing control/client services and matching public release notes, retain identities/storage/media/desktop packages, and verify configured allocation, bounded observed traffic and existing-object propagation.
D-120Compact the server identity display and retain menu-based account switching.Explicit human request on 2026-10-22: remove the separate account selector beneath each server and replace the dim repeated server domain with the signed-in username. Show the qualified account as subdued text beneath the server name; retain Sign in as another user in the server context menu and the existing channel Join as flow. Supersedes only D-117/D-118’s separate account button.
D-119Deploy the validated Quiet identity update as alpha.20.Explicit human request “Let's deploy it” on 2026-10-22. Publish both existing control/client services and matching public release notes, preserve identities/storage/media/compatible desktop packages, and verify configured allocation, bounded observed traffic and existing-object propagation.
D-118Implement the selected Quiet identity workflow.Explicit human instruction “Okay, let's do it” on 2026-10-22 following D-117 and its reviewed flow. SPEC-005 completes protected selection, account history, failure and account-wide surface behavior; existing authentication/admission and voice authority remain. Deployment is separate.
D-117Select Quiet identity for switching accounts on a server and choosing an account from a channel menu.Explicit human choice “Let's go with Quiet identity” on 2026-10-22 after reviewing five interactive alternatives. Select one server heading with a compact account selector beneath it, a server-menu Sign in as another user action, a chooser with previously used qualified identities, and a channel Join as dropdown. The design review distinguishes the selected presentation, existing authority/voice requirements, and remaining implementation details. This records the design selection; no application implementation or deployment is claimed.
D-116Deploy the validated public join-link update as alpha.19.Explicit human request on 2026-10-21. Update both existing control/client services and matching public release notes; retain identity, storage, media and compatible desktop packages. Verify configured allocation, observed traffic and existing-object propagation.
D-115Public server/channel links with permission-checked text opening and retained denied roots.Explicit human request and follow-up on 2026-10-21: voice joins separately. SPEC-015 defines technical locator and persistence contracts; links never grant access.
D-114Deploy the validated D-112/D-113 microphone controls as alpha.18.Explicit human request on 2026-10-21. Publish both existing control/client instances and matching public release notes, preserve authorities/media/compatible desktop packages, and monitor allocation, sampled traffic and existing-object propagation.
D-113Replace Re-enable PTT with a disabled-PTT notice and an independent on-screen Click to talk fallback.Explicit human request on 2026-10-21; follow-up selects holding the button while speaking, not a toggle. The held on-screen input works without a usable shortcut, respects call/settings/mute/authority gates, stops on release or focus loss, and does not re-enable the configured shortcut. Mode selection stays in user settings. Supersedes only D-112’s retained PTT retry action.
D-112Keep microphone mode selection within user settings’ PTT configuration regardless of call state; hide ineffective microphone-bar recovery actions.Explicit human bug report and request on 2026-10-21: Re-enable PTT does nothing while disconnected with settings open. Retain the existing mode checkbox and precedence, group it with binding configuration, and restrict recovery to active local calls with settings closed. No new mode or persistence policy.
D-111Deploy the validated D-110 sidebar implementation as alpha.17.Explicit human request on 2026-10-21. Update both existing control/client instances and matching public release notes; preserve independent authorities, storage, media and compatible desktop packages. Monitor configured allocation, sampled traffic and persistent-object propagation under the deployment procedure.
D-110Independently expand multiple server trees; make server/channel containment visually explicit; automatically fit and manually resize both sidebars within responsive space limits.Explicit human request on 2026-10-21; follow-up confirms manual widths persist per device and can reset to automatic. Narrow windows constrain displayed widths without overwriting the saved preference. Expansion does not select a conversation, admit a user or move voice. SPEC-005 owns the presentation and preference contract; SPEC-015 authority boundaries remain.
D-109Deploy alpha.16 on shittyshittybangbang.com in the existing Cloudflare account.Explicit human request on 2026-10-21. This selects the second identity domain anticipated by D-057/Q-49. Apply SPEC-010/015's independent-instance contract with separate storage, server identity and application secrets; retain the existing @sloppyvoice.com authority. Deployment configuration uses the root HTTPS endpoint and a separate media hostname, with the existing closed admission defaults.
D-108Implement and deploy the selected Quiet Stack.Explicit human request “Please implement and deploy” on 2026-10-21. R-112 and SPEC-005 refine the selected presentation while preserving existing voice authority, input, call movement and recovery behavior; A-45 covers the real controls. Publish the validated shared client and release notes with Cloudflare rollout verification.
D-107Select the Quiet Stack design for compact bottom-left connection, microphone and identity bars.The human requested sketches for discussion, then explicitly chose “The Quiet Stack example is definitely the best” on 2026-10-21. Select the three separate stacked bars, soft connection-state colours, actual-transmission microphone highlight, expandable connection details and preserved disconnect notice. This records the design choice; implementation and deployment are not part of this selection turn. The design review records scope and implementation considerations.
D-106Deploy the validated server-tree, unread-message and optional-PTT update as alpha.15.Explicit human request “Please deploy this” on 2026-10-21 after implementation and validation of D-104/D-105. Publish matching control/client and public release notes, preserve compatible desktop packages and unchanged media, and verify Cloudflare allocation, bounded observed traffic and the existing Durable Object.
D-104Put servers in the navigation tree, add a visible Add server action, support server/channel Create channel menus and eight nested channel levels; move Messages to the self area and indicate unread DMs beside people.Explicit human request on 2026-10-21. The human delegates the depth-count convention; count channels beneath the server, with the first channel at depth one. Remove only the top-bar Channel members action; existing contextual member management remains available. The follow-up selects parent access required by default, with an explicit channel override allowing organizational-only nesting (Q-60).
D-105Make PTT mandatory or optional at server/channel scope, with explicit channel override; a user's enabled PTT preference always requires PTT.Explicit human request and follow-up on 2026-10-21: administrators may require PTT but cannot remove a user's ability to use it. Replaces the earlier proposed ancestor-restriction rule for this setting. The follow-up selects voice activation where PTT is optional and the user disables personal PTT (Q-61); personal PTT remains enabled by default.
D-103Build and deploy the signed login-token successor to D-102, including configuration, expiry warnings and seamless early reauthentication.Explicit human instruction “Let's build and deploy!” on 2026-10-21 following the signed-token recommendation. Selects P-034 with current server-side revocation/permission checks and the reviewed bounded handover. The login-session implementation profile completes wire, persistence, compatibility and key-management details within that scope.
D-102Make local account login expiry an owner-controlled server policy, default 30 days, with an unlimited option and subtle advance warning/early sign-in action.Explicit human request on 2026-10-21. Follow-up preserves every existing expiry date and applies policy changes only at successful sign-in or renewal; duration is absolute from that event, not inactivity. Warning starts in the final 24 hours, capped at the final 10% of a shorter session. Early sign-in verifies the password while preserving workspace and voice; unlimited sessions have no expiry warning. The human subsequently requested comparison of token/expiry approaches. D-103 subsequently selects the reviewed signed-token renewal design.
D-101Deploy the validated UI scaling, smaller profile pictures and functional-surface update as alpha.13.Explicit human request “Please deploy it” on 2026-10-21 after the D-100 implementation and validation report. Update shared control/client and public release notes, preserve compatible desktop packages and unchanged media, and verify Cloudflare allocation, observed traffic and live Durable Object/client behaviour.
D-100Reduce profile-picture display to roughly three quarters, add whole-interface scaling in user settings, and distinguish bottom voice status and message entry with subtle colours.Explicit human request on 2026-10-21; follow-up selects device-local scale with the proposed 75–200% range and 100% default. Engineering completion uses 56 CSS pixels (a multiple of eight) for pictures, five-percentage-point scale steps, and application light/dark status/composer colours. Supersedes only D-096’s 72-pixel display target and the unselected text-only scaling proposal; stored picture resolution and system-selected appearance remain. SPEC-005/019 own the completed contracts.
D-099Add bounded client/server voice troubleshooting logs and deploy the approved feature update.Explicit human request on 2026-10-21. Production is a testing environment and continued testing is authorised. SPEC-021 records the limited implementation: local exportable client events and operator server logs, with no automatic client upload or content/credential logging.
D-098Make unexpected voice disconnections clearly visible with the available failure reason.Human report on 2026-10-21: a friend/tester commonly drops without a visible error, and sometimes both clients drop. Add persistent in-app notification and explicit reconnect guidance; preserve existing no-automatic-rejoin and forwarding deadlines. This report does not establish that tests or host resource contention caused the disconnections.
D-097Add configurable voice attendance and local PTT audio cues to profile settings.Explicit request and follow-up approval on 2026-10-21: four enabled-by-default switches, one shared volume control, synchronized across devices. Attendance cues follow others joining/leaving the active voice channel, suppress initial roster/reconnection; PTT cues reflect the local actual transmit gate. SPEC-020 completes the bounded sound and persistence contract.
D-095Use a 300-second server PTT default with optional channel overrides.Explicit request on 2026-10-21 and follow-up selection: migrate existing 60-second channels to inherit the server default and preserve other stored limits. Retain the existing integer 10–300 second range. Unset channel limits inherit; an explicit channel limit wins.
D-096Add server-stored profile pictures with upload, crop, preview and removal, displayed as circles.Explicit request and selected upload/crop/preview workflow on 2026-10-21; subsequent circle refinement. Target approximately 72 pixels beside right-sidebar people, with a larger source for sharp rendering. Existing qualified identities remain visible.
D-094Label channel access and refine right-sidebar people layout.Explicit human request on 2026-10-21: rounded green Private and red Public labels with softer fills; omit saved friends from Recent while retaining them in Server Members; place action icons below the username and last-seen channel context below the icons. Use authoritative channel access independently of encryption. Recent filtering is presentation only and preserves existing retention/clear behavior.
D-093Deploy the validated compact people actions and connected-call participant picker.Explicit human instruction “Alrigiht, let’s deploy them” on 2026-10-20 following the D-092 implementation and validation report. Publish the shared alpha.11 client/control update and matching release notes, retain existing immutable desktop packages, and verify live behavior, configured allocation and observed Cloudflare traffic.
D-092Simplify right-sidebar people actions and expose adding people in an established call.Explicit human refinement on 2026-10-20 after alpha.11: use a telephone-handset icon for Call, add an adjacent text-message bubble icon, remove sidebar Group and Channel buttons, and replace Add/remove glyphs with a red saved-friend heart or grey unsaved heart. Move the conversation Add people action into connected call controls. Existing contact acceptance, explicit invitations/movement and private-transcript boundaries remain.
D-091Deploy the validated alpha.11 direct-conversation release.Explicit human instruction “Let’s deploy it” on 2026-10-20 after the D-090 implementation and validation report. Publish matching client/control and desktop downloads, preserve existing identities and immutable releases, and verify Cloudflare allocation, observed traffic and live Durable Object behavior under the standing rollout instruction.
D-090Approve the reviewed direct-conversation design and implement it.Explicit human instruction “Approved, please implement” on 2026-10-20, following D-088 retention and D-089 contact acceptance. Selects P-031/P-032 and the remaining P-033 lifecycle design. SPEC-018 completes engineering wire, bounds and migration details under this implementation authority; no new production deployment is requested.
D-089Require acceptance of first contact before ordinary direct messages or ringing are permitted.Explicit human answer “Yes” on 2026-10-20 to “should first contact require acceptance before ordinary messages and ringing?” Resolves Q-59 and selects P-033's request gate. Friends remains a one-way saved-contact list; neither saving a person nor sharing a server bypasses acceptance. This answer selects the contact policy, not blanket approval of the other proposed hosting, lifecycle, blocking or protocol details in SPEC-018.
D-088End temporary group voice while retaining group text in configurable history, defaulting to four hours and capped at one year.Explicit answer on 2026-10-20: “Temporary voice ends, but its group text remains in a configurable history that cannot exceed 1 year and defaults to 4 hours.” Resolves Q-58 and rejects deletion of text at group closure. Applies to the new temporary-group type, not existing channel/DM retention. SPEC-018 records the proposed writer, elapsed-time, expiry and history/recovery completion details; these details are not individually human-selected.
D-087Add direct text messaging and one-to-one call entry points from Friends and Recent, add Server Members to the right sidebar, and provide an easy way to add people to ad hoc non-persistent channels.Explicit human request on 2026-10-20 after alpha.10. R-013–R-015 already require encrypted direct communication locally and across domains. R-093–R-095 record the new workflow. SPEC-018/P-031–P-033 review directory privacy, first-contact consent, temporary lifecycle and hosting before implementation; this request does not implicitly approve every proposed policy.
D-086Approve the reviewed private encrypted P2P routing, peer-address exposure, conforming-receiver moderation with relay-only preference, and temporary signed sender keys; build and deploy the successor release.Explicit human response on 2026-10-20: “Yes, this matches what I want so I approve it. Please build a version based on this and deploy it.” Selects P-029/P-030 and resolves Q-56/Q-57. SPEC-017 completes the bounded wire/configuration profile while preserving the reviewed scope.
D-085Request best-effort peer-to-peer encrypted voice, keep public channels relayed, and send one copy of each voice frame from a client to the relay; assess a reasonable E2EE fan-out design.Explicit human request on 2026-10-20 continuing alpha.9. The route and encryption review records the proposed implementation. This approves the requested outcome, not an implicit relaxation of D-009 relay-enforced moderation or selection of a sender-key protocol. D-086 subsequently selects P-029/P-030 and resolves Q-56/Q-57.
D-084Implement Opus with loss recovery, bounded adaptive buffering and local connection diagnostics; keep the current EU relay and defer nearer placement/Cloudflare Realtime SFU. Start buffering near 60 ms and permit up to 200 ms of residence.Explicit request on 2026-10-20 to proceed with recommendations #1, #2 and #3 and hold #4, followed by “Allow up to 200 ms for smoother audio”. The numbered recommendations refer to the preceding chat answer, not the investigation note's differently numbered list. SPEC-004/005/008/009 define the reviewed implementation, retaining PTT, ephemeral encryption and admission controls. Numeric codec engineering selections follow the existing D-024 delegation; 200 ms is the human-selected latency limit.
D-083Deploy the validated five-minute voice-key update to the live control service and shared client assets.Explicit response “Consider this approved” on 2026-10-20 to the deployment request for commit 686085b, after the possible refresh/rejoin requirement was stated. Text history, recovery and admission settings remain unchanged. No relay or installer replacement is included.
D-082Use fresh E2EE voice keys on membership changes and renew at least every five minutes; retain a previous key for at most two seconds for delayed packets and pause audio if renewal fails.Explicit answer “Use five-minute voice keys” on 2026-10-20 to the complete lifetime/overlap/failure proposal. Text history and recovery remain unchanged during protocol evaluation. SPEC-016 records the implementation profile.
D-081Separate device identity, communication-key rotation and history retention; implement temporary voice keys first and evaluate a standard ratcheting text protocol, preserving the current readable-history and recovery experience.Explicit response “I like your recommendations, let's proceed with them” on 2026-10-20. Approves the recommended direction; does not approve arbitrary text-key destruction, recovery-code expiry or an unreviewed MLS library. SPEC-016 distinguishes selected voice rules from proposed text integration.
D-080Show Shared history, Reply and Join voice only while hovering the message body, and align them with the indented body rather than the sender identity.Explicit human request on 2026-10-19. SPEC-013 applies this presentation to messages and inline replies, retaining keyboard/touch access and stable layout under the existing accessibility requirements.
D-079Deploy the validated alpha.9 relay, control service and website with multi-server runtime support, retaining closed visitor and local-account admission controls.Explicit answer “Approve the alpha.9 production deployment” on 2026-10-19 after the cutover and possible call-rejoin requirement were described. Preserves current accounts, identity domain and EU placement; no public admission or domain migration is authorized.
D-078Pause new E2EE posts in affected channels while a member's home service cannot confirm current device approval.Explicit answer on 2026-10-19. Existing readable history remains available; other members can continue in server-readable channels. Never silently use stale device approvals or downgrade channel encryption.
D-077Disabling public visitor joins preserves existing admitted visitor memberships and prevents new public joins.Explicit answer on 2026-10-19: “Keep existing members; block new joins.” Removal and bans remain separate operations; closing public admission does not erase history intervals or eject existing visitors.
D-076Include foreign E2EE channels in the first multi-server release; keep public visitor admission and local registration as independent controls, with local registration closed by default.Explicit answers on 2026-10-19. Rejects the narrower server-readable-only initial scope. Existing home-account/device verification, history eligibility and one-active-call rules remain required. SPEC-015 owns the federation completion profile.
D-075Indent chat message contents slightly beneath a subdued, regular-weight sender identity.Explicit human request on 2026-10-19. The follow-up explicitly removes bold sender names in chat so contents dominate. SPEC-013 applies muted regular-weight bylines and the same modest indentation to grouped messages and inline replies, preserving author/time grouping.
D-074Allow channel renaming from channel settings.Explicit human request on 2026-10-19. SPEC-012 extends the existing permission-checked settings command; the durable room ID, history, access and encryption remain unchanged.
D-073Restore a subdued green PTT bar while transmitting.Explicit human request on 2026-10-19. SPEC-005 retains the text/microphone indicators and forced-colour precedence; this changes presentation, not the PTT gate.
D-070Place workspace Back controls at the top-left, including user settings.Explicit human request on 2026-10-19. SPEC-005 refines D-065's workspace header placement; navigation and focus behaviour remain.
D-071Restore a right sidebar with personal saved contacts under Friends and recent people below.Explicit human request and answer “Personal saved contacts; recent people” on 2026-10-19. Replaces the absence of a right sidebar, not the removal of a duplicate channel-member list. No mutual friend-request workflow is required. The human subsequently selected account-wide Friends and client-local Recent. SPEC-014 completes the data/UI contract under D-024/D-049.
D-072Add multiple server connections through the top-left server menu, foreign-home-account joins, target-local login/registration options, configurable public joins and coordinator-based server shortcut URLs, including a client field for pasted join links.Explicit human request on 2026-10-19. The human selected one clear Join button showing the destination and existing account, without another password/account. Detailed federation and coordinator profiles require review before implementation. Considering a future move off sloppyvoice.com is not an instruction to migrate its existing accounts, service or DNS. D-057 remains applicable.
D-069Add a separate voice call to each conversation thread, isolated from channel and other thread calls.Human request and explicit answer “Separate thread call — participants in other threads or the channel call won’t hear it” on 2026-10-19. SPEC-013 records technical completion under D-024/D-049 and inherited parent policy.
D-068Add persistent text threads with replies expanded beneath the original message.Human request for Teams-like conversations and explicit inline-replies selection on 2026-10-19. SPEC-013 defines the additive authenticated reply contract.
D-067Reactivate a displayed channel to join voice; compact consecutive same-author messages, distinguish own messages, and show small timestamps after gaps greater than two minutes.Explicit human request on 2026-10-19. First selection remains text navigation; SPEC-013 refines D-065/SPEC-012 activation.
D-066Use application-defined light and dark palettes, selected automatically from the system appearance.Human request on 2026-10-19 to restore the previous softer colours while following system light/dark mode. Supersedes only D-065/R-078 exact system-colour inheritance and custom KDE colour application; compact layout and menu/workspace behaviour remain approved. Forced-colour accessibility still takes precedence. SPEC-005 owns the palette roles and mode-selection contract.
D-065Implement the reviewed compact interface with system colours: room/voice tree, no separate member sidebar, personal and moderator actions in one context menu, main-workspace settings, table-based member management and inline confirmations.Human approval on 2026-10-19 of review boards A–E, explicitly rejecting A4, placing moderation below personal menu options, accepting C and provisionally accepting D for use. Originally system colours replaced the mockups’ fixed palette; D-066 supersedes that colour choice with application light/dark palettes. SPEC-005 owns UI/theme behaviour; SPEC-008/012 own permission-filtered navigation data. D-063/D-064 modal and separate-panel details are superseded only as stated there.
D-064Open personal volume/mute controls from a voice participant context menu; let each account set a shared nickname, displayed boldly above its smaller fully qualified username.Explicit human request on 2026-10-19. SPEC-005 owns presentation/keyboard operation, SPEC-008 owns account profile validation/storage, and SPEC-009 owns the additive wire contract. Existing personal-versus-moderator mute semantics remain.
D-063Audit security, performance and networks; implement predominantly positive improvements and expose intuitive, keyboard-accessible user/server/channel/member configuration.Explicit human request on 2026-10-19. Engineering choices and significant deferred trade-offs are recorded in the code/interface review. Existing cryptographic, permission, retention, placement and hard-revocation rules remain.
D-062Permit limited voice buffering to improve choppy audio, including Canada callers using the EU relay.Human request on 2026-10-19 refines R-031: minimum delay must not prevent useful jitter tolerance. Under D-024/D-049, the completion profile uses a 60 ms startup/rebuffer target inside the existing 100 ms cap, ordered playout and short silence ramps. These numbers are engineering choices within that cap, not individually stated human preferences. Baseline performance targets and hosting priority remain; no intercontinental latency guarantee or codec change. See the audio review.
D-061Make the current local-overlay ebuild fetch its release archive automatically.Explicit human request on 2026-10-19. Supersedes manual distfile staging for alpha.6 onward. Publish the existing verified Linux archive through the existing Cloudflare download service, use its versioned HTTPS URL in SRC_URI, remove fetch restriction, and preserve Manifest verification. The private GitHub repository requires no visibility or credential change.
D-060Restoring after loss of every approved device requires both the account password and the separate recovery key.Explicit answer “Require the password and recovery key (recommended)” on 2026-10-19. Resolves Q-43; no forgotten-password reset or password-only content recovery is authorised. SPEC-011 records the implementation profile.
D-059Implement adding devices to the same account using a code from the signed-in client, sharing readable history and retaining server-owned permissions.Explicit human request on 2026-10-19 after the single-device login rejection. Continues D-044–D-046; SPEC-011 records the technical linking, trust, history and session profile within that request. Preserve the existing owner web session.
D-058Approve the preceding identity/discovery specification and proceed with the next build.Human “Approved. While building this…” on 2026-10-19. Selects P-028/SPEC-010 and the reviewed room-creation completion profile P-027, with existing accounts retained at sloppyvoice.com and meetings deferred. The future independent identity domain remains unselected.
D-057Keep existing accounts at @sloppyvoice.com; use a different identity domain for the next independent instance.Explicit human reply on 2026-10-19 after discovery that the current service already owns this namespace. Rejects migration to @chat.sloppyvoice.com; preserve UUIDs, keys, sessions, permissions and history. The future domain remains Q-49.
D-056Use username@domain, assume the local account domain when omitted, and specify/publish DNS discovery that separates identity from service host/path.Explicit human request on 2026-10-19 before building the next alpha. Authorises specification and current-domain DNS work; SPEC-010/P-028 contains the proposed client/security/path contract. D-057 supersedes the original two-instance namespace assumption.
D-055Add an administrative workflow to create chat rooms and define their applicable specification details.Explicit human request on 2026-10-19 in the implementation phase under D-049. This expands beyond the singleton lobby. The room creation review records existing access/encryption requirements and proposed creation/migration details. The human selected owner-only creation, with moderators managing rooms they can access (Q-48), then approved text/voice/combined scope with meetings deferred (Q-47). D-058 subsequently approves the completion profile; SPEC-012 supplies the additive wire/storage shapes.
D-054Extend the initial hosted shared voice session to one hour and repair premature background disconnections.Explicit human request on 2026-10-19, reporting drops after one or two minutes while usually in the background. Supersedes only D-043’s 50-minute bound with 60 minutes; the final five-minute warning, explicit rejoin, short permission leases and bounded testing scope remain. SPEC-002 owns the reviewed timing profile.
D-053Allow an X11 dependency for Linux mouse PTT using Discord’s XInput2/XWayland mechanism.Explicit human statement “We can introduce the X11 dependency” on 2026-10-19 after reviewing the installed Discord path. Narrowly supersedes D-010’s prohibition for an optional mouse input helper; the app window and supported Linux session remain Wayland. P-026 is accepted to that extent, with the technical profile in SPEC-005.
D-052Invite users to the server once, then grant lobby access so they can join without another code; reserve initial owner creation for /setup, close it after bootstrap, and accept full invitation URLs in the invitation-key field.Explicit human request on 2026-10-18, in the implementation phase under D-049. Supersedes the mandatory separate room-code workflow in shipped V1 only. The existing private room, membership history boundaries, device identity and owner protections remain. Technical completion and compatibility details are reviewed in the invitation/access review.
D-051Build the public Sloppy Voice website on Cloudflare and make the Windows installer available at www.sloppyvoice.com/download.Explicit human request on 2026-10-18. Authorises publication of the existing alpha.3 installer and a public landing/download site in the existing account. The reviewed completion profile uses a separate website Worker and an EU R2 bucket for the installer, which exceeds the static-asset limit. The human separately enabled R2 after reviewing its recurring terms and free allowance; confirmation on 2026-10-18.
D-050Deploy the updated web application to Cloudflare, refresh the KDE ebuild and Windows application, and provide a shareable Windows installer.Explicit human request on 2026-10-18. Continues D-049's GitHub update authority. The alpha.3 packaging profile in SPEC-005 records technical completion choices under the existing implementation delegation: per-user unsigned installer, retained device data, and a deployment-specific public origin supplied at build time. No account/key migration or wider platform acceptance is implied.
D-049Move into application implementation and update the GitHub repository with the work.Explicit human statements “We have moved into the application implementation phase now” and “please update the github repo when you do it” on 2026-10-18. Supersedes the initial specification-only phase restriction. Implement reviewed, sufficiently specified requested features and record technical completion choices; material unresolved behavior such as forgotten-password recovery remains open.
D-048Test PTT on both KDE and Windows, using the human's ProtoArc mouse button 4 as the immediate fixture. Joystick hardware testing may wait until it is connected but must be completed before leaving the testing phase.Explicit human answer on 2026-10-18. Exact mouse model and joystick model are not supplied; identify the actual hardware in the test record. Mock input or a cross-compile cannot satisfy this exit gate.
D-047Make PTT user-configurable by pressing the desired keyboard key, mouse button or joystick button on the configuration page.Explicit human request on 2026-10-18. All three input classes are required; desktop global input and D-012's focused-browser boundary remain applicable. Capture workflow, platform adapters and hardware coverage are proposed in the PTT review. This expands the target beyond the shipped Space/F1–F12 selector; it does not claim those inputs already work.
D-046Allow one active voice client per account, with an explicit move to another signed-in client.Explicit selection in the linked-device question round. Other clients retain text/account access. Handover failure, lease sequencing and UI details remain proposed; simultaneous listening on several clients is not selected by this choice.
D-045Use a separate recovery key to restore account access and encrypted history after all approved devices are lost.Explicit selection in the linked-device question round. Recovery requires surviving encrypted material; a secret cannot recreate missing or expired messages. Password requirements, backup coverage, rotation and migration are proposed in the linked-device review. Supersedes D-022 for the requested successor feature only; the deployed V1 still has no content or owner recovery.
D-044Use the same account credentials across KDE, Windows and web clients, with the same account permissions; seek the same readable conversation history across clients. Approval from an existing device is acceptable to protect encryption keys.Explicit human request on 2026-10-18. This establishes linked-device requirements, not approval of a specific key-transfer protocol. Supersedes D-020's single-device restriction for the requested successor feature only. The deployed 0.1.0-alpha.1 / voice-chat/1 profile remains single-device until an approved migration is implemented.
D-043Approve bounded 50-minute shared relay sessions for the initial hosted cohort, with a five-minute warning, closing admission margin and explicit rejoin/fresh PTT. Implement the reviewed Cloudflare alpha adapter policy.Explicit response “Approve bounded 50-minute sessions for initial testing” after review of the alpha lifecycle policy. D-054 subsequently extends its duration to 60 minutes. This selects its bounded option; uninterrupted credential renewal remains later work. D-024 covers technical completion of the wire/configuration contract while preserving its stated limits. This does not approve a global permanent duration cap or waive hosted, platform or performance validation.
D-042Design for global availability and participants in different locations; a single forced media path is acceptable for initial testing, not the desired final service.The human expects many voice groups to share similar time zones, identifies Brisbane for Australian testing, and explicitly permits one path to simplify testing. Keep the V1 singleton scoped to the test milestone. Regional relay selection, transitions and multi-region operation require later detailed specifications; this does not authorise automatic failover that weakens leases or splits room authority.
D-041Include Australian tester paths in latency validation.The human expects testers in Brisbane, Australia, and explicitly identifies their latency as relevant. Record city/network and measure actual capture-to-playout and join delay; this does not replace the clean/impaired baseline or change D-040's hosting order.
D-040Prefer hosting in Canada, then the European Union, then the United States. Superseded in part by D-216: the EU-before-US order and EU-only media placement no longer apply.Explicit human instruction on 2026-10-18. Apply supported placement controls per component and report their limits. Current Cloudflare Container/Durable Object jurisdictions do not include Canada; select their supported EU restriction for this deployment. Edge ingress, TURN routing and provider metadata are separate from persisted application data and cannot be represented as wholly Canadian/EU hosting.
D-039Configure an account-wide US$5 usage-spend email alert.The human selected “Alert at US$5” after disclosure that alerts cannot stop billing and exclude fixed subscription fees. Recipient is the account email. This is a notification threshold, not a hard spending cap.
D-038Enable Cloudflare Realtime for the approved TURN probe.The human performed the separate subscription activation and replied “enabled”, after disclosure of US$0 base fee, 1,000 GB/month included usage, US$0.05/GB overage and recurring terms. The dashboard confirms activation. D-034 test bounds still apply.
D-037Add account-level containers:write to Wrangler and create a dedicated Sloppy Voice media probe TURN key.Explicit human approval of both access changes on 2026-10-18, after disclosure that Container management is account-wide. Secrets remain in the ignored private deployment folder; testing retains D-034 bounds.
D-036Enable Workers Paid for the approved Cloudflare deployment/testing direction.The human replied “enabled” after the explicit US$5/month plus usage prerequisite; the dashboard confirms Paid as the current plan. The human performed the subscription change. D-034's bounded prototype remains the hosted test scope; no unrelated paid services or unrestricted test workload are authorised.
D-035License original project code, specifications, documentation and examples under Apache 2.0; permit independent protocol implementations under any licence, including proprietary licences.Explicit human acceptance of the Apache 2.0 recommendation on 2026-10-18 after review of the patent terms. Retain explicit existing file licences and third-party notices. Apply standard Apache patent terms without a separate protocol-wide patent commitment. Resolves Q-30's licence choice; extension/revision governance remains open.
D-034Approve testing Cloudflare Containers plus TURN while retaining Go/Pion encryption boundaries, mute and lease enforcement.Explicit answer “Approve Containers + TURN direction” on 2026-10-18. Resolves P-023 for an isolated prototype, with the bounded test contract in the media review. Production credential renewal, performance acceptance and a paid subscription remain separate gates.
D-033Configure the server components in the human's Cloudflare account within sloppyvoice.com, and document initial domain/owner creation. Keep hosting entirely on Cloudflare and review the media adapter change first.Explicit human request and follow-up answer on 2026-10-18. Account access and the Workers configuration are prepared. The media review is a proposal, not approval to replace the accepted forwarding guarantees or purchase a subscription.
D-032Name the project Sloppy Voice, with package/executable slug sloppy-voice, and provide a Gentoo ebuild in the existing local overlay. Rename the GitHub repository to megaschlong/sloppy-voice.Explicit human request and repository-rename answer on 2026-10-18. Update visible branding and distribution identifiers; preserve existing wire/storage identities and legacy origin configuration for compatibility. Packaging the existing alpha does not establish platform acceptance or select a project licence.
D-001Support both managed and self-hosted media separate from the serverless application.First question round. The reference control service still targets Workers; no particular SFU/provider is selected.
D-002E2EE is mandatory for direct messages/calls and configurable for shared rooms.First question round. Direct communication has no server-readable fallback.
D-003One domain hosts each room; foreign-domain users join with existing identities.First question round. Replicated room authority and survival of the original host are not required.
D-004Use one cross-platform interface with strong KDE and GNOME integration.Second question round. Refines the original KDE/GNOME client wording; separate Qt and GTK interfaces are not required. Toolkit remains open.
D-005Evaluate existing protocols first and choose based on fit.Second question round. Matrix and XMPP are candidates; a new protocol is not excluded if existing options fail requirements.
D-006Prioritise a usable gaming milestone with federation, PTT voice, text, E2EE DMs/calls, and screen sharing.Second question round. Does not remove meetings, whiteboards, webcams, or other required platforms.
D-007Test version 1 uses one domain and 3–10 testers in one voice room, without requiring screen sharing. Test version 2 adds a second domain promptly.Third question round. Refines the earliest delivery stages ahead of D-006. Production scale remains open; ten testers is not an approved production limit.
D-008Default private rooms to E2EE and public rooms to server-readable content.Third question round. Transport encryption remains required. Definitions of public/private and security-mode migration need detailed review.
D-009Shared moderator gain is a baseline; personal gain/mute remains available; hard moderator mutes are enforced by the relay.Third question round. Modified clients can ignore playback gain. Gain ranges and exact mixing/limiter behaviour remain open.
D-010Initial testers use KDE and Windows; Linux uses Wayland only; D-053 later permits an optional XWayland mouse input dependency while retaining the Wayland session/window. macOS follows later. A web client is highly desirable in the first version.Fourth question round. Exact versions are unknown. GNOME remains required, with timing open. Browser PTT capability is a separate decision; web delivery is not yet a mandatory first-version gate.
D-011Include basic room text chat alongside voice in test version 1.Fourth question round. Does not require DMs/direct calls in that earliest test build; they remain required for the broader product/gaming milestone.
D-012Web PTT works while focused and stops transmission on focus loss; use desktop clients for global PTT.Fifth question round. Explicitly refines the original global-PTT requirement for browser clients without weakening desktop PTT or room PTT policy.
D-013Every specification contains Configuration, Testing, and Acceptance criteria sections: relevant properties/defaults, unit-test coverage, and a bullet list of specific testable completion criteria.Explicit specification-format instruction on 2026-10-18. Applies to current and future implementation specifications; does not approve unresolved design choices.
D-014Maintain separate client and server specifications.Explicit follow-up on 2026-10-18. SPEC-005 owns clients; SPEC-008 owns the server, including server-side authorisation and administrative processing moved from SPEC-005. Shared topic specifications remain authoritative for their cross-component contracts.
D-015Keep fixed public/private access bundles: public rooms are listed and joinable by authenticated users permitted by federation policy; private rooms are unlisted and invitation-only.Explicit review answers on 2026-10-18. Replaces the independent discovery/admission/history-settings recommendation. Media preset and encryption choice are separate; exact invitation/discovery protocols remain open.
D-016V1 newcomers see room text from admission onward.Explicit review answer. No pre-admission history entitlement for a first-time member; re-admission is refined by D-023.
D-017Leave optional bot classification open and preserve ordinary-account automation first.Explicit review answer. Refines R-016's previous distinct-class wording and supersedes SPEC-003's assumption that optional classification is necessarily profile metadata. Neither representation is selected.
D-018Allow an explicit encryption choice at room creation, retaining public/server-readable and private/E2EE defaults; the chosen mode stays fixed for that room.Explicit amendment-round answer. Reject in-place security-mode changes; replacement-room invitation/history migration details remain proposed.
D-019Moderator “Mute for everyone” stops all audio from the participant across devices, including screen-share audio; video may continue.Explicit amendment-round answer. Resolves the audio-role bypass ambiguity without requiring semantic detection of microphone content. Device support follows the release scope.
D-020V1 uses an encrypted private room, PTT voice/moderation, unformatted room text with reconnect history, and one active device per account. Multi-device use, message edits/deletion, attachments and richer text follow later.Explicit amendment-round answer. “Plain-text” describes formatting, not plaintext transport/storage. Web remains Desired under D-010, with the same account-device limit. Resolves P-008. D-044 replaces the device limit for the requested successor; it remains the deployed V1 contract.
D-021V1 account creation uses administrator-issued invitations; testers choose passwords.Explicit amendment-round answer. Does not select verifier parameters, invitation binding, MFA or reset/device-trust mechanisms. Account and room invitations have separate purposes.
D-022Accept unrecoverable old encrypted history in V1 after loss of the only device or keys; specify content recovery for a later release.Explicit amendment-round answer. Login recovery is separate and cannot provide old content keys. D-045 selects recovery for the requested successor; this limitation remains true of deployed V1 and already-lost V1 keys.
D-023Returning members can fetch retained messages from earlier membership periods and the new period, excluding absences.Explicit amendment-round answer choosing this over a fresh-boundary-only recommendation. Applies after re-admission, subject to retention, current rights and possession of historical keys; cannot erase copies already held.

Delegated first-build decisions

On 2026-10-18 the human answered “Yes, please resolve it” to the explicit request to resolve/document remaining technical and configuration choices, preserve confirmed requirements and proceed with implementation. D-024 is the human delegation; D-025–D-031 record choices made under that authority, not individual preferences directly stated by the human. It does not authorise changing D-001–D-023.

IDResolutionScope and source
D-024Delegate remaining V1 technical/configuration decisions and implement the first build while retaining confirmed requirements.Explicit human response on 2026-10-18.
D-025Select versioned HTTPS/polling control, TypeScript/Workers with domain-local SQLite authority, direct foreign-host boundary for V2 and a separately deployable Go/Pion relay.Delegated; SPEC-002/SPEC-009. Matrix/XMPP comparison retained. V1 federation closed; no interoperability claim.
D-026Select libsodium per-recipient authenticated encryption, Ed25519 device/message proofs, visible TOFU with explicit key-change acceptance, Argon2id passwords and explicit owner-authorised device replacement.Delegated; SPEC-003/SPEC-009. No forward-secrecy/PCS or malicious executable-origin claim. No lost-key history recovery.
D-027Select hold-to-talk, encrypted PCM over unordered unreliable WebRTC data channels, relay-only routes, bounded leases, explicit gain/limiter policy and V1 limits.Delegated; SPEC-004. No voice-activation fallback; platform/performance verification remains required.
D-028Select shared React web/Electron clients, native press/release helpers, protected device storage and explicit target platform fixtures.Delegated; SPEC-005. Target selection is not verified platform support.
D-029Select transactional acceptance/outbox, purpose-bound command tickets, seven-day text/audit retention and bounded invitations/requests/history.Delegated; SPEC-006. No backup/restore claim.
D-030Select explicit V1 performance measurements and a 4000 ms hard forwarding-revocation bound, with actual platform/human evidence required.Delegated; SPEC-007. Automated checks do not complete V1.
D-031Select owner/moderator/member permissions, sole-owner protection, revision-checked commands and durable enforcement states.Delegated; SPEC-008. No implicit foreign privileges.

V1 resolves P-002/P-004/P-005/P-006/P-011/P-013/P-014/P-017/P-018/P-020/P-021/P-022 only as specified in the active V1 sections. P-012's group-key coordinator is replaced for V1 by per-recipient encryption and exact live/persistent recipient sets; P-007's established-cryptography intent is implemented with libsodium, not a selected MLS/SFrame stack. Later features and unselected mechanisms remain proposed. P-016 (encrypted boards) and P-019 (restore) are not V1 implementation scope.

Proposals awaiting approval

IDProposalReason and dependency
P-037Selected within D-194/D-197/D-198's named scope. Use C++/Qt Widgets, the tabbed two-tree main window without toolbar/right pane, desktop scaling and the approved standard-widget presentation.D-194 supersedes the initial conventional three-pane/menu-toolbar recommendation; D-197 selects desktop scaling and D-198 approves standard styling, modeless Preferences/listening, static unread counts, compact avatars, plain headings, remembered splitters and embedded viewer controls. Separate viewer windows remain proposed. Other unresolved migration/settings choices retain their explicit status in SPEC-005; presentation approval does not weaken trust/capture consent, change permissions or authorize call movement beyond its existing explicit contracts.
P-036Accepted D-171. Support QR device linking with either the approved or new device displaying the QR, retaining explicit approval on an approved device and manual-code fallback.Human request on 2026-10-25 establishes the desired QR capability and both-direction preference. The review compares five approaches and proposes scoped camera consent, local decoding and a shared admission contract. The human subsequently selects password-free QR plus explicit device approval. SPEC-011/005/008 select the technical completion profile below; the earlier review alternatives remain historical.
P-035Accepted D-134 with game-audio capture initially on. Complete the screen-sharing profile with route-aware presentation budgets, a versioned encrypted video transport beside existing voice, combined-display capture, intent-based codec negotiation, bounded audio/video timing and local presentation-audio ducking.D-128–D-133 confirm outcomes, transport direction and normal server/client/enablement defaults. D-134 selects the reviewed remaining SPEC-023 profile and delegates documented, tested technical completion. Game-audio capture starts on in the popup, replacing its proposed off default. The local feasibility record remains bounded evidence, not application readiness. Q-62–Q-64 track implementation/validation; Q-65/Q-66 retain the display/PTT answers.
P-034Use Ed25519-signed account login tokens carrying issuance-time expiry, with an active server session registry for logout/revocation and a seamless fresh-token handover on early reauthentication.R-108/D-102; the human expressed a preference for cryptographic signatures on 2026-10-21. Selected subsequently by D-103; this supersedes the initial opaque-token recommendation while retaining current server authorization. The login-session review records proposed claims, trusted-key validation, finite/unlimited semantics, migration and tests.
P-031Accepted D-090. Use a common Message/Call/Add people interaction across Friends, Recent and an authenticated Server Members directory; keep canonical, mandatory-E2EE DMs independent of the selected community, and require explicit answering/movement for calls.D-087; SPEC-018. D-090 approves the reviewed roster audience, canonical home authority and scoped cross-domain inbox/admission. Client/server responsibilities remain SPEC-005/008.
P-032Accepted D-090. Create a separate invited temporary group when adding people, preserve the original DM transcript, and close live membership after everyone leaves while retaining read-only text under D-088.D-087/D-088; SPEC-018. Four-hour default/one-year ceiling are confirmed. Creator-selected immutable duration, age measured from each message's acceptance, two-minute disconnect grace and group ownership are selected under D-090. The earlier erase-on-close recommendation was rejected by D-088.
P-033Accepted D-089/D-090. Require acceptance before ordinary messages or ringing and preserve one-way Friends. D-090 selects the reviewed request lifecycle and account-wide blocking.D-087/D-089; Q-59 is answered. Saving someone or sharing a server cannot count as their acceptance. D-090 subsequently approves the blocking, cooldown and group-lifecycle completion in SPEC-018.
P-029Accepted D-086. Prefer direct participant paths for private E2EE calls, with per-listener application-relay fallback and a relay-only user preference; disclose peer address exposure and enforce direct-path moderation at conforming receivers.D-085 direction; review. Q-56 must explicitly resolve the changed D-009/R-043 enforcement guarantee. Public channels remain relayed regardless of encryption.
P-030Accepted D-086. Encrypt each voice frame once with a temporary per-speaker key distributed through the existing ephemeral pairwise channels, and authenticate the common media object with the speaker's signature before direct delivery or relay fan-out.D-085 feasibility proposal; review. Preserve D-082 key lifetimes and keep secrets from the relay. Q-57 and exact wire/key-transition completion precede implementation. No SFrame/MLS interoperability or security-audit claim.
P-025Record one held keyboard key, mouse button or joystick button from the configuration page, validate actual platform registration, persist it per client and require release followed by a fresh press before transmission.Implemented for alpha.2 under D-049 with the technical profile in SPEC-005. Physical platform acceptance remains pending under Q-45/D-048. SPEC-005 owns the recorder and binding schema; See the PTT review.
P-001A domain can host multiple communities; domain policy constrains communities and rooms.Separates infrastructure from social groups; Q-19.
P-002Use separate media track roles and a selective-forwarding topology.Preserves per-user volume and E2EE; validate adapters and exact media profile.
P-003Provide an explicit replacement-room invitation workflow when users want a different encryption mode.D-018 now confirms that an existing room's mode cannot change. This proposal covers the remaining migration UX/history contract; it does not authorise automatic history transfer.
P-004Use scoped capability discovery plus server checks and push permission updates.Meets adaptive-interface requirement without trusting client UI.
P-005Use at-least-once delivery with idempotency and one room-host event order.Makes retry and serverless restart behaviour explicit.
P-006Share protocol/media/crypto components across platform integration modules.Supports the accepted shared interface; language and toolkit remain open.
P-007Use established encryption protocols and libraries; evaluate MLS and SFrame where suitable.Avoids inventing cryptography; neither is selected, and application authentication remains necessary.
P-009Bound webcam synchronisation delay and degrade video before adding unbounded voice delay.Reconciles voice priority with meeting lip sync; Q-22.
P-010Demonstrate a second control deployment and both media modes before claiming full operator portability.Validates the published contracts; Q-31 determines platform and timing.
P-011Use host-ordered membership intervals for historical eligibility, with consistent revision/search/snapshot filtering.Implements D-016/D-023's outcomes; SPEC-006/RV-01. Exact wire/key mechanics remain open.
P-012Separate persistent membership, live attendance and trusted-device/key groups; only admitted live devices get media keys; pause publication across incomplete removal rekeys.SPEC-003/RV-02. Coordinator, epoch ordering and recovery need an accepted crypto profile.
P-013Distinguish accepted/pending/effective/failed/superseded media enforcement and enforce bounded active forwarding leases.SPEC-002/003/008, RV-03. Hard bounds and adapter proof remain open; D-019 fixes mute scope only.
P-014Separate text navigation from the active voice target; a voice-session switch clears held PTT and requires a fresh press.SPEC-004/005, RV-04. Preserves browsing text during voice without selecting multi-room voice.
P-015Scope room-policy inheritance to the host domain and explicitly model inherit/false/restrict-only behaviour.SPEC-002/004/008, RV-05/RV-11. Additional home-domain restrictions and general role precedence remain open.
P-016Supply authenticated historical authorisation evidence for encrypted-object client validation.SPEC-005/006/008, RV-06. Keeps role authority on the server and decrypted-object validation on clients; evidence/snapshot schema remains open.
P-017Recoverably commit authoritative mutation, result identity and required external work; reconcile ambiguous effects.SPEC-006/008, RV-07. Transactional outbox is a candidate, not a dependency selection.
P-018Bind idempotency to actor/scope/payload and coordinate command validity, uniqueness/tombstones and result retention.SPEC-006/008, RV-08. Expired results cannot make an old mutation new. Exact validity protocol remains open.
P-019Fence restored authority, invalidate old sessions/media, reconcile revocations outside the rollback window, and keep unrecoverable authority closed.SPEC-006/008, RV-09. Recovery source, fencing mechanism and RPO/RTO remain open.
P-020Select browser origins/credentials/realtime transport together with foreign-room routing and independent-client support.SPEC-002/005/008, RV-10; Q-09. Neither direct routing nor proxying is selected by this contract.
P-021Classify configuration versus state/protocol declarations, and complete typed inheritance/change/version contracts per implemented feature.SPEC-000 and component inventories, RV-11. Removes invented knobs without selecting OPEN defaults.
P-022Use scenario-level milestone applicability and explicit measurement contracts, including hard revocation bounds separately from percentiles.SPEC-007, RV-12. D-020 selects V1 scope; detailed future allocation and thresholds remain proposed.

Resolved proposals

IDDisposition
P-027Selected under D-055/D-058. SPEC-012 completes owner-created text/voice/combined rooms, limits and migration. Meetings remain deferred.
P-028Selected under D-058. SPEC-010 defines qualified identities and authenticated service discovery; federation remains closed.
P-024Selected under D-059/D-060. SPEC-011 defines distinct approved devices, retained-history copies, password-plus-key recovery and fenced voice movement.
P-026Accepted under D-053 for the optional Linux mouse helper; the supported session/window remain Wayland. See SPEC-005 and the review.
P-023Accepted for testing through D-034. Production rollout still requires the documented hosted and operational evidence.
P-008Accepted through D-020: V1 tests encrypted private-room voice and text. Cryptographic suite/device-trust mechanisms are still OPEN.

Implementation request — 2026-10-18

The human subsequently requested: “Okay, let's create our first build. Use the specifications committed to my voice-chat github repository.” This authorises implementation of sufficiently specified behaviour under SPEC-000. It does not itself select alternatives explicitly marked OPEN or approve every PROPOSED mechanism. The first-build preparation review records the verified baseline and concrete recommendations. Delegation was subsequently granted under D-024; D-001–D-023 retain their existing scope.

Earlier amendment authority

The human's request to take the review suggestions into account authorises these draft amendments. It does not select alternatives explicitly left OPEN or authorise application implementation. The numbered decisions above record explicit behavioural answers; remaining review mechanisms are identified as proposals so they can be assessed without losing the human/specification boundary.

Do not treat a proposal as accepted merely because another specification describes it in detail. Accepted refinements must update affected prose, requirement entries, questions, and acceptance criteria together.

CONFIRMED: the human requested public context-menu share links accepted by Add server, permitted server/channel admission, and visible denied server roots without inaccessible channels. The follow-up explicitly selects opening channel text with voice joined separately. SPEC-015 defines the locator encoding and saved pending connection implementation; links grant no privileges.