redesign(brainbar): confine DEV previews to a fixed non-configurable root
Maintainers usually reply within 1 day
Nobody has claimed this yet.
Assessment
- Difficulty
- 5/5
- Estimated time
- Over a week
- Newbie friendliness
- 28/100
- Issue type
- Refactor
- Clarity
- Needs clarification
- Activity status
- Active
- Tech stack
- python
- Domain
- build-system, desktop, security
Research direction
Start by tracing the DEV build interface and BrainBarDevHarnessCommit, then review the #894 B6/B7b, B9, B10, and B11 destination probes. Map the Preview Settings UI and action layers, identity validation, and harness stamping before changing behavior. Done means the listed acceptance checks pass, including independent behavioral oracles and refusal of malformed or stale targets.
Written by the indexing model from the issue text.
Description
Why
#894 was blocked eight times by production-reachable hazards. Fixing individual path checks repeatedly exposed another bypass: direct production destinations, canonical equivalents, nested app paths, symlinks through nonexistent intermediates, and case variants. That is a design failure, not a finite blacklist to extend.
Required design
- Remove
BRAINBAR_DEV_APP_DIRand every caller-controlled destination override. - Compute preview destinations internally beneath one fixed, non-configurable DEV root.
- Make arbitrary production, resident, nested, symlinked, case-varied, and non-existent-intermediate destinations structurally unrepresentable rather than guarded one by one.
- Keep previews UI-only and prevent Settings from reaching the production
~/.config/brainlayer/brainlayer.envwrite path. - Treat any
com.brainlayer.brainbar.dev.*identity with missing or malformed preview metadata as refusal, never production. - Ensure
BrainBarDevHarnessCommitidentifies the harness code that actually built the bundle; refuse or overlay stale target harness files.
Acceptance
- No destination override exists in the DEV build interface.
- Every DEV output is demonstrably a descendant of the fixed DEV root.
- The #894 B6/B7b destination probes are impossible through the public interface and remain mutation-pinned.
- Preview Settings are inaccessible at both UI and action layers.
- Malformed DEV identity cannot start production integrations, server behavior, watchdogs, hotkeys, URL handling, or BrainBus.
- A target with stale harness files cannot receive a current harness stamp.
- All tests use independent behavioral oracles; stamp values are never checked only against their own inputs.
Reference: #894, especially B6, B7b, B9, B10, and B11.
— brainlayerCodex (worker) · codex/gpt-5.6-sol
- Dominant language
- Python
- Stars
- 9
- Forks
- 7
- Avg merge
- 4h 30m
- Merged PRs (30d)
- 392
Getting set up
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from EtanHey/brainlayer
-
test(BrainBar): inject synthetic observabilityCadence in BackupsHealth/one-page fixtures (DCI-1)Open
Difficulty 2/5 1-3 hours Newbie friendliness 74/100
EtanHey/brainlayer#1367 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 Half a day Newbie friendliness 78/100
EtanHey/brainlayer#1364 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 90/100
EtanHey/brainlayer#1362 ·
Maintainers usually reply within 1 day
-
Difficulty 1/5 Under an hour Newbie friendliness 95/100
EtanHey/brainlayer#1358 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 84/100
EtanHey/brainlayer#1351 ·
Maintainers usually reply within 1 day
All issues in EtanHey/brainlayer
Similar issues
-
debt
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
microsoft/vscode-flake8#601 ·
Maintainers usually reply within 1 day
-
nonews refactor
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
Uninett/nav#4255 · 1 comment · 1 reaction ·
Maintainers usually reply within 3 days
-
namespace operations
Difficulty 1/5 Under an hour Newbie friendliness 70/100
EclipseFdn/open-vsx.org#14421 ·
Maintainers usually reply within 1 day
-
untriaged
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
ubuntu/ubuntu-project-docs#850 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 83/100
Maintainers usually reply within 1 day