deel-local-cli 1.5.4 → 1.5.5
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/README.en.md +4 -3
- package/README.md +4 -3
- package/package.json +1 -1
- package/src/ui/office.js +100 -12
package/README.en.md
CHANGED
|
@@ -100,7 +100,7 @@ This page is the **summary**. Each section links to the detail behind it.
|
|
|
100
100
|
| [Speed and spend](docs/en/tuning.md) | Per-stage effort · the prefix cache · context length |
|
|
101
101
|
| [Safety and corporate review](docs/en/safety.md) | Undo · working scope · audit log · the review package |
|
|
102
102
|
| [Configuration](docs/en/config.md) · [Development](docs/en/develop.md) | Env vars · run flags · running the tests · folder layout |
|
|
103
|
-
| [Release notes](docs/en/releases.md) | [1.5.4](docs/en/releases.md#154) · [1.5.3](docs/en/releases.md#153) · [1.5.2](docs/en/releases.md#152) · [1.5.1](docs/en/releases.md#151) · [1.5.0](docs/en/releases.md#150) · [1.4.3](docs/en/releases.md#143) · [1.4.2](docs/en/releases.md#142) · [1.4.1](docs/en/releases.md#141) · [1.4.0](docs/en/releases.md#140) · [1.3.0](docs/en/releases.md#130) · [1.2.0](docs/en/releases.md#120) |
|
|
103
|
+
| [Release notes](docs/en/releases.md) | [1.5.5](docs/en/releases.md#155) · [1.5.4](docs/en/releases.md#154) · [1.5.3](docs/en/releases.md#153) · [1.5.2](docs/en/releases.md#152) · [1.5.1](docs/en/releases.md#151) · [1.5.0](docs/en/releases.md#150) · [1.4.3](docs/en/releases.md#143) · [1.4.2](docs/en/releases.md#142) · [1.4.1](docs/en/releases.md#141) · [1.4.0](docs/en/releases.md#140) · [1.3.0](docs/en/releases.md#130) · [1.2.0](docs/en/releases.md#120) |
|
|
104
104
|
|
|
105
105
|
---
|
|
106
106
|
|
|
@@ -929,7 +929,7 @@ Stored in `~/.deel/config.json`. A `.deel/config.json` in the project folder tak
|
|
|
929
929
|
## Development
|
|
930
930
|
|
|
931
931
|
```bash
|
|
932
|
-
npm test Full suite (3,
|
|
932
|
+
npm test Full suite (3,693 checks)
|
|
933
933
|
npm run coverage Which lines the tests actually execute
|
|
934
934
|
npm run verify Import + network checks only
|
|
935
935
|
npm run bench Edit success rate
|
|
@@ -981,7 +981,8 @@ so one run tells you everything.
|
|
|
981
981
|
|
|
982
982
|
| Version | What changed |
|
|
983
983
|
|---|---|
|
|
984
|
-
| **[1.5.
|
|
984
|
+
| **[1.5.5](docs/en/releases.md#155)** | A plan fills the room — "only one person" was a bug, not a design |
|
|
985
|
+
| [1.5.4](docs/en/releases.md#154) | A day passes in the room — morning to night, a wall clock, a cold coffee |
|
|
985
986
|
| [1.5.3](docs/en/releases.md#153) | Three things a Mac user tripped over — newline hint, office stays put, one `/motion` |
|
|
986
987
|
| [1.5.2](docs/en/releases.md#152) | Everything else the adversarial reviews turned up — where the screen was lying |
|
|
987
988
|
| [1.5.1](docs/en/releases.md#151) | Two of the things 1.5.0 added shipped broken. This fixes them |
|
package/README.md
CHANGED
|
@@ -101,7 +101,7 @@
|
|
|
101
101
|
| [속도와 씀씀이](docs/ko/tuning.md) | 단계별 추론 강도 · 프리픽스 캐시 · 컨텍스트 길이 |
|
|
102
102
|
| [안전망과 사내 반입](docs/ko/safety.md) | 되돌리기 · 작업 범위 · 감사기록 · 심사 서류 |
|
|
103
103
|
| [설정](docs/ko/config.md) · [개발](docs/ko/develop.md) | 환경변수 · 실행 옵션 · 검사 돌리기 · 폴더 구조 |
|
|
104
|
-
| [릴리스 노트](docs/ko/releases.md) | [1.5.4](docs/ko/releases.md#154) · [1.5.3](docs/ko/releases.md#153) · [1.5.2](docs/ko/releases.md#152) · [1.5.1](docs/ko/releases.md#151) · [1.5.0](docs/ko/releases.md#150) · [1.4.3](docs/ko/releases.md#143) · [1.4.2](docs/ko/releases.md#142) · [1.4.1](docs/ko/releases.md#141) · [1.4.0](docs/ko/releases.md#140) · [1.3.0](docs/ko/releases.md#130) · [1.2.0](docs/ko/releases.md#120) |
|
|
104
|
+
| [릴리스 노트](docs/ko/releases.md) | [1.5.5](docs/ko/releases.md#155) · [1.5.4](docs/ko/releases.md#154) · [1.5.3](docs/ko/releases.md#153) · [1.5.2](docs/ko/releases.md#152) · [1.5.1](docs/ko/releases.md#151) · [1.5.0](docs/ko/releases.md#150) · [1.4.3](docs/ko/releases.md#143) · [1.4.2](docs/ko/releases.md#142) · [1.4.1](docs/ko/releases.md#141) · [1.4.0](docs/ko/releases.md#140) · [1.3.0](docs/ko/releases.md#130) · [1.2.0](docs/ko/releases.md#120) |
|
|
105
105
|
|
|
106
106
|
---
|
|
107
107
|
|
|
@@ -907,7 +907,7 @@ deel sbom --only sbom # SBOM 한 장만
|
|
|
907
907
|
## 개발
|
|
908
908
|
|
|
909
909
|
```bash
|
|
910
|
-
npm test 전체 검증 (3,
|
|
910
|
+
npm test 전체 검증 (3,693항목)
|
|
911
911
|
npm run coverage 검사가 소스의 어디를 밟았는지
|
|
912
912
|
npm run verify 반입·통신 검증만
|
|
913
913
|
npm run bench 편집 성공률 측정
|
|
@@ -972,7 +972,8 @@ zip 은 진짜 `unzip` 으로, tar 는 진짜 `tar` 가 만든 것을 읽혀 교
|
|
|
972
972
|
|
|
973
973
|
| 판 | 무엇이 바뀌었나 |
|
|
974
974
|
|---|---|
|
|
975
|
-
| **[1.5.
|
|
975
|
+
| **[1.5.5](docs/ko/releases.md#155)** | 계획을 세우면 방이 찬다 — 「한 명뿐」은 고정이 아니라 버그였다 |
|
|
976
|
+
| [1.5.4](docs/ko/releases.md#154) | 방에 하루가 흐른다 — 아침·낮·노을·밤 · 벽시계 · 식은 커피 |
|
|
976
977
|
| [1.5.3](docs/ko/releases.md#153) | 맥에서 걸린 세 가지 — 줄바꿈 안내 · 사무실이 안 사라짐 · `/motion` 하나로 |
|
|
977
978
|
| [1.5.2](docs/ko/releases.md#152) | 적대적 리뷰가 남긴 나머지를 전부 정리했다 — 화면이 거짓말하던 자리들 |
|
|
978
979
|
| [1.5.1](docs/ko/releases.md#151) | 1.5.0 이 넣은 것 두 개가 망가진 채 나갔다. 그것을 고친다 |
|
package/package.json
CHANGED
package/src/ui/office.js
CHANGED
|
@@ -76,6 +76,7 @@ const C = {
|
|
|
76
76
|
나무: 137, 나무어둠: 94, 나무진: 58,
|
|
77
77
|
쇠: 145, 쇠어둠: 102, 쇠진: 59, 검정: 235,
|
|
78
78
|
화면: 45, 화면꺼짐: 239, 화면글: 123, 살: 223,
|
|
79
|
+
화면쉼: 24, 화면글쉼: 66,
|
|
79
80
|
머리: [52, 240, 94, 130], 옷: [67, 131, 71, 97],
|
|
80
81
|
밤: 17, 별: 226, 낮: 111, 구름: 255,
|
|
81
82
|
새벽: 153, 노을: 173, 노을구름: 217, 별흐림: 250,
|
|
@@ -173,17 +174,34 @@ const 자세들 = {
|
|
|
173
174
|
졸기: 자리짜기([빈, 빈, 빈, ' hhhhhh ', ' hhffffffhh ', ' ffffff '],
|
|
174
175
|
['SSSSSSSSSS', 'SSSSSSSSSS']),
|
|
175
176
|
대기: 자리짜기(사람, ['SSSSSSSSSS', 'SSSSSSSSSS']),
|
|
177
|
+
/*
|
|
178
|
+
* 아직 차례가 안 온 일.
|
|
179
|
+
*
|
|
180
|
+
* 처음에는 화면을 아예 꺼 뒀다. "다섯이 동시에 도는 것처럼 보이면 거짓말"
|
|
181
|
+
* 이라는 이유였는데, 결과는 **꺼진 모니터 앞에 넷이 굳어 앉아 있는 방**
|
|
182
|
+
* 이었다. 정직하려다 이 화면을 켠 이유를 죽인 셈이다.
|
|
183
|
+
*
|
|
184
|
+
* 그래서 이 사람들도 움직인다 — 다만 화면이 **흐리다.** 밝은 화면이
|
|
185
|
+
* 지금 도는 것, 흐린 화면이 맡았지만 아직 차례가 안 온 것이다. 구분은
|
|
186
|
+
* 남기고 방은 살린다.
|
|
187
|
+
*/
|
|
188
|
+
쉬기A: 자리짜기([빈, ...사람.slice(0, 5)], ['GGGGGGGGGG', 'SSSSSSSSSS']),
|
|
189
|
+
쉬기B: 자리짜기([빈, 빈, ...사람.slice(0, 4)], ['SSSSSSSSSS', 'GGGGGGGGGG']),
|
|
176
190
|
빈자리: 자리짜기([빈, 빈, 빈, 빈, 빈, 빈], ['SSSSSSSSSS', 'SSSSSSSSSS']),
|
|
177
191
|
};
|
|
178
192
|
const 자리폭 = 18;
|
|
179
193
|
const 자리높이 = 14;
|
|
180
194
|
|
|
181
195
|
function 자리색(자세, 머리, 옷) {
|
|
182
|
-
const
|
|
196
|
+
const 빈것 = 자세 === '빈자리';
|
|
197
|
+
// 차례를 기다리는 자리는 사람도 책상도 멀쩡하다. 흐린 것은 화면뿐이다.
|
|
198
|
+
const 쉼 = 자세 === '쉬기A' || 자세 === '쉬기B';
|
|
183
199
|
return {
|
|
184
200
|
h: 머리, f: C.살, b: 옷,
|
|
185
|
-
M: C.검정,
|
|
186
|
-
|
|
201
|
+
M: C.검정,
|
|
202
|
+
S: 빈것 ? C.화면꺼짐 : 쉼 ? C.화면쉼 : C.화면,
|
|
203
|
+
G: 쉼 ? C.화면글쉼 : C.화면글,
|
|
204
|
+
D: 빈것 ? C.나무어둠 : C.나무, d: 빈것 ? C.나무진 : C.나무어둠,
|
|
187
205
|
};
|
|
188
206
|
}
|
|
189
207
|
|
|
@@ -383,23 +401,54 @@ export function 사무실줄들(상태, 폭) {
|
|
|
383
401
|
const 왼쪽 = 15;
|
|
384
402
|
const 자리수 = Math.max(1, Math.floor((가로 - 왼쪽 - 2) / (자리폭 + 1)));
|
|
385
403
|
/*
|
|
386
|
-
* 자리보다 사람이 많으면 그냥 잘려
|
|
387
|
-
* 셋이 도는 것이 **똑같은 그림**이 됐다.
|
|
388
|
-
*
|
|
404
|
+
* 자리보다 사람이 많으면 앉히지 못한다. 예전에는 그냥 잘려 나가서, 좁은
|
|
405
|
+
* 화면에서 둘이 도는 것과 셋이 도는 것이 **똑같은 그림**이 됐다.
|
|
406
|
+
*
|
|
407
|
+
* 이제 못 앉은 사람은 **방을 돌아다닌다.** 자리가 모자라 서 있는 것이
|
|
408
|
+
* 실제로 일어나는 일이고, 화면에서도 그렇게 보이는 편이 낫다. 마지막 자리
|
|
409
|
+
* 책상의 넘침 표시는 그대로 둔다 — 걷는 사람도 다 못 그릴 만큼 많을 때가
|
|
410
|
+
* 있어서다.
|
|
411
|
+
*/
|
|
412
|
+
/*
|
|
413
|
+
* 몇은 앉고 몇은 서성인다.
|
|
389
414
|
*
|
|
390
|
-
*
|
|
391
|
-
*
|
|
415
|
+
* 자리가 모자라면 당연히 못 앉는다. 그런데 자리가 남아도 셋 이상이면 한
|
|
416
|
+
* 명은 일어나 있게 둔다 — 다 앉아만 있으면 사무실이 아니라 독서실이다.
|
|
417
|
+
* 사람 수는 그대로고, 그중 하나가 자리에 없을 뿐이다.
|
|
418
|
+
*
|
|
419
|
+
* 앞에서부터 앉힌다. 맨 앞이 **지금 도는 일**이라 그 사람은 늘 자리에
|
|
420
|
+
* 있어야 한다 — 일하는 중인 사람이 방을 돌아다니면 그게 거짓말이다.
|
|
392
421
|
*/
|
|
393
|
-
const
|
|
394
|
-
|
|
422
|
+
const 걷는수 = Math.min(4, Math.max(
|
|
423
|
+
일꾼들.length - 자리수,
|
|
424
|
+
일꾼들.length >= 3 ? 1 : 0));
|
|
425
|
+
const 앉는것 = 일꾼들.slice(0, Math.max(1, 일꾼들.length - 걷는수));
|
|
426
|
+
const 넘친자리 = 앉는것.length > 자리수;
|
|
395
427
|
for (let i = 0; i < 자리수; i++) {
|
|
396
428
|
const x = 왼쪽 + i * (자리폭 + 1);
|
|
397
429
|
const y = 세로 - 자리높이;
|
|
398
|
-
const 그사람 =
|
|
430
|
+
const 그사람 = 앉는것[i];
|
|
431
|
+
/*
|
|
432
|
+
* 자리마다 박자를 어긋나게 둔다.
|
|
433
|
+
*
|
|
434
|
+
* 예전에는 `틱/5` 하나를 온 방이 같이 봤다. 그래서 세 사람이 **한 몸처럼**
|
|
435
|
+
* 동시에 자판을 두드렸다 — 사람 셋이 아니라 톱니 셋으로 보인다. 자리
|
|
436
|
+
* 번호만큼 박자를 밀어 주면 그 자리에서 사무실이 된다.
|
|
437
|
+
*/
|
|
438
|
+
const 짝 = Math.floor((틱 + i * 4) / 5) % 2 === 0;
|
|
439
|
+
/*
|
|
440
|
+
* 차례를 기다리는 사람은 **더 느리게** 움직인다.
|
|
441
|
+
*
|
|
442
|
+
* 보기에도 그편이 맞고(바쁜 사람과 한가한 사람이 같은 박자로 움직이면
|
|
443
|
+
* 누가 바쁜지 안 보인다), 값도 싸다. 사람 하나가 1픽셀 움직이면 그 자리
|
|
444
|
+
* 세 줄이 통째로 다시 나가므로, 박자를 늦추는 것이 곧 나가는 양이다.
|
|
445
|
+
*/
|
|
446
|
+
const 쉬는짝 = Math.floor((틱 + i * 7) / 9) % 2 === 0;
|
|
399
447
|
const 자세 = !그사람 ? '빈자리'
|
|
400
448
|
: 그사람.갈래 === '쓰기' ? (짝 ? '치기A' : '치기B')
|
|
401
449
|
: 그사람.갈래 === '읽기' ? (짝 ? '읽기A' : '읽기B')
|
|
402
|
-
: 그사람.갈래 === '졸기' ? '졸기'
|
|
450
|
+
: 그사람.갈래 === '졸기' ? '졸기'
|
|
451
|
+
: 그사람.갈래 === '기다림' ? (쉬는짝 ? '쉬기A' : '쉬기B') : '대기';
|
|
403
452
|
p.올리기(x, y, 자세들[자세], 자리색(자세, C.머리[i % 4], C.옷[i % 4]));
|
|
404
453
|
// 마지막 자리인데 뒤에 더 있으면, 책상 모서리에 넘침 표시를 남긴다.
|
|
405
454
|
if (넘친자리 && i === 자리수 - 1) p.칠하기(x + 자리폭 - 2, y + 자리높이 - 3, 2, 2, C.넘침);
|
|
@@ -427,6 +476,30 @@ export function 사무실줄들(상태, 폭) {
|
|
|
427
476
|
for (let n = 0; n < 종이몫; n++) p.칠하기(x + 13 - n * 4, y + 9, 3, 1, C.종이);
|
|
428
477
|
}
|
|
429
478
|
|
|
479
|
+
/*
|
|
480
|
+
* ── 자리를 못 잡은 사람은 방을 돌아다닌다 ───────────────────────────────
|
|
481
|
+
*
|
|
482
|
+
* 예전에는 자리보다 사람이 많으면 그냥 잘려 나갔다 — 넷이 도는 것과 여덟이
|
|
483
|
+
* 도는 것이 똑같은 그림이었다. 앉을 자리가 없으면 서 있는 것이 실제로
|
|
484
|
+
* 일어나는 일이니, 화면에서도 그렇게 보이는 편이 낫다.
|
|
485
|
+
*
|
|
486
|
+
* 사람마다 걸음이 다르다. 다 같은 속도로 가면 줄지어 행진하는 것처럼
|
|
487
|
+
* 보여서, 사람이 아니라 눈금자로 읽힌다.
|
|
488
|
+
*/
|
|
489
|
+
{
|
|
490
|
+
for (let j = 0; j < 걷는수; j++) {
|
|
491
|
+
const 속도 = 2 + (j % 3);
|
|
492
|
+
const 걸음 = Math.floor((틱 + j * 17) / 속도);
|
|
493
|
+
// 벽 밖에서 들어왔다 반대쪽으로 나간다. 화면 안에서 뿅 사라지면
|
|
494
|
+
// 걷는 것이 아니라 깜빡이는 것으로 보인다.
|
|
495
|
+
const 나아간것 = (걸음 + j * 23) % (가로 + 6) - 3;
|
|
496
|
+
const x = j % 2 === 0 ? 나아간것 : 가로 - 3 - 나아간것;
|
|
497
|
+
const 발 = 걸음 % 2 === 0 ? 'l l' : ' l ';
|
|
498
|
+
p.올리기(x, 벽 + 1, [' h ', 'bbb', 발],
|
|
499
|
+
{ h: C.살, b: C.옷[j % 4], l: C.머리[j % 4] });
|
|
500
|
+
}
|
|
501
|
+
}
|
|
502
|
+
|
|
430
503
|
|
|
431
504
|
return p.줄들();
|
|
432
505
|
}
|
|
@@ -561,6 +634,21 @@ export function 상태만들기(session, 일감, 틱 = 0, 할일들 = [], 도는
|
|
|
561
634
|
for (let i = 0; i < Math.max(0, 도는하위); i++) 일꾼들.push({ 갈래: '대기' });
|
|
562
635
|
}
|
|
563
636
|
|
|
637
|
+
/*
|
|
638
|
+
* 남은 할 일도 이 방의 사람이다.
|
|
639
|
+
*
|
|
640
|
+
* 「계획을 세웠는데도 한 명뿐이냐」는 말을 들었다. 맞는 말이었다 — 자리는
|
|
641
|
+
* '지금 도는 일' 만 셌는데 deel 은 한 번에 하나씩 하므로 늘 하나였고,
|
|
642
|
+
* 계획 다섯 개는 화이트보드 쪽지로만 있고 방은 텅 비어 있었다.
|
|
643
|
+
*
|
|
644
|
+
* 남은 할 일은 이 방이 **떠맡은 일감**이다. 사람으로 앉힌다. 대신 화면은
|
|
645
|
+
* 꺼 둔다 — 다섯이 동시에 돌고 있다고 말하면 그건 거짓말이라서다.
|
|
646
|
+
* 켜진 화면이 지금 도는 것, 꺼진 화면이 아직 차례가 안 온 것이다.
|
|
647
|
+
*/
|
|
648
|
+
for (let i = 0; i < Math.max(0, 할일들.filter((t) => t.state !== 'done').length); i++) {
|
|
649
|
+
일꾼들.push({ 갈래: '기다림' });
|
|
650
|
+
}
|
|
651
|
+
|
|
564
652
|
return {
|
|
565
653
|
일꾼들,
|
|
566
654
|
걸린초,
|