@tenyokjs/devdevian-cli 0.5.0-alpha.1 → 0.6.0-alpha.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/README.md +27 -2
- package/VERSIONS.md +19 -1
- package/bin/devdevian.mjs +1 -0
- package/lib/appearance.mjs +8 -0
- package/lib/catalog.mjs +611 -0
- package/lib/client.mjs +14 -3
- package/lib/context-actions.mjs +2 -1
- package/lib/devi.mjs +137 -0
- package/lib/drafts.mjs +11 -4
- package/lib/picker.mjs +34 -12
- package/lib/tui-data.mjs +10 -2
- package/lib/tui-model.mjs +3 -1
- package/lib/tui.mjs +480 -81
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -17,7 +17,7 @@ Version-by-version changes and the customization roadmap: [CLI version history](
|
|
|
17
17
|
The default `devdevian` command and `devdevian tui` open an alternate terminal screen. Navigation, conversations, inline forms, previews and search update in that screen; exiting restores your normal terminal. The blue and purple layout adapts to the terminal size, with compact navigation below 90 columns. Minimum size: 60 columns × 18 rows.
|
|
18
18
|
|
|
19
19
|
- **Tab** switches between navigation, content and the command bar. **↑/↓** select; **Enter** opens; **Esc** goes back.
|
|
20
|
-
- **/** focuses search and commands: `/feed`, `/inbox`, `/search query`, `/open 142`, `/ask`, `/review`, `/drafts`, `/communities`, `/devices`, `/help`, `/logout`, `/quit`.
|
|
20
|
+
- **/** focuses search and commands: `/feed`, `/inbox`, `/search query`, `/open 142`, `/ask`, `/review`, `/drafts`, `/communities`, `/projects`, `/project 7`, `/events`, `/event 9`, `/devices`, `/help`, `/logout`, `/quit`.
|
|
21
21
|
- **←/→** switch conversation tabs; **Space** reads the selected reply/remark in full. **[ / ]** paginate; **Page Up/Down** scroll.
|
|
22
22
|
- **N** creates a conversation (a community on the Communities screen); **A** asks a question; **R** replies inside a conversation; **Shift+R** refreshes.
|
|
23
23
|
- **C** comments on snippet lines; **E/D** edit/delete your own ordinary replies or code feedback; **S** resolves/reopens a code remark or accepts/removes a reply as the solution (question/review author only); **!** reports selected code feedback.
|
|
@@ -31,12 +31,37 @@ Pages have a bounded 30-second in-memory cache. Refresh explicitly with Shift+R.
|
|
|
31
31
|
|
|
32
32
|
Ordinary reply deletion replaces your text with a placeholder and preserves nested replies. Its attachments become unavailable. Deleting an accepted answer reopens the question. D/d works on a selected reply or while reading it in full; confirmation is required.
|
|
33
33
|
|
|
34
|
+
## Projects and Events
|
|
35
|
+
|
|
36
|
+
Open **Projects** or **Events** from navigation, or use `/projects search words` and `/events search words`. **Enter** opens details; **[ / ]** paginate. **F** opens searchable filters: topic, project stage/owner/order, or event date, viewer timezone, upcoming/past and participation/order. **N** creates the current kind; **E** edits your own detail page. **X** lists available actions.
|
|
37
|
+
|
|
38
|
+
Projects include description, requested feedback, technology text, stage, links and team roles. Add team members as `@username | Role`, one per line. The project conversation opens in the existing discussion workspace. Event details show both your time and the organizer's timezone; **J** joins/leaves after confirmation. The meeting link follows server permissions. Organizers can edit, cancel and restore their events from **X**.
|
|
39
|
+
|
|
40
|
+
On logo/banner/screenshot fields, **Ctrl+O** opens the workspace file explorer. Choose PNG, JPEG, WebP or GIF files up to 4 MiB each, up to ten screenshots and 20 MiB total. Images stay local until you confirm the publication preview. Blank image fields preserve existing images when editing; `-` removes them. Screenshots with new paths replace the existing set. Images render in the browser; the terminal displays their presence rather than inline graphics.
|
|
41
|
+
|
|
42
|
+
Calendar export from **X** writes a new `.ics` file inside the open workspace and never overwrites an existing file. Import that file into your calendar application yourself.
|
|
43
|
+
|
|
44
|
+
Forms autosave locally. Successful upload IDs are retained if validation fails; edits require the latest server revision. If a publication response is lost, the CLI preserves the draft and asks you to check My projects / Hosting or attending before trying another copy. It does not automatically retry an uncertain write. Upload quotas and public visibility are the same as the website. These catalog operations are currently interactive TUI features, not separate script subcommands.
|
|
45
|
+
|
|
46
|
+
## Meet Devi
|
|
47
|
+
|
|
48
|
+
Devi is the Devdevian mascot: a small ghost with a laptop and an orbit. The terminal uses colored ASCII art, so it needs no image protocol or image downloads. A compact drawing is used when space is limited; authentication codes, addresses and controls take priority over decoration.
|
|
49
|
+
|
|
50
|
+
- **“Devi missed you.”** appears while checking your saved session and loading the first page. It disappears as soon as the page is ready; there is no minimum splash duration or fake progress bar.
|
|
51
|
+
- **“Devi saved you a seat.”** welcomes you to browser-approved sign-in. Sign-in instructions stay visible in small terminals.
|
|
52
|
+
- Empty feed, Inbox, communities, local drafts and search views show a still mascot with a relevant next step. Errors remain error states; they do not become a happy empty view.
|
|
53
|
+
- Subtle mode animates a blink only during startup work or pending browser approval. **Reduced motion** keeps the drawing static. Disable it entirely in **Appearance → Devi greeting**, with `devdevian appearance --welcome off`, or just for one launch with `devdevian tui --welcome off`.
|
|
54
|
+
- A failed session check offers **R / Enter** to retry the existing session. **Ctrl+C** exits during loading. Script commands and `--json` output never print the mascot.
|
|
55
|
+
|
|
56
|
+
All mascot captions are in English. Welcome preferences are local and compatible with existing 0.5.0 configuration files.
|
|
57
|
+
|
|
34
58
|
## Themes and layout
|
|
35
59
|
|
|
36
60
|
Open **Appearance** in navigation, type `/appearance`, or press **,** from a reading/list screen. Use arrows to choose options and Tab to move between them. The entire interface previews each change, including code colors, the file picker and navigation. Wide terminals include a sample card next to the controls.
|
|
37
61
|
|
|
38
62
|
- **Midnight** preserves the original blue/purple design; **Nebula** uses a deeper violet surface; **Daylight** is light; **Contrast** emphasizes readable foregrounds.
|
|
39
63
|
- Choose a **blue, violet, cyan or rose accent**, comfortable/compact lists, automatic/hidden sidebar, automatic/stacked review panels, rounded/straight frames and subtle/reduced loading indicators.
|
|
64
|
+
- **Devi greeting** shows/hides the terminal mascot on startup, sign-in and supported empty sections. Reduced motion keeps Devi still.
|
|
40
65
|
- **Ctrl+S** saves locally. **Esc** cancels the preview. **0** restores the default preview; save to keep it, or cancel to retain existing settings.
|
|
41
66
|
- Hidden navigation stays available with **Tab**. Stacked review panes switch with **W**. Narrow terminals automatically avoid a permanent sidebar and split review layout.
|
|
42
67
|
|
|
@@ -129,6 +154,6 @@ For local development use `devdevian login --host http://127.0.0.1:4173`. Remote
|
|
|
129
154
|
|
|
130
155
|
## Alpha scope
|
|
131
156
|
|
|
132
|
-
This alpha covers login/logout, inbox, paginated feeds and search, discussions and replies, questions, code review creation, line feedback and feedback threads/status, and community discovery, creation and private publication.
|
|
157
|
+
This alpha covers login/logout, inbox, paginated feeds and search, discussions and replies, questions, code review creation, line feedback and feedback threads/status, and community discovery, creation and private publication. Project/event creation, editing, media uploads and participation are available in the TUI. Profile editing and moderation remain available in the browser. There is no offline mode or automatic GitHub repository synchronization.
|
|
133
158
|
|
|
134
159
|
Source, contributions and issue reporting: [Tenyokj/devdevian](https://github.com/Tenyokj/devdevian). Report security issues through the repository's [security policy](https://github.com/Tenyokj/devdevian/blob/main/SECURITY.md), not a public issue containing private data. Licensed GPL-3.0-only.
|
package/VERSIONS.md
CHANGED
|
@@ -6,7 +6,25 @@ Every published npm artifact has a unique immutable version. We record each vers
|
|
|
6
6
|
|
|
7
7
|
## Current milestone
|
|
8
8
|
|
|
9
|
-
**0.
|
|
9
|
+
**0.6.0 brings Projects and Events into the terminal**, using the same hosted data and permissions as the browser.
|
|
10
|
+
|
|
11
|
+
## 0.6.0-alpha.1 — Projects and Events
|
|
12
|
+
|
|
13
|
+
- Added paginated catalogs, text search and filter forms. Projects filter by topic, stage, owner and order; Events by topic, calendar date with viewer timezone, upcoming/past, participation and order.
|
|
14
|
+
- Project detail pages include requested feedback, technologies, links and team roles, with access to the existing conversation. Create/edit forms support logos and screenshots through the workspace image picker.
|
|
15
|
+
- Event details show viewer and organizer times. Create/edit events with a banner, join/leave with confirmation, export a new workspace `.ics` file, and cancel/restore owned events. Meeting URLs follow server access rules.
|
|
16
|
+
- Publication previews happen before uploads. Local drafts retain successful upload IDs; uncertain publication results are not automatically replayed. Existing image/storage quotas and workspace path protections apply.
|
|
17
|
+
- Added authenticated API project editing with revision checks and atomic showcase/metadata updates, detail reads and idempotent desired-state event attendance. No schema migration or production-data reset. Deploy the compatible API before using the new terminal workflows.
|
|
18
|
+
- Regression coverage includes browser/CLI shared data, ownership and stale edits, image validation, meeting-link privacy, cancelled-event participation, safe calendar export, interrupted publication handling, and terminal navigation/forms/media selection at desktop and compact sizes.
|
|
19
|
+
|
|
20
|
+
## 0.5.1-alpha.1 — Meet Devi
|
|
21
|
+
|
|
22
|
+
- Added a terminal-native ASCII mascot based on the ghost/laptop/orbit logo, with full and compact drawings and English greetings: “Devi missed you.” and “Devi saved you a seat.”
|
|
23
|
+
- Startup follows the actual session check and first page request, with no minimum duration or artificial progress. Connection errors stop the loading state and offer an existing-session retry.
|
|
24
|
+
- Supported empty sections show a still Devi and a contextual next step. Sign-in codes, addresses and controls take priority on small screens.
|
|
25
|
+
- Subtle motion blinks only during active startup or browser approval; Reduced motion is static. Appearance includes a persistent welcome on/off option, also available to offline commands and session-only launch flags.
|
|
26
|
+
- Script/JSON commands remain banner-free. No additional image dependency, API change, schema migration or production-data change. Existing preferences default the new setting to on.
|
|
27
|
+
- Checked delayed/failing startup, retry, animation/static/off modes, English captions, first-page handoff, empty Inbox, script output and 60×18 device approval in unit and pseudo-terminal regressions.
|
|
10
28
|
|
|
11
29
|
## 0.5.0-alpha.1 — Make the terminal yours
|
|
12
30
|
|
package/bin/devdevian.mjs
CHANGED
|
@@ -120,6 +120,7 @@ const help = `Devdevian CLI ${version} · alpha
|
|
|
120
120
|
--review-layout MODE auto | stacked
|
|
121
121
|
--frame STYLE round | single
|
|
122
122
|
--motion MODE subtle | reduced
|
|
123
|
+
--welcome MODE on | off (Devi greeting)
|
|
123
124
|
--no-live Disable background reads in the live workspace
|
|
124
125
|
--project PATH Root directory for the live file/diff picker (default: current directory)
|
|
125
126
|
--community ID Publish to an approved private community
|
package/lib/appearance.mjs
CHANGED
|
@@ -72,6 +72,14 @@ export const appearanceFields = [
|
|
|
72
72
|
["reduced", "Reduced · static indicators"],
|
|
73
73
|
],
|
|
74
74
|
},
|
|
75
|
+
{
|
|
76
|
+
key: "welcome",
|
|
77
|
+
label: "Devi greeting",
|
|
78
|
+
options: [
|
|
79
|
+
["on", "Show Devi"],
|
|
80
|
+
["off", "Hide Devi"],
|
|
81
|
+
],
|
|
82
|
+
},
|
|
75
83
|
];
|
|
76
84
|
export const defaultAppearance = Object.freeze(
|
|
77
85
|
Object.fromEntries(
|