@prover-coder-ai/docker-git 1.0.15 → 1.0.17

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.
Files changed (71) hide show
  1. package/.package.json.release.bak +1 -1
  2. package/CHANGELOG.md +12 -0
  3. package/README.md +5 -6
  4. package/dist/main.js +24 -7
  5. package/dist/main.js.map +1 -1
  6. package/dist/src/docker-git/cli/parser-auth.js +32 -12
  7. package/dist/src/docker-git/cli/parser.js +1 -1
  8. package/dist/src/docker-git/cli/usage.js +4 -3
  9. package/dist/src/docker-git/menu-actions.js +24 -8
  10. package/dist/src/docker-git/menu-auth-data.js +90 -0
  11. package/dist/src/docker-git/menu-auth-helpers.js +20 -0
  12. package/dist/src/docker-git/menu-auth.js +159 -0
  13. package/dist/src/docker-git/menu-buffer-input.js +9 -0
  14. package/dist/src/docker-git/menu-create.js +5 -9
  15. package/dist/src/docker-git/menu-input-handler.js +70 -28
  16. package/dist/src/docker-git/menu-input-utils.js +47 -0
  17. package/dist/src/docker-git/menu-labeled-env.js +33 -0
  18. package/dist/src/docker-git/menu-project-auth-claude.js +43 -0
  19. package/dist/src/docker-git/menu-project-auth-data.js +165 -0
  20. package/dist/src/docker-git/menu-project-auth.js +124 -0
  21. package/dist/src/docker-git/menu-render-auth.js +45 -0
  22. package/dist/src/docker-git/menu-render-common.js +26 -0
  23. package/dist/src/docker-git/menu-render-layout.js +14 -0
  24. package/dist/src/docker-git/menu-render-project-auth.js +37 -0
  25. package/dist/src/docker-git/menu-render-select.js +29 -7
  26. package/dist/src/docker-git/menu-render.js +4 -13
  27. package/dist/src/docker-git/menu-select-actions.js +66 -0
  28. package/dist/src/docker-git/menu-select-load.js +12 -0
  29. package/dist/src/docker-git/menu-select-order.js +21 -0
  30. package/dist/src/docker-git/menu-select-runtime.js +41 -9
  31. package/dist/src/docker-git/menu-select-view.js +15 -0
  32. package/dist/src/docker-git/menu-select.js +11 -82
  33. package/dist/src/docker-git/menu-shared.js +86 -17
  34. package/dist/src/docker-git/menu-types.js +2 -0
  35. package/dist/src/docker-git/menu.js +13 -1
  36. package/dist/src/docker-git/program.js +3 -3
  37. package/package.json +1 -1
  38. package/src/docker-git/cli/parser-auth.ts +46 -16
  39. package/src/docker-git/cli/parser-mcp-playwright.ts +0 -1
  40. package/src/docker-git/cli/parser.ts +1 -1
  41. package/src/docker-git/cli/usage.ts +4 -3
  42. package/src/docker-git/menu-actions.ts +32 -13
  43. package/src/docker-git/menu-auth-data.ts +184 -0
  44. package/src/docker-git/menu-auth-helpers.ts +30 -0
  45. package/src/docker-git/menu-auth.ts +311 -0
  46. package/src/docker-git/menu-buffer-input.ts +18 -0
  47. package/src/docker-git/menu-create.ts +5 -11
  48. package/src/docker-git/menu-input-handler.ts +104 -28
  49. package/src/docker-git/menu-input-utils.ts +85 -0
  50. package/src/docker-git/menu-labeled-env.ts +37 -0
  51. package/src/docker-git/menu-project-auth-claude.ts +70 -0
  52. package/src/docker-git/menu-project-auth-data.ts +292 -0
  53. package/src/docker-git/menu-project-auth.ts +271 -0
  54. package/src/docker-git/menu-render-auth.ts +65 -0
  55. package/src/docker-git/menu-render-common.ts +67 -0
  56. package/src/docker-git/menu-render-layout.ts +30 -0
  57. package/src/docker-git/menu-render-project-auth.ts +70 -0
  58. package/src/docker-git/menu-render-select.ts +44 -5
  59. package/src/docker-git/menu-render.ts +5 -29
  60. package/src/docker-git/menu-select-actions.ts +150 -0
  61. package/src/docker-git/menu-select-load.ts +33 -0
  62. package/src/docker-git/menu-select-order.ts +37 -0
  63. package/src/docker-git/menu-select-runtime.ts +59 -10
  64. package/src/docker-git/menu-select-view.ts +25 -0
  65. package/src/docker-git/menu-select.ts +22 -195
  66. package/src/docker-git/menu-shared.ts +135 -20
  67. package/src/docker-git/menu-types.ts +71 -2
  68. package/src/docker-git/menu.ts +26 -1
  69. package/src/docker-git/program.ts +10 -4
  70. package/tests/docker-git/entrypoint-auth.test.ts +1 -1
  71. package/tests/docker-git/menu-select-order.test.ts +73 -0
