@tenyokjs/devdevian-cli 0.5.1-alpha.1 → 0.6.1-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 +30 -2
- package/VERSIONS.md +17 -1
- package/bin/devdevian.mjs +13 -1
- package/lib/catalog.mjs +611 -0
- package/lib/client.mjs +14 -3
- package/lib/context-actions.mjs +2 -1
- package/lib/drafts.mjs +11 -4
- package/lib/help.mjs +40 -0
- package/lib/picker.mjs +34 -12
- package/lib/tui-data.mjs +10 -2
- package/lib/tui-model.mjs +3 -1
- package/lib/tui.mjs +357 -32
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -12,12 +12,28 @@ Login opens a browser. Compare the code shown in the terminal, sign in to Devdev
|
|
|
12
12
|
|
|
13
13
|
Version-by-version changes and the customization roadmap: [CLI version history](VERSIONS.md).
|
|
14
14
|
|
|
15
|
+
## A look inside
|
|
16
|
+
|
|
17
|
+
Actual CLI captures from isolated demonstration accounts. Your terminal uses your real forum account and permissions.
|
|
18
|
+
|
|
19
|
+

|
|
20
|
+
|
|
21
|
+
<details>
|
|
22
|
+
<summary>Code review and appearance</summary>
|
|
23
|
+
|
|
24
|
+

|
|
25
|
+

|
|
26
|
+
|
|
27
|
+
</details>
|
|
28
|
+
|
|
29
|
+
Run `devdevian --help` for script commands and workspace shortcuts. Interactive help has a large wordmark and selective accents; `NO_COLOR=1` keeps it uncolored, narrow terminals use a compact heading, and redirected output stays plain.
|
|
30
|
+
|
|
15
31
|
## Live workspace
|
|
16
32
|
|
|
17
33
|
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
34
|
|
|
19
35
|
- **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`.
|
|
36
|
+
- **/** 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
37
|
- **←/→** switch conversation tabs; **Space** reads the selected reply/remark in full. **[ / ]** paginate; **Page Up/Down** scroll.
|
|
22
38
|
- **N** creates a conversation (a community on the Communities screen); **A** asks a question; **R** replies inside a conversation; **Shift+R** refreshes.
|
|
23
39
|
- **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,6 +47,18 @@ Pages have a bounded 30-second in-memory cache. Refresh explicitly with Shift+R.
|
|
|
31
47
|
|
|
32
48
|
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
49
|
|
|
50
|
+
## Projects and Events
|
|
51
|
+
|
|
52
|
+
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.
|
|
53
|
+
|
|
54
|
+
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**.
|
|
55
|
+
|
|
56
|
+
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.
|
|
57
|
+
|
|
58
|
+
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.
|
|
59
|
+
|
|
60
|
+
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.
|
|
61
|
+
|
|
34
62
|
## Meet Devi
|
|
35
63
|
|
|
36
64
|
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.
|
|
@@ -142,6 +170,6 @@ For local development use `devdevian login --host http://127.0.0.1:4173`. Remote
|
|
|
142
170
|
|
|
143
171
|
## Alpha scope
|
|
144
172
|
|
|
145
|
-
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.
|
|
173
|
+
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.
|
|
146
174
|
|
|
147
175
|
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,23 @@ 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.1-alpha.1 — A clearer first impression
|
|
12
|
+
|
|
13
|
+
- Added a large terminal wordmark and selective blue/violet accents to `--help`. Compact terminals, `NO_COLOR`, redirected output and JSON help remain readable without ANSI decoration.
|
|
14
|
+
- Help now points to the interactive Projects/Events commands and actions. CLI documentation includes real terminal captures and install/login/workspace guidance.
|
|
15
|
+
- The website introduces the CLI near the top, with keyboard-accessible screenshot tabs, copyable install/review commands and GitHub documentation links. A cached public-only activity counter updates while visible and respects reduced motion.
|
|
16
|
+
- No schema migration, account/credential change or production-data reset. The CLI package and web/API keep independent versions.
|
|
17
|
+
|
|
18
|
+
## 0.6.0-alpha.1 — Projects and Events
|
|
19
|
+
|
|
20
|
+
- 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.
|
|
21
|
+
- 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.
|
|
22
|
+
- 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.
|
|
23
|
+
- 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.
|
|
24
|
+
- 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.
|
|
25
|
+
- 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.
|
|
10
26
|
|
|
11
27
|
## 0.5.1-alpha.1 — Meet Devi
|
|
12
28
|
|
package/bin/devdevian.mjs
CHANGED
|
@@ -23,6 +23,7 @@ import {
|
|
|
23
23
|
loadAppearance,
|
|
24
24
|
saveAppearance,
|
|
25
25
|
} from "../lib/appearance.mjs";
|
|
26
|
+
import { renderHelp } from "../lib/help.mjs";
|
|
26
27
|
const version = packageInfo.version;
|
|
27
28
|
const options = {
|
|
28
29
|
host: { type: "string" },
|
|
@@ -113,6 +114,9 @@ const help = `Devdevian CLI ${version} · alpha
|
|
|
113
114
|
devdevian review reopen POST_ID REVIEW_ID
|
|
114
115
|
devdevian communities [--page 2]
|
|
115
116
|
|
|
117
|
+
Inside the workspace: /projects, /project ID, /events, /event ID
|
|
118
|
+
N creates · F filters · E edits your publication · X opens actions
|
|
119
|
+
|
|
116
120
|
--theme NAME midnight | nebula | daylight | contrast
|
|
117
121
|
--accent NAME blue | violet | cyan | rose
|
|
118
122
|
--density NAME comfortable | compact
|
|
@@ -257,7 +261,15 @@ async function login(flags) {
|
|
|
257
261
|
}
|
|
258
262
|
async function execute(args, flags) {
|
|
259
263
|
if (flags.help) {
|
|
260
|
-
|
|
264
|
+
process.stdout.write(
|
|
265
|
+
renderHelp(help, {
|
|
266
|
+
tty: !!process.stdout.isTTY,
|
|
267
|
+
columns: process.stdout.columns || 80,
|
|
268
|
+
noColor:
|
|
269
|
+
process.env.NO_COLOR !== undefined || process.env.TERM === "dumb",
|
|
270
|
+
json: !!flags.json,
|
|
271
|
+
}) + "\n",
|
|
272
|
+
);
|
|
261
273
|
return;
|
|
262
274
|
}
|
|
263
275
|
if (flags.version) {
|