create-byan-agent 2.60.0 → 2.60.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/install/lib/ownership.js +24 -5
- package/install/package.json +1 -1
- package/package.json +1 -1
package/install/lib/ownership.js
CHANGED
|
@@ -11,8 +11,12 @@
|
|
|
11
11
|
// PRIMAIRE de son createur, pas celui du dossier ;
|
|
12
12
|
// 2. avec le setgid pose, le fichier herite du groupe mais ressort en 644 car
|
|
13
13
|
// le umask 022 retire l ecriture au groupe -> il faut umask(0o002) ;
|
|
14
|
-
// 3. le setgid se propage aux sous-dossiers crees
|
|
15
|
-
//
|
|
14
|
+
// 3. le setgid se propage aux sous-dossiers crees DANS un dossier qui le
|
|
15
|
+
// porte. La propagation ne vaut donc que pour ce qui est cree APRES la
|
|
16
|
+
// pose : sur une arborescence deja ecrite, il faut le donner a chaque
|
|
17
|
+
// dossier. Mesure du 2026-08-12 sur un serveur reel : avec le bit sur la
|
|
18
|
+
// seule racine, 1 dossier sur 1187 le portait et un sous-dossier cree
|
|
19
|
+
// ensuite ressortait au groupe primaire de son createur ;
|
|
16
20
|
// 4. fs.constants n expose aucune constante S_ISGID, d ou le litteral 0o2000.
|
|
17
21
|
//
|
|
18
22
|
// Toutes les dependances a effet de bord (fs, platform, exec, umask) sont
|
|
@@ -167,9 +171,24 @@ function ensureOwnership(rootPath, target, options) {
|
|
|
167
171
|
function ouvrirAuGroupe(p, st) {
|
|
168
172
|
if (!groupWritable || typeof fs.chmodSync !== 'function') return;
|
|
169
173
|
const actuel = Number(st.mode) & 0o7777;
|
|
170
|
-
|
|
171
|
-
//
|
|
172
|
-
|
|
174
|
+
const estDossier = Boolean(st.isDirectory && st.isDirectory());
|
|
175
|
+
// g+w partout ; sur un dossier, g+x en plus (sinon le groupe ne peut pas le
|
|
176
|
+
// traverser meme en ayant le droit d'y ecrire) ET le setgid.
|
|
177
|
+
//
|
|
178
|
+
// LE SETGID VA SUR CHAQUE DOSSIER, PAS SEULEMENT SUR LA RACINE.
|
|
179
|
+
//
|
|
180
|
+
// Mesure du 2026-08-12 sur un serveur reel, avec --group docker : le gid
|
|
181
|
+
// etait bien pose sur les 7831 entrees, mais un seul dossier sur 1187
|
|
182
|
+
// portait le setgid — la racine. Un sous-dossier cree ensuite sous _byan/
|
|
183
|
+
// ressortait en gid 1003 (le groupe primaire de son createur) et mode 755.
|
|
184
|
+
// Le groupe partage tenait donc pour ce qui existait, et lachait pour tout
|
|
185
|
+
// ce qui serait ecrit apres : exactement ce dont un projet a plusieurs
|
|
186
|
+
// mains a besoin.
|
|
187
|
+
//
|
|
188
|
+
// Le bit ne se propage qu'AUX DOSSIERS CREES DANS un dossier qui le porte.
|
|
189
|
+
// Sur une arborescence deja posee, les sous-dossiers existent deja : il faut
|
|
190
|
+
// le leur donner un par un, pendant ce meme parcours.
|
|
191
|
+
const vise = actuel | 0o020 | (estDossier ? 0o010 | SETGID : 0);
|
|
173
192
|
if (vise === actuel) return;
|
|
174
193
|
try {
|
|
175
194
|
fs.chmodSync(p, vise);
|
package/install/package.json
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "create-byan-agent",
|
|
3
|
-
"version": "2.60.
|
|
3
|
+
"version": "2.60.1",
|
|
4
4
|
"description": "BYAN v2.8 - Intelligent AI agent creator with ELO trust system + scientific fact-check + Hermes universal dispatcher + native Claude Code integration (hooks, skills, MCP server). Multi-platform (Claude Code, Codex). Merise Agile + TDD + 71 Mantras. ~54% LLM cost savings.",
|
|
5
5
|
"main": "src/index.js",
|
|
6
6
|
"bin": {
|