clients - add per host profiles (multiple setting profiles for one host) #12
Closed
opened 2026-07-28 14:35:09 +00:00 by enricobuehler
·
1 comment
No Branch/Tag Specified
main
fix/cursor-dpi-normalise
fix/vdisplay-rearrival-hdr
fix/vdisplay-refused-diag
fix/vdisplay-resize-reopen
fix/vdisplay-keyframe-republish
fix/vdisplay-hdr-444
wp/vp-s6-bypass
wp/g3-parity-battery
wp/vp-s6-inwindow
wp/vp-p4-drain-clock
wp/vp-g4-harness
wp/vp-p4-encode-stall-probe
wp/vp-p4-stale-comments
wp/vp-p4-split
spike/webos-glprobe
wp/vp-p4-classify
wp/vp-p3-cut
wp/vp-p3-int2
wp/vp-p3-rungs
wp/vp-p3-int
wp/vp-p3-driver
wp/vp-p2-s5
wp/vp-p3-host
wp/vp-p3-proto
wp/vp-p1-hcount
wp/vp-p2-spike-base
wp/vp-p2-driver-build
wp/vp-p1-11
wp/vp-p1-stack
wp/vp-p2-encode-win
wp/vp-p1-10
wp/vp-p1-9
wp/vp-p1-6
wp/vp-p1-7
wp/vp-p1-8
wp/vp-p1-3
wp/vp-p1-4
wp/vp-p1-5
wp/vp-p1-2
wp/vp-p1-1
wp/vp-p0-4
wp/vp-phase0-driver
wp/vp-p0-3
wp/vp-phase0-host
wp/vp-p0-2
wp/vp-p0-1
feat/host-own-session-launch
fix/handshake-test-module-order
fix-windows-build-break
fix-adapter-reload-verify
fix/flatpak-setup-win-prune
feat/windows-multiseat-addon
fix-reassert-concede
live-kill-recovery-gate
live-wedged-worker-gate
fix-reassert-breaker-window
live-fence-ring-gate
fix-live-create-drop-linger
worktree-fix-apple-tvos-decoded-hardening
worktree-wp11-connector-leases
fix-manager-test-imports
feat/store-launch-kinds
worktree-wp7-host-fence-v3
worktree-fix-stale-pairing-toasts
worktree-wp10-topology-txn
worktree-wp7-driver-fence-v2
worktree-wp13-recovery-fsm
worktree-wp7-fence-ring
fix-steam-proto-doc-lint
worktree-wp14-stream-continuity
worktree-wp13-recovery-wiring-v2
feat/installer-win-done-polish
worktree-wp9-snapshot-readers-v2
worktree-wp8-display-snapshot
worktree-fix-tvos-focus
fix/installer-win-smoke-findings
smoke/installer-win-stack
feat/installer-win-client
feat/installer-win-inno-migration
worktree-wp4-header-v3
feat/installer-win-ci-engine
fix/android-decoder-bare-rung
feat/installer-win-pack
spike/installer-win-s2
spike/installer-win-s1
feat/installer-v2-client
feat/installer-v2-tui
feat/installer-v2-engine
worktree-omarchy-client-theme
release/v0.34.0
docs/stale-support-claims
fix/openapi-spec-drift
worktree-sc2-usb-macos
pr-425-gapfix
worktree-host-actions
worktree-omarchy-installer-gaps
worktree-docs-universal-installer
worktree-keep-host-audio-parity
worktree-standby-sink-investigation
worktree-security-review-fixes
worktree-abr-dscp-default
worktree-abr-control-loop
worktree-abr-transmission-plane
worktree-pyrowave-forces-auto
worktree-web-console-native-identity
worktree-abr-encode-downdriver
worktree-gamescope-exclusive-panel-off
worktree-bitrate-picker
worktree-fix-mic-tap-format-abort
worktree-release-0313-recut
ci-skia-download-retry
worktree-audio-devnode-orphans
worktree-gamescope-rebuild-keeps-hdr
worktree-gamescope-idled-handback
worktree-hevc-idr-storm-coalesce
worktree-gamestream-pad-heartbeat
worktree-steam-prelaunch-latch
worktree-release-0312-prep
worktree-firewall-program-scoped-rules
worktree-blackscreen-data-plane-source-ip
worktree-fix-frozen-local-ip
worktree-android-pad-mapping-regression
worktree-android-console-extra-keys
worktree-data-plane-firewall-and-delivery-truth
worktree-android-gamepad-ui-and-corner
worktree-android-pad-hid-remap
worktree-gamestream-xbox-hid-parity
worktree-release-next-prep
worktree-win-client-installer
worktree-kwin-vout-enable-repair
worktree-wp4-install-script
docs-wp2-to-main
worktree-docs-wp0-wp1-anti-drift
worktree-kwin-vout-failed-permanent
worktree-android-asc-hdr-dataspace
worktree-console-controllers-page
worktree-gamepad-probe-stack
worktree-agents-md-setup
worktree-android-skia-console
worktree-android-asc-presenter
worktree-win-teardown-abort
worktree-audio-hires-default-on
worktree-console-ui-aa
worktree-pr270-review-fixes
worktree-console-ui-overhaul
worktree-hires-audio-pcm
worktree-audio-stutter-fixes
worktree-ds-pad-sink-pro-audio
worktree-console-diagnostics
worktree-ds-inhibit-storm
worktree-security-review-2026-08-15-fixes
worktree-pairing-friendly-device-name
worktree-shield-select-back-quit
worktree-android-canary-open-testing
fix-host-cer-alias-null-key
worktree-azure-trusted-signing
worktree-audio-soft-limit-gain
worktree-gamescope-exclusive-dpms
fix/playnite-launcher-resolve
worktree-macos-mic-rebuild-loop
worktree-hyprland-cursor-mode-negotiation
worktree-hd2-idle-recording-default
worktree-steam-art-root-windows
worktree-android-aaudio-shield-silence
worktree-unpair-all-button
worktree-appletv-present-depth
worktree-av1-level-sentinel
worktree-nix-plugin-runner-resolve
worktree-release-0280
worktree-console-plugin-update-all
worktree-flatpak-skia-099-pin
worktree-debian-ubuntu-support
worktree-wowlan-support
worktree-decky-shortcut-dup
worktree-vk-level-gate-clamp
worktree-edition-2024
worktree-win-sleep-blockers
worktree-rt-gpu-priority-defaults
worktree-black-stream-fixes
worktree-edid-lock-toggle
worktree-gate-double-arm-fix
chore/rust-safety-programme
worktree-console-pinned-profile-library
worktree-blackscreen-fixes
build/web-silence-rollup-directive-warnings
worktree-android-console-visual-refresh
worktree-nixos-capped-compositor-exe-denied
worktree-release-0270
worktree-dm-helper-diagnosis
worktree-gamescope-pin-bump-nobara
worktree-notes-capsysnice-correction
worktree-bazzite-docs-warning
worktree-kwin-capability-identification
worktree-gamescope-rpm-deb-builddeps
worktree-pyrowave-wire-dead-code
worktree-release-0260
worktree-cursor-composite-hardening
worktree-library-settings-origin-split
worktree-native-decode-m0
worktree-july-rpm-and-cursor
worktree-presenter-cadence-wp1
worktree-decky-brand-name
worktree-win-amd-decoder-order
worktree-stall-ride-through
fix/pad-audio-wasapi-module-path
feat/android-pad-audio
worktree-adl-emul-probe
worktree-haptics-m12-dry
worktree-haptics-m9-richfb
worktree-haptics-m11-settings
worktree-apple-store-screenshots
worktree-decky-slim-rework
worktree-appstore-copy
worktree-haptics-m10-wire
worktree-haptics-m8-proto
worktree-haptics-m7-windows
worktree-haptics-m6-presenter
worktree-wire-mtu-resilience
worktree-haptics-m5-android
worktree-haptics-m4-apple
worktree-haptics-m3-rumble-engine
worktree-android-presenter-023-triage
worktree-vdisplay-resume-recovery
worktree-kwin-vout-demirror
fix/web-console-sweep
fix/windows-web-console-lifecycle
chore/windows-rerender-semantics
fix/pf-encode-phase8
fix/pf-encode-phase7
feat/cursor-channel
feat/desktop-mouse-mode
feat/plugin-kit
fix/network-split-standing-latency
fix/windows-msix-arm64-and-manifest
fix/encode-medium-tier
fix/encode-rfi-taint-and-oob
fix/encode-init-leak-and-twin-drift
fix/encode-teardown-uaf
feat/pyrowave-windows
fix/ubuntu-2404-host-deb
fix/ios-archive-provisioning
merge/first-frame-latency
feat/shared-clipboard-v2
feat/apple-live-activities-widgets
debug/touch-finger-logging
feat/shared-clipboard
midstream-resize
plugin-kit-v0.4.5
v0.34.0
v0.33.0
v0.32.0
v0.31.4
sdk-v0.1.6
v0.31.3
v0.31.2
v0.31.1
plugin-kit-v0.4.4
v0.31.0
sdk-v0.1.5
plugin-kit-v0.4.3
v0.30.0
plugin-kit-v0.4.2
v0.29.0
v0.28.1
v0.28.0
plugin-kit-v0.4.1
v0.27.0
v0.26.0
plugin-kit-v0.4.0
sdk-v0.1.4
plugin-kit-v0.3.3
sdk-v0.1.3
plugin-kit-v0.3.2
v0.25.0
plugin-kit-v0.3.1
plugin-kit-v0.3.0
v0.24.0
v0.23.0
v0.22.3
v0.22.2
v0.22.1
v0.22.0
v0.21.0
v0.20.1
v0.20.0
plugin-kit-v0.2.0
v0.19.2
v0.19.1
v0.19.0
v0.18.0
v0.17.2
v0.17.1
v0.17.0
v0.16.0
v0.15.0
v0.14.0
v0.13.0
v0.12.0
v0.11.0
v0.10.1
v0.10.0
v0.9.2
v0.9.1
v0.9.0
v0.8.4
v0.8.3
v0.8.2
v0.8.1
v0.8.0
v0.7.4
v0.7.3
v0.7.2
v0.7.1
v0.7.0
v0.6.0
v0.5.1
v0.5.0
v0.4.2
v0.4.1
v0.4.0
v0.3.1
v0.3.0
v0.2.1
v0.2.0
v0.1.1
v0.1.0
Labels
No items
No labels
Milestone
No items
No Milestone
Projects
Clear projects
No projects
No Assignees
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: unom/punktfunk#12
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
needs design work
open questions:
The design work is done —
design/client-settings-profiles.mdin the planning repo (432 lines, supersedes the olderper-host-client-profiles.md, which only scoped single-profile per-host overrides and predates the settings revamp).Answering the open question — shared, not per-host.
Profiles are a client-wide catalog, and the per-host part is only a binding. Reasons that settled it:
KnownHost.profile_id/StoredHost.profileID), so there is no separate host-keyed map — and the known keying inconsistencies (Rust has no host UUID;addr:portvsfp_hexlookups) never touch this feature.Other decisions taken in the doc:
Phasing is P0 (Rust core, no UI) → P1 Linux/Windows → P2 Apple → P3 Android → P4 fast-follows. P0 unblocks everything; P1–P3 are independent after it. The Android settings-parity leg rides along as its own phase, since the profile UX is built on the revamped settings structure Android is the last client to lack.
No wire, host, or protocol/ABI changes anywhere in this design — it is client-side only.