cdd-cli 4.0.0 → 4.1.0
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.es.md +29 -5
- package/README.md +29 -5
- package/dist/components/UsageMenu.js +1 -1
- package/dist/helpers/appState.js +26 -0
- package/dist/helpers/dockerService/serviceComponents/containerExec.js +211 -0
- package/dist/hooks/creation/useContainerCreation.js +25 -6
- package/dist/hooks/useContainerCommandRouter.js +12 -2
- package/dist/hooks/useControls.js +5 -0
- package/dist/hooks/useShellMode.js +101 -0
- package/dist/index.js +3 -1
- package/package.json +4 -1
- package/.atl/skill-registry.md +0 -30
- package/.editorconfig +0 -12
- package/.eslintrc.json +0 -30
- package/.github/ISSUE_TEMPLATE/bug_report.md +0 -30
- package/.github/ISSUE_TEMPLATE/feature_request.md +0 -19
- package/.github/PULL_REQUEST_TEMPLATE/pull_request.md +0 -14
- package/.github/workflows/ci.yml +0 -32
- package/.github/workflows/docs.yml +0 -42
- package/.prettierignore +0 -4
- package/.prettierrc +0 -8
- package/.~lock.ROADMAP.md# +0 -1
- package/CHANGELOG.md +0 -216
- package/CODE_OF_CONDUCT.md +0 -12
- package/CONTRIBUTING.md +0 -35
- package/ROADMAP.md +0 -647
- package/SECURITY.md +0 -5
- package/__mocks__/ink.cjs +0 -17
- package/_config.yml +0 -13
- package/babel.config.cjs +0 -23
- package/coverage/clover.xml +0 -575
- package/coverage/coverage-final.json +0 -17
- package/coverage/lcov-report/ContainerCreationPrompt.jsx.html +0 -400
- package/coverage/lcov-report/ControlsHUD.jsx.html +0 -256
- package/coverage/lcov-report/base.css +0 -224
- package/coverage/lcov-report/block-navigation.js +0 -87
- package/coverage/lcov-report/components/ContainerCreationPrompt.jsx.html +0 -394
- package/coverage/lcov-report/components/PromptField.jsx.html +0 -229
- package/coverage/lcov-report/components/SuggestionPanel.jsx.html +0 -268
- package/coverage/lcov-report/components/index.html +0 -146
- package/coverage/lcov-report/favicon.png +0 -0
- package/coverage/lcov-report/helpers/constants.js.html +0 -352
- package/coverage/lcov-report/helpers/containerOptionsBuilder.js.html +0 -244
- package/coverage/lcov-report/helpers/dockerHubService.js.html +0 -310
- package/coverage/lcov-report/helpers/dockerService/serviceComponents/containerActions.js.html +0 -931
- package/coverage/lcov-report/helpers/dockerService/serviceComponents/containerList.js.html +0 -307
- package/coverage/lcov-report/helpers/dockerService/serviceComponents/index.html +0 -131
- package/coverage/lcov-report/helpers/imageNameUtils.js.html +0 -181
- package/coverage/lcov-report/helpers/index.html +0 -206
- package/coverage/lcov-report/helpers/logger.js.html +0 -424
- package/coverage/lcov-report/helpers/safeCall.js.html +0 -139
- package/coverage/lcov-report/helpers/validationHelpers.js.html +0 -346
- package/coverage/lcov-report/hooks/creation/index.html +0 -146
- package/coverage/lcov-report/hooks/creation/useContainerActions.js.html +0 -313
- package/coverage/lcov-report/hooks/creation/useContainerCreation.js.html +0 -982
- package/coverage/lcov-report/hooks/creation/useLogsViewer.js.html +0 -238
- package/coverage/lcov-report/hooks/debug/index.html +0 -116
- package/coverage/lcov-report/hooks/debug/useDebugLogs.js.html +0 -187
- package/coverage/lcov-report/hooks/index.html +0 -161
- package/coverage/lcov-report/hooks/navigation/index.html +0 -116
- package/coverage/lcov-report/hooks/navigation/useContainerSelection.js.html +0 -169
- package/coverage/lcov-report/hooks/useContainerCommandRouter.js.html +0 -454
- package/coverage/lcov-report/hooks/useControls.js.html +0 -868
- package/coverage/lcov-report/hooks/useEraseConfirmation.js.html +0 -202
- package/coverage/lcov-report/hooks/useExitHandler.js.html +0 -292
- package/coverage/lcov-report/index.html +0 -176
- package/coverage/lcov-report/prettify.css +0 -1
- package/coverage/lcov-report/prettify.js +0 -2
- package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
- package/coverage/lcov-report/sorter.js +0 -210
- package/coverage/lcov.info +0 -1163
- package/fix-imports.cjs +0 -54
- package/jest.config.cjs +0 -14
- package/src/App.jsx +0 -102
- package/src/components/ContainerCreationPrompt.jsx +0 -107
- package/src/components/ContainerList.jsx +0 -32
- package/src/components/ContainerRow.jsx +0 -84
- package/src/components/ContainerSection.jsx +0 -24
- package/src/components/ControlsHUD.jsx +0 -66
- package/src/components/Footer.jsx +0 -15
- package/src/components/Header.jsx +0 -41
- package/src/components/LogViewer.jsx +0 -36
- package/src/components/MessageFeedback.jsx +0 -25
- package/src/components/PromptField.jsx +0 -48
- package/src/components/StatsBar.jsx +0 -70
- package/src/components/SuggestionPanel.jsx +0 -61
- package/src/components/UsageMenu.jsx +0 -52
- package/src/helpers/appInfo.js +0 -23
- package/src/helpers/constants.js +0 -89
- package/src/helpers/containerOptionsBuilder.js +0 -53
- package/src/helpers/dockerHubService.js +0 -75
- package/src/helpers/dockerService/dockerService.js +0 -28
- package/src/helpers/dockerService/serviceComponents/containerActions.js +0 -282
- package/src/helpers/dockerService/serviceComponents/containerList.js +0 -74
- package/src/helpers/dockerService/serviceComponents/containerLogs.js +0 -60
- package/src/helpers/dockerService/serviceComponents/containerStats.js +0 -69
- package/src/helpers/dockerService/serviceComponents/imageUtils.js +0 -32
- package/src/helpers/exitWithMessage.js +0 -32
- package/src/helpers/imageNameUtils.js +0 -32
- package/src/helpers/logger.js +0 -112
- package/src/helpers/safeCall.js +0 -18
- package/src/helpers/validationHelpers.js +0 -87
- package/src/hooks/creation/useContainerActions.js +0 -89
- package/src/hooks/creation/useContainerCreation.js +0 -377
- package/src/hooks/creation/useLogsViewer.js +0 -51
- package/src/hooks/debug/useDebugLogs.js +0 -34
- package/src/hooks/navigation/useContainerSelection.js +0 -28
- package/src/hooks/useContainerCommandRouter.js +0 -123
- package/src/hooks/useContainerStats.js +0 -44
- package/src/hooks/useContainers.js +0 -26
- package/src/hooks/useControls.js +0 -263
- package/src/hooks/useEraseConfirmation.js +0 -39
- package/src/hooks/useExitHandler.js +0 -69
- package/src/index.js +0 -20
- package/test/ContainerCreationPrompt.dom.test.js +0 -313
- package/test/ControlsHUD.dom.test.js +0 -125
- package/test/SuggestionPanel.dom.test.js +0 -83
- package/test/constants.test.js +0 -41
- package/test/containerActions.test.js +0 -229
- package/test/containerList.test.js +0 -79
- package/test/containerOptionsBuilder.test.js +0 -36
- package/test/dockerHubService.test.js +0 -213
- package/test/jest.setup.js +0 -7
- package/test/logger.test.js +0 -58
- package/test/resolveImageTag.test.js +0 -26
- package/test/safeCall.test.js +0 -25
- package/test/useContainerCreation.dom.test.js +0 -567
- package/test/useContainerCreationHub.dom.test.js +0 -184
- package/test/useControls.dom.test.js +0 -519
- package/test/validationHelpers.test.js +0 -111
package/.atl/skill-registry.md
DELETED
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
# Skill Registry — CDD
|
|
2
|
-
|
|
3
|
-
Generated: 2026-04-25
|
|
4
|
-
|
|
5
|
-
## User Skills (from ~/.config/opencode/skills/)
|
|
6
|
-
|
|
7
|
-
| Skill | Trigger |
|
|
8
|
-
|-------|---------|
|
|
9
|
-
| branch-pr | Creating a pull request, opening a PR, or preparing changes for review |
|
|
10
|
-
| go-testing | Writing Go tests, using teatest, or adding test coverage |
|
|
11
|
-
| issue-creation | Creating a GitHub issue, reporting a bug, or requesting a feature |
|
|
12
|
-
| judgment-day | "judgment day", "review adversarial", "dual review", "juzgar", "que lo juzguen" |
|
|
13
|
-
| reporter | Creating a sprint report, updating CHANGELOG, or documenting completed work |
|
|
14
|
-
| sdd-apply | Orchestrator launches to implement one or more tasks from a change |
|
|
15
|
-
| sdd-archive | Orchestrator launches to archive a change after implementation and verification |
|
|
16
|
-
| sdd-design | Orchestrator launches to write or update the technical design for a change |
|
|
17
|
-
| sdd-explore | Orchestrator launches to think through a feature, investigate the codebase, or clarify requirements |
|
|
18
|
-
| sdd-propose | Orchestrator launches to create or update a proposal for a change |
|
|
19
|
-
| sdd-spec | Orchestrator launches to write or update specs for a change |
|
|
20
|
-
| sdd-tasks | Orchestrator launches to create or update the task breakdown for a change |
|
|
21
|
-
| sdd-verify | Orchestrator launches to verify a completed change |
|
|
22
|
-
| skill-creator | Creating a new skill, adding agent instructions, or documenting patterns for AI |
|
|
23
|
-
| skill-registry | "update skills", "skill registry", "actualizar skills", "update registry" |
|
|
24
|
-
|
|
25
|
-
## Project Conventions
|
|
26
|
-
|
|
27
|
-
- No project-level AGENTS.md / CLAUDE.md / .cursorrules found
|
|
28
|
-
- ESLint config: `.eslintrc.json` (eslint:recommended + plugin:react/recommended)
|
|
29
|
-
- No Prettier config detected — formatting via Babel only
|
|
30
|
-
- No TypeScript (plain JS/JSX with Babel)
|
package/.editorconfig
DELETED
package/.eslintrc.json
DELETED
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"env": {
|
|
3
|
-
"browser": true,
|
|
4
|
-
"node": true,
|
|
5
|
-
"es2021": true,
|
|
6
|
-
"jest": true
|
|
7
|
-
},
|
|
8
|
-
"extends": ["eslint:recommended", "plugin:react/recommended", "prettier"],
|
|
9
|
-
"parserOptions": {
|
|
10
|
-
"ecmaVersion": 2021,
|
|
11
|
-
"sourceType": "module",
|
|
12
|
-
"ecmaFeatures": { "jsx": true }
|
|
13
|
-
},
|
|
14
|
-
"rules": {
|
|
15
|
-
"no-unsafe-optional-chaining": "error",
|
|
16
|
-
"react/react-in-jsx-scope": "off",
|
|
17
|
-
"no-console": "off",
|
|
18
|
-
"react/prop-types": "warn",
|
|
19
|
-
"no-unused-vars": [
|
|
20
|
-
"warn",
|
|
21
|
-
{
|
|
22
|
-
"argsIgnorePattern": "^_",
|
|
23
|
-
"varsIgnorePattern": "^(?:_|React)$"
|
|
24
|
-
}
|
|
25
|
-
]
|
|
26
|
-
},
|
|
27
|
-
"settings": {
|
|
28
|
-
"react": { "version": "detect" }
|
|
29
|
-
}
|
|
30
|
-
}
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: Bug report
|
|
3
|
-
about: Create a report to help us improve
|
|
4
|
-
title: ''
|
|
5
|
-
labels: bug
|
|
6
|
-
assignees: ''
|
|
7
|
-
---
|
|
8
|
-
|
|
9
|
-
**Describe the bug**
|
|
10
|
-
A clear and concise description of what the bug is.
|
|
11
|
-
|
|
12
|
-
**To Reproduce**
|
|
13
|
-
Steps to reproduce the behavior:
|
|
14
|
-
1. Go to '...'
|
|
15
|
-
2. Run '...'
|
|
16
|
-
3. See error
|
|
17
|
-
|
|
18
|
-
**Expected behavior**
|
|
19
|
-
A clear and concise description of what you expected to happen.
|
|
20
|
-
|
|
21
|
-
**Screenshots or logs**
|
|
22
|
-
If applicable, add screenshots or logs to help explain your problem.
|
|
23
|
-
|
|
24
|
-
**Environment (please complete the following information):**
|
|
25
|
-
- OS: (e.g. Ubuntu 22.04)
|
|
26
|
-
- Node version: (e.g. 18.x)
|
|
27
|
-
- cdd-cli version: (e.g. 3.1.0)
|
|
28
|
-
|
|
29
|
-
**Additional context**
|
|
30
|
-
Add any other context about the problem here.
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: Feature request
|
|
3
|
-
about: Suggest an idea for this project
|
|
4
|
-
title: ''
|
|
5
|
-
labels: enhancement
|
|
6
|
-
assignees: ''
|
|
7
|
-
---
|
|
8
|
-
|
|
9
|
-
**Is your feature request related to a problem? Please describe.**
|
|
10
|
-
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
|
|
11
|
-
|
|
12
|
-
**Describe the solution you'd like**
|
|
13
|
-
A clear and concise description of what you want to happen.
|
|
14
|
-
|
|
15
|
-
**Describe alternatives you've considered**
|
|
16
|
-
A clear and concise description of any alternative solutions or features you've considered.
|
|
17
|
-
|
|
18
|
-
**Additional context**
|
|
19
|
-
Add any other context or screenshots about the feature request here.
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
<!-- Please replace the placeholders and remove this comment -->
|
|
2
|
-
## Summary
|
|
3
|
-
|
|
4
|
-
What does this PR change and why?
|
|
5
|
-
|
|
6
|
-
## Checklist
|
|
7
|
-
|
|
8
|
-
- [ ] I have read the contributing guidelines
|
|
9
|
-
- [ ] Tests added / updated
|
|
10
|
-
- [ ] Documentation updated
|
|
11
|
-
|
|
12
|
-
## Related issues
|
|
13
|
-
|
|
14
|
-
Closes: # (issue)
|
package/.github/workflows/ci.yml
DELETED
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
name: CI
|
|
2
|
-
|
|
3
|
-
on:
|
|
4
|
-
push:
|
|
5
|
-
branches: [ main ]
|
|
6
|
-
pull_request:
|
|
7
|
-
branches: [ main ]
|
|
8
|
-
|
|
9
|
-
jobs:
|
|
10
|
-
test-and-build:
|
|
11
|
-
runs-on: ubuntu-latest
|
|
12
|
-
steps:
|
|
13
|
-
- name: Checkout repository
|
|
14
|
-
uses: actions/checkout@v4
|
|
15
|
-
|
|
16
|
-
- name: Setup Node.js
|
|
17
|
-
uses: actions/setup-node@v4
|
|
18
|
-
with:
|
|
19
|
-
node-version: '18'
|
|
20
|
-
cache: 'npm'
|
|
21
|
-
|
|
22
|
-
- name: Install dependencies
|
|
23
|
-
run: npm ci
|
|
24
|
-
|
|
25
|
-
- name: Lint
|
|
26
|
-
run: npm run lint
|
|
27
|
-
|
|
28
|
-
- name: Run tests
|
|
29
|
-
run: npm test
|
|
30
|
-
|
|
31
|
-
- name: Build
|
|
32
|
-
run: npm run build
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
name: Build and deploy docs
|
|
2
|
-
|
|
3
|
-
on:
|
|
4
|
-
workflow_run:
|
|
5
|
-
workflows: ["CI"]
|
|
6
|
-
types:
|
|
7
|
-
- completed
|
|
8
|
-
branches:
|
|
9
|
-
- main
|
|
10
|
-
|
|
11
|
-
jobs:
|
|
12
|
-
build-and-deploy:
|
|
13
|
-
if: ${{ github.event.workflow_run.conclusion == 'success' }}
|
|
14
|
-
runs-on: ubuntu-latest
|
|
15
|
-
permissions:
|
|
16
|
-
contents: write
|
|
17
|
-
pages: write
|
|
18
|
-
id-token: write
|
|
19
|
-
|
|
20
|
-
steps:
|
|
21
|
-
- name: Checkout repository
|
|
22
|
-
uses: actions/checkout@v4
|
|
23
|
-
|
|
24
|
-
- name: Setup Node.js
|
|
25
|
-
uses: actions/setup-node@v4
|
|
26
|
-
with:
|
|
27
|
-
node-version: '18'
|
|
28
|
-
|
|
29
|
-
- name: Install dependencies
|
|
30
|
-
run: npm ci
|
|
31
|
-
|
|
32
|
-
- name: Build docs
|
|
33
|
-
run: npm run docs
|
|
34
|
-
|
|
35
|
-
- name: Ensure .nojekyll
|
|
36
|
-
run: mkdir -p docs && touch docs/.nojekyll
|
|
37
|
-
|
|
38
|
-
- name: Deploy to GitHub Pages (push to gh-pages)
|
|
39
|
-
uses: peaceiris/actions-gh-pages@v3
|
|
40
|
-
with:
|
|
41
|
-
github_token: ${{ secrets.GITHUB_TOKEN }}
|
|
42
|
-
publish_dir: ./docs
|
package/.prettierignore
DELETED
package/.prettierrc
DELETED
package/.~lock.ROADMAP.md#
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
,caertos,Cocheroc,28.04.2026 21:42,/home/caertos/.local/share/onlyoffice;
|
package/CHANGELOG.md
DELETED
|
@@ -1,216 +0,0 @@
|
|
|
1
|
-
# Changelog
|
|
2
|
-
|
|
3
|
-
All notable changes to this project will be documented in this file.
|
|
4
|
-
|
|
5
|
-
Format follows [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
|
|
6
|
-
|
|
7
|
-
## [Unreleased]
|
|
8
|
-
- Nothing yet.
|
|
9
|
-
|
|
10
|
-
## [4.0.0] - 2026-04-28
|
|
11
|
-
|
|
12
|
-
### 🎉 Major release — Guided creation wizard
|
|
13
|
-
|
|
14
|
-
This release transforms CDD from a monitoring dashboard into a fully guided container creation experience. The wizard now knows what images need, searches Docker Hub live, and automates the tedious parts.
|
|
15
|
-
|
|
16
|
-
### Added
|
|
17
|
-
- **Interactive creation wizard** (`C` to open):
|
|
18
|
-
- 20 curated image profiles with offline autocomplete (↑↓ to navigate, Enter to select)
|
|
19
|
-
- `[Tab]` on image field searches Docker Hub live — race-condition safe (AbortController + requestId)
|
|
20
|
-
- `[searching Docker Hub...]` loading indicator in suggestion panel
|
|
21
|
-
- Hub results replace static suggestions; typing reverts to local list instantly
|
|
22
|
-
- `[Tab]` on env vars field inserts next suggested `KEY=VALUE` from the image profile
|
|
23
|
-
- Context-sensitive controls HUD — shows available keys at every step
|
|
24
|
-
- **Smart default tags** — no more `:latest` failures:
|
|
25
|
-
- `postgres:17-alpine`, `redis:7-alpine`, `nginx:1.27-alpine`, `mysql:8.0`, and 16 more
|
|
26
|
-
- `resolveImageTag()` pure helper — preserves explicit user tags, applies profile default otherwise
|
|
27
|
-
- **Required env vars included in suggestions** — `MYSQL_ROOT_PASSWORD`, `POSTGRES_PASSWORD`, `SA_PASSWORD`, etc. are now the first entries Tab inserts, so required fields are never missed
|
|
28
|
-
- **Bilingual README** — English (`README.md`) and Spanish (`README.es.md`)
|
|
29
|
-
|
|
30
|
-
### Fixed
|
|
31
|
-
- Images like `postgres`, `mysql`, `mariadb` no longer fail with 404 due to missing `:latest` tag
|
|
32
|
-
- Required env vars were never suggested by Tab autocomplete — now always appear first
|
|
33
|
-
|
|
34
|
-
## [3.2.5] - 2026-04-27
|
|
35
|
-
|
|
36
|
-
### Added
|
|
37
|
-
- Context-sensitive controls HUD in the creation wizard: shows available keys per step
|
|
38
|
-
- Step 0: `[Tab] Search Hub · [↑↓] Browse · [Enter] Confirm · [Esc] Cancel`
|
|
39
|
-
- Step 0 with suggestions: `[↑↓] Navigate · [Enter] Select · [Esc] Cancel`
|
|
40
|
-
- Steps 1–3: `[Enter] Continue · [Esc] Cancel`
|
|
41
|
-
- `ControlsHUD` component with pure `getHints(step, hasSuggestions, isSearchingHub)` function
|
|
42
|
-
|
|
43
|
-
## [3.2.4] - 2026-04-27
|
|
44
|
-
|
|
45
|
-
### Fixed
|
|
46
|
-
- Images no longer default to `:latest` — each profile now ships a correct stable tag (e.g. `postgres:17-alpine`, `redis:7-alpine`, `nginx:1.27-alpine`)
|
|
47
|
-
- Selecting an image suggestion or confirming step 0 auto-appends the correct tag when none is typed
|
|
48
|
-
|
|
49
|
-
### Added
|
|
50
|
-
- `resolveImageTag(imageName)` pure helper — preserves explicit user tags, appends profile default otherwise
|
|
51
|
-
|
|
52
|
-
## [3.2.3] - 2026-04-27
|
|
53
|
-
|
|
54
|
-
### Added
|
|
55
|
-
- Docker Hub live search: pressing Tab on image name field searches Docker Hub in real time
|
|
56
|
-
- `searchDockerHub()` helper with AbortSignal.timeout(5000), race-condition guard (AbortController + requestId)
|
|
57
|
-
- `formatHubResult()` formatter: `nginx [★ official] [1B+ pulls]`
|
|
58
|
-
- `isSearchingHub` loading state with `[searching Docker Hub...]` indicator in SuggestionPanel
|
|
59
|
-
- Hub results replace static suggestions; typing reverts immediately to static list
|
|
60
|
-
|
|
61
|
-
## [3.2.2] - 2026-04-27
|
|
62
|
-
|
|
63
|
-
### Added
|
|
64
|
-
|
|
65
|
-
- Interactive suggestion panel in container creation wizard (step 0) — shows filtered image suggestions below the input as the user types, navigable with ↑↓ and selectable with Enter
|
|
66
|
-
- `IMAGE_PROFILES` expanded from 6 to 20 curated images (nginx, node, python, postgres, mysql, mongo, redis, kafka, elasticsearch, minio, wordpress, and more) each with `requiredEnv`, `defaultPort`, and `suggestedEnv`
|
|
67
|
-
- `SuggestionPanel` component (`src/components/SuggestionPanel.jsx`) — offline, non-overlay panel with scrollable window and focused-row highlight
|
|
68
|
-
- Contextual env var hints in step 3 — when a known image is selected, suggested variables (e.g. `POSTGRES_USER`, `POSTGRES_DB`) are shown as guidance
|
|
69
|
-
- `updateImageInput()`, `moveSuggestionSelection()`, `applyFocusedSuggestion()` functions in `useContainerCreation` hook for autocomplete state management
|
|
70
|
-
- Ink mock infrastructure (`__mocks__/ink.cjs`) with `triggerInput` helper for reliable keyboard routing tests
|
|
71
|
-
|
|
72
|
-
### Changed
|
|
73
|
-
|
|
74
|
-
- `useControls.js` keyboard routing — ↑↓ and Enter are conditionally intercepted for suggestion navigation only on step 0 when suggestions are visible; all other steps preserve existing behavior
|
|
75
|
-
- `ContainerCreationPrompt.jsx` — renders `SuggestionPanel` below the image input field on step 0
|
|
76
|
-
|
|
77
|
-
## [3.2.1] - 2026-04-27
|
|
78
|
-
|
|
79
|
-
### Changed
|
|
80
|
-
|
|
81
|
-
- Unified `normalizeImageName` into a single `src/helpers/imageNameUtils.js` module; removed duplicate definitions from `validationHelpers.js` and `containerActions.js`.
|
|
82
|
-
- Added Prettier and EditorConfig for automatic code formatting enforcement; 37 source files reformatted to consistent style (single quotes, 2-space indent, trailing commas ES5).
|
|
83
|
-
- Added `eslint-config-prettier` to disable ESLint rules that conflict with Prettier.
|
|
84
|
-
- Added `format` and `format:check` npm scripts.
|
|
85
|
-
|
|
86
|
-
### Fixed
|
|
87
|
-
|
|
88
|
-
- Missing `.jsx` extension on `import App from './App'` in `src/index.js` (ESM correctness).
|
|
89
|
-
|
|
90
|
-
## [3.2.0] - 2026-04-25
|
|
91
|
-
|
|
92
|
-
### Added
|
|
93
|
-
|
|
94
|
-
- `IMAGE_PROFILES` map in `src/helpers/constants.js` — defines `requiredEnv` and `defaultPort` per image type (mysql, mariadb, postgres, mongo, mssql, redis).
|
|
95
|
-
- `DB_IMAGES` constant exported from `src/helpers/constants.js`.
|
|
96
|
-
- Contextual validation in wizard: if image matches a known profile, required env vars are enforced before creation.
|
|
97
|
-
- Auto-assigned port feedback: after successful container creation, the success message shows which ports were mapped (e.g. `Ports: 3306→3306/tcp`).
|
|
98
|
-
- Image name normalization: tags and registry prefixes are stripped before profile lookup (`mysql:8`, `docker.io/library/postgres:16` → `mysql`, `postgres`).
|
|
99
|
-
- New test files: `test/containerOptionsBuilder.test.js`, `test/useControls.dom.test.js`.
|
|
100
|
-
|
|
101
|
-
### Fixed
|
|
102
|
-
|
|
103
|
-
- `validateEnvVars()` was never called in the container creation wizard step 3 — now connected and blocks on invalid input.
|
|
104
|
-
- Env var parsing split on all `=` characters — fixed to split only on the first `=`, preserving values like `JWT=abc=def`.
|
|
105
|
-
- `dbImages` was hardcoded in `useControls.js` — now imports `DB_IMAGES` from constants.
|
|
106
|
-
|
|
107
|
-
## [3.1.9] - 2026-04-11
|
|
108
|
-
|
|
109
|
-
### Changed
|
|
110
|
-
|
|
111
|
-
- CI: added lint step to the test-and-build job; docs deploy now waits for CI to pass successfully via `workflow_run` trigger.
|
|
112
|
-
|
|
113
|
-
## [3.1.8] - 2026-04-11
|
|
114
|
-
|
|
115
|
-
### Refactored
|
|
116
|
-
|
|
117
|
-
- Removed dead code: `actionHelpers`, `useLogsStream`, and esbuild-related artifacts that were no longer in use.
|
|
118
|
-
- Consolidated Babel configuration into a single env-aware file, eliminating duplicate/split config files.
|
|
119
|
-
- Decomposed `useControls` god hook into focused single-responsibility hooks, each owning one concern.
|
|
120
|
-
- Extracted `useContainerStats` hook from `ContainerRow` to separate data-fetching from rendering.
|
|
121
|
-
- Set Jest default environment to `node`; `jsdom` is now opt-in per test file, reducing unnecessary DOM overhead.
|
|
122
|
-
|
|
123
|
-
### Changed
|
|
124
|
-
|
|
125
|
-
- Removed generated JSDoc output from the repository; added the generated docs directory to `.gitignore`.
|
|
126
|
-
- Enabled `react/prop-types` ESLint rule project-wide and resolved all resulting warnings.
|
|
127
|
-
- Rewrote `README.md` and `CONTRIBUTING.md`: consolidated overlapping content, removed duplication, and updated both for accuracy.
|
|
128
|
-
- Various `docs(style)` and `docs` commits between v3.1.5 and the refactor wave: dark theme, sticky nav, landing page rewrite, CSS consolidation, and English translation for the JSDoc home (GitHub Pages site).
|
|
129
|
-
|
|
130
|
-
## [3.1.5] - 2025-10-18
|
|
131
|
-
_Note: I'm sorry about the issues you've run into; this is a brand-new app and I'm still learning, but I'm moving as quickly as I can to deliver a quality experience._
|
|
132
|
-
|
|
133
|
-
### Added
|
|
134
|
-
|
|
135
|
-
- `safeCall` utility to safely invoke optional callbacks and avoid uncaught errors from consumer callbacks.
|
|
136
|
-
- PropTypes added to core React components for runtime prop validation (ContainerRow, ContainerList, LogViewer, StatsBar, ContainerCreationPrompt, PromptField, MessageFeedback, Header, ContainerSection).
|
|
137
|
-
|
|
138
|
-
### Changed
|
|
139
|
-
|
|
140
|
-
- Container creation now inspects image `EXPOSE` declarations and auto-binds ports when the user leaves the ports step empty, reusing the next free host port to avoid conflicts (e.g. second `nginx` gets `81:80`).
|
|
141
|
-
- CLI clears the terminal when starting and again after exiting with `q` for a cleaner shell experience.
|
|
142
|
-
- Replaced direct optional callback invocations and stream destruction calls with `safeCall` in several modules (`containerLogs`, `useLogsStream`, `useLogsViewer`, `useContainerCreation`, `useContainerActions`, `LogViewer`).
|
|
143
|
-
- ESLint config updated to include `jest` env and allow keeping `import React` for build compatibility.
|
|
144
|
-
- Extracted common magic numbers into `src/helpers/constants.js` and replaced hardcoded values across the codebase:
|
|
145
|
-
- `REFRESH_INTERVALS.CONTAINER_LIST` (3000)
|
|
146
|
-
- `REFRESH_INTERVALS.CONTAINER_STATS` (1500)
|
|
147
|
-
- `MESSAGE_TIMEOUTS.SHORT` (2000) and `MESSAGE_TIMEOUTS.DEFAULT` (3000)
|
|
148
|
-
- `EXIT_DELAY` (500)
|
|
149
|
-
- `TIMEOUTS.CONTAINER_OP` (30000) and `TIMEOUTS.PULL_IMAGE` (300000)
|
|
150
|
-
- Files updated to use constants: `useContainers`, `ContainerRow`, `actionHelpers`, `useControls`, `exitWithMessage`, `containerActions`.
|
|
151
|
-
|
|
152
|
-
### Fixed
|
|
153
|
-
|
|
154
|
-
- Added unit tests for `safeCall` and adjusted several components to silence lint warnings (unused variables).
|
|
155
|
-
- Clamp `StatsBar` CPU/memory percentages to avoid negative repeat errors when streaming container stats (also refreshed component JSDoc to note the clamping).
|
|
156
|
-
|
|
157
|
-
### Testing
|
|
158
|
-
|
|
159
|
-
- Added additional unit tests for Docker service functions and hooks. All tests pass locally (5 suites, 26 tests).
|
|
160
|
-
- Removed generated `dist/` artifacts and deleted obsolete test files that referenced incompatible test helpers.
|
|
161
|
-
|
|
162
|
-
Incoming fixes and smaller tests / docs updates
|
|
163
|
-
|
|
164
|
-
## [3.1.4] - 2025-10-17
|
|
165
|
-
|
|
166
|
-
### Changed
|
|
167
|
-
|
|
168
|
-
- Documentation cleanup: translate `FIXES_APPLIED.md` to English, remove Spanish duplicate and references to internal audit doc.
|
|
169
|
-
- No functional code changes.
|
|
170
|
-
|
|
171
|
-
## [3.1.3] - 2025-10-17
|
|
172
|
-
|
|
173
|
-
### Fixed
|
|
174
|
-
|
|
175
|
-
- Addressed critical security and stability issues identified in internal audit.
|
|
176
|
-
- Improved Docker service components robustness (`containerActions`, `containerList`, `containerLogs`, `containerStats`).
|
|
177
|
-
- Strengthened validation helpers and extended unit tests.
|
|
178
|
-
|
|
179
|
-
### Added
|
|
180
|
-
|
|
181
|
-
- Documentation: `FIXES_APPLIED.md` summarizing analysis and mitigations.
|
|
182
|
-
|
|
183
|
-
### Changed
|
|
184
|
-
|
|
185
|
-
- Minor code refactors and clarifications across components and hooks.
|
|
186
|
-
|
|
187
|
-
## [3.1.2] - 2025-10-16
|
|
188
|
-
|
|
189
|
-
### Changed
|
|
190
|
-
|
|
191
|
-
- Docs cleanup: remove Spanish inline comments; add English JSDoc across source files.
|
|
192
|
-
|
|
193
|
-
## [3.1.0] - 2025-10-16
|
|
194
|
-
|
|
195
|
-
### Added
|
|
196
|
-
|
|
197
|
-
- Modularized hooks: `useContainerCreation`, `useContainerActions`, `useLogsViewer`.
|
|
198
|
-
- Validation helpers and unit tests for port validation.
|
|
199
|
-
- CI workflow (GitHub Actions) and README improvements.
|
|
200
|
-
|
|
201
|
-
### Changed
|
|
202
|
-
|
|
203
|
-
- Container creation UX: English feedback messages, mandatory/validated port input, DB image warnings.
|
|
204
|
-
- Added erase action (key `E`) with confirmation to delete containers.
|
|
205
|
-
- Normalized source imports to include explicit `.js`/`.jsx` extensions for ESM compatibility.
|
|
206
|
-
|
|
207
|
-
### Fixed
|
|
208
|
-
|
|
209
|
-
- Various runtime & build issues after modularization (import fixes, exposing container action functions, creation flow wiring).
|
|
210
|
-
|
|
211
|
-
## [3.1.1] - 2025-10-16
|
|
212
|
-
|
|
213
|
-
### Fixed
|
|
214
|
-
|
|
215
|
-
- Minor docs typo fixes and README global install note added.
|
|
216
|
-
|
package/CODE_OF_CONDUCT.md
DELETED
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
# Contributor Covenant Code of Conduct
|
|
2
|
-
|
|
3
|
-
This project follows the Contributor Covenant Code of Conduct. By participating, you agree to abide by its terms.
|
|
4
|
-
|
|
5
|
-
Please see https://www.contributor-covenant.org/ for the full text.
|
|
6
|
-
## Code of Conduct
|
|
7
|
-
|
|
8
|
-
This project follows the [Contributor Covenant](https://www.contributor-covenant.org/).
|
|
9
|
-
|
|
10
|
-
Be respectful, inclusive, and kind. Harassment, discrimination, or abusive language will not be tolerated.
|
|
11
|
-
|
|
12
|
-
If you experience or witness unacceptable behavior, please contact the maintainers.
|
package/CONTRIBUTING.md
DELETED
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
# Contributing to CDD-CLI
|
|
2
|
-
|
|
3
|
-
Thanks for your interest in contributing! Here are the guidelines to make collaboration smooth.
|
|
4
|
-
|
|
5
|
-
## Getting started
|
|
6
|
-
|
|
7
|
-
1. Fork the repo and create a branch for your feature or fix:
|
|
8
|
-
|
|
9
|
-
```bash
|
|
10
|
-
git checkout -b feat/my-feature
|
|
11
|
-
```
|
|
12
|
-
|
|
13
|
-
2. Install dependencies and verify everything works before making changes:
|
|
14
|
-
|
|
15
|
-
```bash
|
|
16
|
-
npm install
|
|
17
|
-
npm test
|
|
18
|
-
npm run build
|
|
19
|
-
```
|
|
20
|
-
|
|
21
|
-
## Guidelines
|
|
22
|
-
|
|
23
|
-
- Keep changes small and focused — one concern per PR.
|
|
24
|
-
- Write tests for any new behavior and ensure existing tests pass (`npm test`).
|
|
25
|
-
- Run `npm run build` and verify the CLI starts (`node dist/index.js`) before opening a PR.
|
|
26
|
-
- Use [Conventional Commits](https://www.conventionalcommits.org/) for commit messages.
|
|
27
|
-
- For large or design-changing contributions, open an issue first to discuss the approach.
|
|
28
|
-
|
|
29
|
-
## Opening a Pull Request
|
|
30
|
-
|
|
31
|
-
- Describe the motivation and what changed.
|
|
32
|
-
- Link any related issues.
|
|
33
|
-
- Tag reviewers if applicable.
|
|
34
|
-
|
|
35
|
-
We appreciate clear, well-tested contributions.
|