-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathprogress.txt
More file actions
54 lines (44 loc) · 5.14 KB
/
Copy pathprogress.txt
File metadata and controls
54 lines (44 loc) · 5.14 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
# Progress Log
This file tracks AI-assisted development progress.
Each entry documents: date, feature, decisions, files changed, tests, and concerns.
---
[2026-02-05] #1 feat: Create TypeScript TUI app for macOS container management
- Files: package.json, tsconfig.json, eslint.config.js, jest.config.js, .prettierrc, src/types/index.ts, src/services/container-cli.ts, src/services/health-check.ts, src/hooks/useContainerData.ts, src/hooks/useKeyboard.ts, src/components/*.tsx, src/index.tsx, src/__tests__/*.ts
- Changes: Complete TUI application using Ink (React for CLI) with container/image/network/volume management, vim-style navigation, search/filter, real-time refresh, help overlay
- Decisions: Used Ink v5 for React-based TUI, wrapped macOS `container` CLI commands, used inverse text for selection highlighting
- Issues: None - all acceptance criteria met
[2026-02-05] #3 chore: Set up semantic releases and project documentation
- Files: package.json, .releaserc.json, commitlint.config.js, .husky/commit-msg, .github/workflows/release.yml, .github/workflows/ci.yml, README.md, AGENT.md, progress.txt
- Changes: Configured semantic-release with changelog/npm/git plugins, added commitlint with conventional commits, set up husky commit-msg hook, created CI/release workflows, wrote comprehensive README and AGENT.md
- Decisions: Used pnpm-compatible husky v9, semantic-release v24 with standard plugins, commitlint strict mode for subject-case
- Issues: None
[2026-02-05] #5 chore: Configure semantic-release commit message line length limits
- Files: commitlint.config.js
- Changes: Disabled body-max-line-length and footer-max-line-length rules to allow semantic-release notes and Co-Authored-By footers
- Decisions: Set rules to severity 0 (disabled) rather than increasing limit to avoid arbitrary caps
- Issues: None
[2026-02-05] #7 chore: Configure npm publishing to use @rotorsoft namespace
- Files: package.json, README.md
- Changes: Updated package name to @rotorsoft/contui, added publishConfig.access=public for scoped public publishing, added npm version badge to README
- Decisions: Scoped packages require explicit public access; semantic-release npm plugin handles scoped packages without config changes
- Issues: None - CI npm token must have @rotorsoft scope permissions
[2026-02-05] #9 fix: Add npm-only dist packaging and release update UX
- Files: package.json, jest.config.js, README.md, src/components/App.tsx, src/components/StatusBar.tsx, src/hooks/useReleaseCheck.ts, src/utils/app-version.ts, src/types/ink-testing-library.d.ts, src/__tests__/release-check.test.ts, src/__tests__/status-bar.test.tsx
- Changes: Restricted npm package contents to dist, added version display and async release check in the UI, and documented npm install/run steps with supporting tests.
- Decisions: Pulled current version from env/package.json and used npm registry latest endpoint for update checks.
- Issues: Release workflow may still need updates to publish; requires approval to modify .github/workflows.
[2026-02-11] #12 feat: Add container creation with image selection, port mapping, and naming
- Files: src/types/index.ts, src/services/container-cli.ts, src/components/RunContainerDialog.tsx, src/components/App.tsx, src/hooks/useKeyboard.ts, src/components/HelpOverlay.tsx, src/__tests__/container-cli.test.ts, README.md
- Changes: Added `runContainer` CLI method with `buildRunArgs` helper, multi-field RunContainerDialog (image, name, ports, env), `n` shortcut on Containers/Images tabs with image pre-fill from Images tab
- Decisions: Exported `buildRunArgs` as standalone function for testability; used Tab key to cycle between fields in dialog; comma-separated ports/env input
- Issues: None
[2026-02-12] #14 feat: Sort lists by name and simplify status bar command display
- Files: src/components/ContainersView.tsx, ImagesView.tsx, NetworksView.tsx, VolumesView.tsx, StatusBar.tsx, HelpOverlay.tsx, src/hooks/useKeyboard.ts, src/components/App.tsx, src/__tests__/sorting.test.tsx, src/__tests__/status-bar.test.tsx
- Changes: Added alphabetical sorting to all list views, refactored status bar to use highlighted shortcut format (inverse text), renamed `n:run` to `c:create` across keyboard handler, action handler, and help overlay
- Decisions: Used `<Text inverse>` for shortcut highlighting; merged "run" and "create" actions under single "create" action routed by active tab; label "exit" for stop action to embed "x" shortcut
- Issues: None
[2026-02-13] #16 feat: Display human-readable relative dates in container, image, and volume views
- Files: src/utils/format-date.ts, src/__tests__/format-date.test.ts, src/components/ContainersView.tsx, src/components/ImagesView.tsx, src/components/DetailView.tsx
- Changes: Created `formatRelativeDate` utility that shows "just now", "X minutes/hours/days ago" for recent dates and short date format for older dates. Applied in ContainersView, ImagesView (via column render functions), and DetailView (auto-detects ISO date strings).
- Decisions: Added optional `now` parameter for testability instead of fake timers; used UTC timezone for short date fallback to avoid locale issues; kept raw ISO strings in data model, format only at display time
- Issues: None