[GUI] apps/host tests: assertPrivate rejects the SDDL alias LA for the built-in Administrator
I maintainer di solito rispondono entro 4 giorni
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 2/5
- Tempo stimato
- 1-3 ore
- Idoneità per principianti
- 76/100
- Tipo di issue
- Bug
- Chiarezza
- Specificata chiaramente
- Stato di attività
- Attiva
- Stack tecnologico
- javascript, node.js
Direzione di ricerca
Inizia da apps/host/tests/helpers/assert-private.mjs e confrontalo con la correzione di Terminal indicata in #3302 e PR #3406. Esegui node --test tests/model-providers.test.mjs su Windows come Amministratore integrato per riprodurre la discrepanza. Il lavoro è completo quando il controllo accetta un’ACL protetta con un ACE per l’utente corrente, quando Windows riporta il trustee come LA o come SID completo.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Area
[GUI] (the desktop app)
Desktop app, Terminal or source?
Source (START-HERE.bat, setup.sh or a build)
What happened
apps/host/tests/helpers/assert-private.mjs:13 compares the raw DACL text to a string built from the current SID:
assert.equal(dacl, `D:PAI(A;;FA;;;${currentUserSid()})`, `ACL is not owner-only: ${sddl}`);
On a host whose account is the built-in Administrator (RID 500), makePrivate() writes the correct protected ACL with icacls /grant:r *<SID>:F /inheritance:r, but Windows renders that trustee as the SDDL alias LA in Get-Acl. The assertion then fails on an ACL that is exactly what the product code just wrote. This is the same class as #3302 and PR #3406, which fixed the Terminal's Python check and its tests by resolving the trustee; the desktop host's Node helper still compares the text.
Expected: the check passes when the file has one protected ACE naming only the current user, however Windows spells that trustee (LA or the full SID).
Suggested fix: resolve each trustee field to a string SID before comparing (as the Terminal fix does with ConvertStringSidToSidW + ConvertSidToStringSidW), or compare with EqualSid. As a minimal host-side change, accept LA when currentUserSid() ends in -500.
Smallest steps or command that reproduce it
On Windows, signed in as the built-in Administrator (SID ends in -500), from apps/host:
node --test tests/model-providers.test.mjs
Actual:
✖ connections persist, redact keys, retain unchanged keys, and validate endpoints/models
AssertionError [ERR_ASSERTION]: ACL is not owner-only: O:LAG:S-1-5-21-<domain>-513D:PAI(A;;FA;;;LA)
+ actual 'D:PAI(A;;FA;;;LA)'
- expected 'D:PAI(A;;FA;;;S-1-5-21-<domain>-500)'
at assertPrivate (tests/helpers/assert-private.mjs:13:10)
Get-Acl on the same file shows a single FullControl entry for the account, and whoami /user shows S-1-5-21-<domain>-500. The ACL is private; only the notation differs.
Reproduction status
Reproduced locally
Strata version
Strata 0.2.12 (tag v0.2.12, commit 123bad4a) · engine 0.1.58
Graphics card, memory and system
RTX 4090 24 GB · 253 GB RAM · Intel Core Ultra 9 285K · Windows 11 25H2 (build 26200.8655) · account is the built-in Administrator (RID 500)
Logs
node --test tests/model-providers.test.mjs output, one failure:
ℹ fail 1
✖ failing tests:
test at tests\model-providers.test.mjs:10:1
✖ connections persist, redact keys, retain unchanged keys, and validate endpoints/models
AssertionError [ERR_ASSERTION]: ACL is not owner-only: O:LAG:S-1-5-21-3783197670-1434537263-246626064-513D:PAI(A;;FA;;;LA)
- Lingua principale
- C++
- Stelle
- 11.6k
- Fork
- 1k
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Preparare l'ambiente
Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di Niko1221/Strata
-
[Engine] Two prompt block scorers enabled at once: WMMA silently wins and no log line is printedAperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
Niko1221/Strata#5693 · 2 commenti ·
I maintainer di solito rispondono entro 4 giorni
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
I maintainer di solito rispondono entro 4 giorni
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
I maintainer di solito rispondono entro 4 giorni
-
needs-format
Difficoltà 1/5 1-3 ore Idoneità per principianti 85/100
Niko1221/Strata#5632 · 1 commento ·
I maintainer di solito rispondono entro 4 giorni
-
needs-format
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 90/100
Niko1221/Strata#5631 · 1 commento ·
I maintainer di solito rispondono entro 4 giorni
Tutte le issue di Niko1221/Strata
Issue simili
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
pocoproject/poco#5664 ·
I maintainer di solito rispondono entro 2 giorni
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
charmplusplus/charm#4210 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 88/100
cp-algorithms/cp-algorithms#1748 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 66/100
I maintainer di solito rispondono entro 1 giorno