@@ -0,0 +1,73 @@
1
+ import { describe, expect, it } from "vitest"
2
+
3
+ import { buildSelectLabels } from "../../src/docker-git/menu-render-select.js"
4
+ import { sortItemsByLaunchTime } from "../../src/docker-git/menu-select-order.js"
5
+ import type { SelectProjectRuntime } from "../../src/docker-git/menu-types.js"
6
+ import { makeProjectItem } from "./fixtures/project-item.js"
7
+
8
+ const makeRuntime = (
9
+ overrides: Partial<SelectProjectRuntime> = {}
10
+ ): SelectProjectRuntime => ({
11
+ running: false,
12
+ sshSessions: 0,
13
+ startedAtIso: null,
14
+ startedAtEpochMs: null,
15
+ ...overrides
16
+ })
17
+
18
+ const emitProof = (message: string): void => {
19
+ process.stdout.write(`[issue-57-proof] ${message}\n`)
20
+ }
21
+
22
+ describe("menu-select order", () => {
23
+ it("sorts projects by last container start time (newest first)", () => {
24
+ const newest = makeProjectItem({ projectDir: "/home/dev/.docker-git/newest", displayName: "org/newest" })
25
+ const older = makeProjectItem({ projectDir: "/home/dev/.docker-git/older", displayName: "org/older" })
26
+ const neverStarted = makeProjectItem({ projectDir: "/home/dev/.docker-git/never", displayName: "org/never" })
27
+ const startedNewest = "2026-02-17T11:30:00Z"
28
+ const startedOlder = "2026-02-16T07:15:00Z"
29
+ const runtimeByProject: Readonly<Record<string, SelectProjectRuntime>> = {
30
+ [newest.projectDir]: makeRuntime({
31
+ running: true,
32
+ sshSessions: 1,
33
+ startedAtIso: startedNewest,
34
+ startedAtEpochMs: Date.parse(startedNewest)
35
+ }),
36
+ [older.projectDir]: makeRuntime({
37
+ running: true,
38
+ sshSessions: 0,
39
+ startedAtIso: startedOlder,
40
+ startedAtEpochMs: Date.parse(startedOlder)
41
+ }),
42
+ [neverStarted.projectDir]: makeRuntime()
43
+ }
44
+
45
+ const sorted = sortItemsByLaunchTime([neverStarted, older, newest], runtimeByProject)
46
+ expect(sorted.map((item) => item.projectDir)).toEqual([
47
+ newest.projectDir,
48
+ older.projectDir,
49
+ neverStarted.projectDir
50
+ ])
51
+ emitProof("sorting by launch time works: newest container is selected first")
52
+ })
53
+
54
+ it("shows container launch timestamp in select labels", () => {
55
+ const item = makeProjectItem({ projectDir: "/home/dev/.docker-git/example", displayName: "org/example" })
56
+ const startedAtIso = "2026-02-17T09:45:00Z"
57
+ const runtimeByProject: Readonly<Record<string, SelectProjectRuntime>> = {
58
+ [item.projectDir]: makeRuntime({
59
+ running: true,
60
+ sshSessions: 2,
61
+ startedAtIso,
62
+ startedAtEpochMs: Date.parse(startedAtIso)
63
+ })
64
+ }
65
+
66
+ const connectLabel = buildSelectLabels([item], 0, "Connect", runtimeByProject)[0]
67
+ const downLabel = buildSelectLabels([item], 0, "Down", runtimeByProject)[0]
68
+
69
+ expect(connectLabel).toContain("[started=2026-02-17 09:45 UTC]")
70
+ expect(downLabel).toContain("running, ssh=2, started=2026-02-17 09:45 UTC")
71
+ emitProof("UI labels show container start timestamp in Connect and Down views")
72
+ })
73
+ })