Rock your Gulp!
µGulp™, the interactive near-zero-latency task orchestrator with rich visuals, webview controls, and audio feedback.
Version 0.5.20 · Proprietary License
Rock your Gulp!
µGulp™, the interactive near-zero-latency task orchestrator with rich visuals, webview controls, and audio feedback — shipped as an IDE extension (VS Code / Cursor AI, PhpStorm test build) with a Carbon/Neon webview dashboard.
- i18n-ready gulp tasks —
.i18xRegister()phrases with embedded context tags on display names, descriptions, tooltips and groups; standard placeholders (version,project, …) viaµI18xContext - Hierarchical task tree — nest tasks with
µGrouppath syntax (Build/Production), collapsible groups, multi-gulpfile grouping by source - Preloaded workers — warm Node processes with the gulpfile already imported; near-zero click-to-run latency (avoids cold-start scans from AV software)
- Live gulpfile watch — workspace watcher rescans on save and swaps stale workers automatically
- Web dashboard — live ANSI-colored logs, filtered output, determinate progress bars, rich forms for user input (text, color, font, select, multiselect, …)
- Structured log output — tasks emit JSON payloads rendered inline in the run log (tables, trees, image galleries, callouts, key/value metrics, status badges, code blocks, inline-SVG bar charts) — Content-Security-Policy safe, no plugin or iframe required
- Persistent task history & file logging — every run is written to
.microgulp/logs(raw.log+ structured.ndjson), ahistory.ndjsonindex survives reconnects/IDE restarts; a dashboard history panel opens each transcript (logToFile,logRetention) - Plain-gulp compatible — µ-prefixed metadata is invisible to the classic gulp CLI; scripts run unchanged without µGulp
- Optional acoustic control — completion sounds, error alarms and speech output (dashboard settings)
- Optional form reminder — when a task waits for dashboard input, remind the user after a configurable delay via sound and/or speech; repeats until the form is answered
- Parallel task grid — multiple isolated run sectors side by side, each with its own log stream
- Concurrency matrix — per-task exclusive runs and allow/deny rules (
µExecutionConcurrency,µExecutionRestrictions) - Diagnosis engine — import errors and stack traces become actionable suggestions in the dashboard
- Legacy prompt bridge —
inquirer/gulp-prompt/promptsredirected to dashboard forms without editing gulpfiles gulp-mu-gulp-api— npm module for progress, sound, speech and interactive inputs from inside tasks
| Hosts | VS Code, Cursor AI, PhpStorm (test ZIP), any browser on 127.0.0.1 via microgulp-serve --http |
| Runtime | Node.js 22+ (ESM) |
| Gulpfiles | Single gulpfile.mjs or regex discovery across the workspace |
| Config | Extension settings (VS Code/Cursor) or microgulp.config.json (PhpStorm / CLI) |
| Engine | IDE-independent — same src/engine in every host |
| Task order | µOrder (ascending integer); groups by minimum order in subtree; unordered tasks last (alphabetical) |
Click a task → a warm worker runs it immediately. Edit the gulpfile → the task list updates on its own. Several tasks can run in parallel; each gets its own dashboard sector with a neon progress bar when the task calls ReportProgress from gulp-mu-gulp-api.
µGulp™ is not published to a marketplace yet. Two ways to get it:
- Prebuilt VSIX: the current release is always available as
[packages/microgulp_latest.vsix](packages/microgulp_latest.vsix)(plus versioned builds likemicrogulp_V0.5.0.vsixnext to it). Install it with:
code --install-extension packages/microgulp_latest.vsix # VS Code
cursor --install-extension packages/microgulp_latest.vsix # Cursor AI- Build from source:
npm install, thennpm run build— the fresh.vsixlands inpackages/.
Afterwards run µGulp: Open Dashboard from the command palette (or click the µGulp™ rocket in the status bar).
A PhpStorm plugin is available as [packages/microgulp-phpstorm_latest.zip](packages/microgulp-phpstorm_latest.zip): install it via Settings → Plugins → ⚙ → Install Plugin from Disk… and open the µGulp tool window. The plugin is a thin JCEF adapter — the entire engine runs in a bundled Node.js sidecar, so Node.js 22+ must be installed (on the PATH, or set the MICROGULP_NODE environment variable to the binary). Rebuild with npm run phpstorm (compiles against an installed JetBrains IDE, no Gradle required).
The same dashboard also runs in any plain browser: npm run serve -- --cwd <project> --http 9310 --preload, then open http://127.0.0.1:9310/.
In VS Code / Cursor the engine is configured through the extension settings (microgulp.gulpfilePattern etc.). Hosts without their own settings surface — the PhpStorm plugin and plain CLI/browser usage via microgulp-serve — read an optional **microgulp.config.json** in the project root instead:
{
"gulpfilePattern": "gulpfile.*\\.mjs$",
"poolSize": 2,
"maxParallel": 6,
"preload": true,
"watchGulpfiles": true
}| Key | Type | Default | Meaning |
|---|---|---|---|
gulpfile |
string | "gulpfile.mjs" |
Single gulpfile, relative to the project root |
gulpfilePattern |
string | — | Case-insensitive regex against workspace-relative POSIX paths; discovers all matching gulpfiles (wins over gulpfile) |
poolSize |
int ≥ 0 | 2 |
Warm workers per gulpfile |
maxParallel |
int ≥ 1 | 6 |
Maximum concurrent task runs |
preload |
bool | false |
Warm up the worker pools right after startup (the PhpStorm plugin always enables this) |
watchGulpfiles |
bool | true |
Auto-rescan on gulpfile changes |
logToFile |
bool | true |
Persist run transcripts (.log + .ndjson) and the task history to disk |
logDirectory |
string | .microgulp/logs |
Directory for transcripts and the history index, relative to the project root |
logRetention |
int ≥ 0 | 200 |
Max runs kept in the history (0 = unlimited); older runs and their log files are pruned |
Precedence: command line arguments > microgulp.config.json > built-in defaults. Invalid values and unknown keys are ignored with a warning on stderr; the file is versionable and applies to the whole team. After editing the file, reopen the PhpStorm tool window (respawns the sidecar) or restart microgulp-serve.
gulpfile.mjs Project build: tests, theme CSS (µCSS), package + deploy
RELEASES.json Version source (main/minor/revision, i18xe-ready info texts)
gulp-mu-gulp-api/ Standalone npm module: public task API
src/index.mjs Progress, text/color/font/select inputs, forms
tests/ The module's own node:test suite
skins/ One directory per skin (neon-carbon is the default)
neon-carbon/
neon-carbon.µcss.mjs µCSS skin manifest (Carbon/Neon variables)
neon-carbon.µ.css Skin source → compiled into src/webview/skins/neon-carbon/
ice-light/ Light frosted-glass skin (cool blue outward glow)
ice-light.µcss.mjs µCSS skin manifest (ice palette)
ice-light.µ.css Skin source → compiled into src/webview/skins/ice-light/
src/
engine/ IDE-independent core (no VS Code APIs!)
TaskEngine.mjs Orchestrator: scan, preload, queue, events
TaskWorkerPool.mjs Pool of prewarmed worker processes
ConcurrencyGuard.mjs Evaluates executionConcurrency/-Restrictions
Diagnostics.mjs Diagnosis engine (stack traces → concrete suggestions)
PluginHost.mjs Lifecycle hooks for plugins
GulpfileDiscovery.mjs Regex-based gulpfile discovery in the workspace
ReleaseInfo.mjs Release management: RELEASES.json, version strings, history
worker/
TaskWorker.mjs Child process: imports the gulpfile, runs tasks
bridge/
gulp-ugulp-bridge.mjs Public bridge: npm packages ↔ webview forms
host/
HostProtocol.mjs Event/command names (the single host boundary)
Daemon.mjs Engine owner for sidecar hosts
microgulp-serve.mjs stdio NDJSON CLI (PhpStorm preparation)
extension/
extension.cjs Thin VS Code / Cursor adapter (the only CJS module)
webview/
dashboard.css Fallback stylesheet for fresh checkouts
dashboard.js TaskGrid, log streaming, forms, audio engine
skins/<name>/dashboard.css µCSS-generated skins (webview default: neon-carbon)
tests/ node:test suites (unit + engine integration)
demo/
gulpfile.mjs Example gulpfile with every µGulp™ metadata tag
run-demo.mjs Headless engine smoke test (no IDE)
dev/
prompts/ AI migration prompts (existing gulpfile → µGulp + i18x)
OptimizeGulpfileForMicroGulp.md
OptimizeGulpfileForMicroGulp.params.example.json
- The engine layer is IDE-free.
src/engineandsrc/workerknow no VS Code APIs. Communication runs through events (engine → host) and plain-JSON commands (host → engine). Porting to PhpStorm (phase 2) is therefore a pure adapter swap — the minimal sidecarnpm run serve(src/host/microgulp-serve.mjs, NDJSON on stdio) is already in place. - Task preloading. The
TaskWorkerPoolkeeps prewarmed Node processes around in which the gulpfile has already been imported. Starting a task hands over a warm worker and refills the pool in the background. After a run the process is discarded (fresh module state). - Dynamic imports. Heavy npm packages (
mssql,docx-templates,makensis, …) must only be loaded inside the task body viaawait import()— static top-level imports are reserved for the orchestrator core logic. - Languages. GUI texts are American English and go through
String.i18xTrans()(i18xe wiring to follow); code comments English; manuals/documentation German.
µGulp™ notices gulpfile changes on disk by itself: a workspace watcher (microgulp.watchGulpfiles, on by default) rescans automatically after every change and swaps the warm workers for fresh ones running the current code. While a scan runs, the task list shows an animated progress indicator; the dashboard therefore has no rescan button anymore — the µGulp: Rescan Tasks command (command palette) remains as a manual force refresh. If a gulpfile fails to load (syntax error, missing module), a dismissible error banner with diagnosis and stack trace appears right in the dashboard.
µGulp™ finds gulpfiles either through a single path or through a regex pattern that searches the entire workspace:
microgulp.gulpfilePattern— a JavaScript regex (case-insensitive) tested against the workspace-relative path (POSIX notation with/). When set, every matching file is scanned; tasks are grouped by their source in the dashboard. Example:(^|/)gulpfile\.(m|c)?js$findsgulpfile.mjs/.js/.cjsat the root and in every subfolder.microgulp.gulpfilePath— the classic single path (defaultgulpfile.mjs). Only used whilegulpfilePatternis empty.
node_modules, .git and hidden folders (.*) are never descended into. Every discovered gulpfile gets its own warm worker pool with the gulpfile's folder as working directory, so nested subprojects with relative paths run correctly. The discovery logic lives IDE-independently in src/engine/GulpfileDiscovery.mjs and is therefore available to the CLI and the future PhpStorm adapter as well.
The recommended form is µ-prefixed tags in CamelCase (µDisplayName, µIcon, …) — they are invisible to the classic gulp CLI, so gulpfiles stay fully compatible on systems without µGulp™ (the gulp CLI addresses tasks via function.displayName; a pretty name with spaces would break task addressing there):
export async function BUILD_STYLES() { /* ... */ }
BUILD_STYLES.µDisplayName = 'Build Styles';
BUILD_STYLES.µDescription = 'Compiles the µCSS skin into deploy-ready stylesheets.';
BUILD_STYLES.µTooltip = 'Runs the µCSS pipeline (sprites, fonts, sounds included).';
BUILD_STYLES.µIcon = '\u25A3'; // font symbol — or an image data URI:
// BUILD_STYLES.µIcon = 'data:image/svg+xml,%3Csvg ...'; (png/webp too)
BUILD_STYLES.µGroup = 'Build/Assets'; // nested group (path syntax)
BUILD_STYLES.µOrder = 10; // sort position in the dashboard (ascending)
BUILD_STYLES.µExecutionConcurrency = true; // false = exclusive
BUILD_STYLES.µExecutionRestrictions = { deny: ['CLEAN'] }; // parallel matrixµGroup assigns the task to a nested group in the task overview. The definition follows a directory-like path syntax: µGroup = 'Build/Production' creates the group Build with subgroup Production. Groups are collapsible in the dashboard; tasks without µGroup stay at the top level. The assignment is optional and purely visual — it has no effect on execution or concurrency.
µOrder sets the sort position in the left column (ascending integer). Sibling tasks and groups are ordered by µOrder; tasks without it appear after all ordered tasks (tie-breaker: display name). Groups sort by the lowest µOrder in their subtree.
Modifier keys on a group header:
| Action | Effect |
|---|---|
| Click | toggle the group |
| Ctrl+Click (Cmd+Click) | toggle every group on the same level |
| Alt+Click | toggle all groups |
Per-property fallback cascade: µDisplayName → ugulp.displayName (namespace object) → displayName (Gulp's own field) → export name. executionRestrictions supports deny (always wins) and allow (whitelist: everything unlisted is forbidden).
Task metadata strings use i18x with the context tag inside the phrase and .i18xRegister() (required for i18xe-sync and dashboard translation):
BUILD_STYLES.µDisplayName = 'Build Styles<context="µDisplayName"/>'.i18xRegister();
BUILD_STYLES.µDescription = 'Compiles the µCSS skin into deploy-ready stylesheets.<context="µDescription"/>'.i18xRegister();
BUILD_STYLES.µGroup = 'Build/Assets<context="µGroup"/>'.i18xRegister();To migrate an existing large gulpfile (console output, task metadata, i18x/gulp dictionaries) use the maintained prompt in the repository:
| File | Purpose |
|---|---|
dev/prompts/OptimizeGulpfileForMicroGulp.md |
Copy-paste prompt for Cursor, Claude, ChatGPT, … |
dev/prompts/OptimizeGulpfileForMicroGulp.params.example.json |
Parameter template (project path, gulpfile name, supported languages, gulp-mu-gulp-api version) |
Workflow
- Copy the params example to your project root as
microgulp-optimize.params.jsonand fill inprojectRoot,gulpfilePath,supportedLanguages(e.g.en-US,de-DE,zh-CN),gulpMuGulpApiVersion(^0.3.0or newer), andgithubRepoUrl/githubRef(default:https://github.com/mamekudz/microGulp,main). - Open the prompt markdown, replace the
{{PLACEHOLDER}}table with your values (or attach the params file and gulpfile in Cursor). - Let the AI run the migration. Step 0 in the prompt is mandatory: a timestamped backup of the gulpfile (e.g.
gulpfile.mjs.20260703-142559.bak) before any edit. - Verify with
node --check gulpfile.mjs, test tasks in the µGulp dashboard, then commitgulpfile.mjs,i18x/gulp/*.json, andpackage.json.
Consumer projects need only i18x/gulp/<lid>.json — no i18x/prod. The prompt is updated with µGulp releases; check this repo for the latest version before migrating. The prompt includes a detailed i18x rules section (register vs. translate, correct/wrong examples, i18xe-sync scanning, no µMeta) — read Step 3 before running the AI.
Third-party gulpfiles and npm packages inside the stream use the extended dashboard features through the standalone npm module **gulp-mu-gulp-api** (lives as its own project under gulp-mu-gulp-api/, published to npm separately):
import { ReportProgress, RequestTextInput, RequestColorInput, RequestForm } from 'gulp-mu-gulp-api';
export async function BUILD_THEME() {
let accent = await RequestColorInput({ label: 'Accent color', default: '#00e5ff' });
let title = await RequestTextInput({ label: 'Product title', validate: { required: true, minLength: 3 } });
for (let step = 1; step <= 10; step++) {
// ... work ...
ReportProgress(step / 10, 'compiling theme'); // determinate neon progress bar in the sector
}
}The module is dependency-free and talks to the engine directly over the µGulp™ worker's IPC channel (detection via IsMicroGulp() / IsµGulp()). Without µGulp™ everything degrades cleanly: progress goes to the terminal, inputs via readline (TTY) or default values (CI). Details in gulp-mu-gulp-api/README.md. The internal module src/bridge/gulp-ugulp-bridge.mjs remains as the low-level transport; new consumers should use gulp-mu-gulp-api.
npm modules whose root gulpfile is fully integrated with the µGulp dashboard may display the µGulp ready badge on their npm README and project pages.
| Requirement | Detail |
|---|---|
| Gulpfile | Exported tasks carry µGulp metadata (µDisplayName, µDescription, µGroup, …) |
| API | Uses gulp-mu-gulp-api for logging, progress and optional dashboard features |
| CLI fallback | Tasks remain runnable with plain gulp / npx gulp when µGulp is not installed |
| Badge asset | Canonical PNG: media/microgulp-ready.png in the µGulp repo. npm README: absolute raw URL (npm rewrites relative paths to microCSS/HEAD/... even inside HTML). Example:<a href="https://github.com/mamekudz/microGulp"><img src="https://raw.githubusercontent.com/mamekudz/microGulp/main/media/microgulp-ready.png" alt="µGulp ready" width="150"></a> |
| package.json | Optional "microgulp": { "ready": true, "certifiedSince": "<semver>" } for machine-readable discovery |
Certified modules
| npm package | Since | Notes |
|---|---|---|
gulp-mu-gulp-api |
0.3.2 | Official task API — Log, ReportProgress, i18x console layer, dashboard forms; npm README badge since 0.3.3 |
gulp-mu-css (µCSS™) |
2.5.15 | Monorepo root gulpfile.mjs with full task metadata, i18x/gulp/ (en-US, de-DE) and LogBuildDebugReport on demo builds; npm README badge via absolute raw URL since 2.5.14 |
gulp-mu-ps (µPS) |
1.3.5 | Test/render tasks in the shared root gulpfile (TEST_MICROPS, RENDER_EXAMPLES, …) |
gulp-mu-ft (µFT) |
0.1.5 | Test task TEST_MICROFT in the shared root gulpfile |
gulp-mu-au (µAU) |
0.1.6 | Test task TEST_MICROAU in the shared root gulpfile |
To apply for certification, migrate your gulpfile with dev/prompts/OptimizeGulpfileForMicroGulp.md and open an issue or PR in the µGulp or module repository.
µGulp™ versions through **RELEASES.json** at the project root as the single source of truth. Every release entry carries main/minor/revision, a timestamp, a beta flag and a list of info texts. The info texts carry the i18x context tag <context="release info"/> and are registered via String.i18xRegister(), so the i18xe engine can translate them automatically.
{
"releases": [
{
"main": 0, "minor": 2, "revision": 0, "date": "2026-07-02 15:30", "beta": false,
"info": [ "Release management added<context=\"release info\"/>" ]
}
]
}The module src/engine/ReleaseInfo.mjs provides:
GetVersionString()/GetFullVersionString()—"0.2.0"or"0.1.4ß"(ßsuffix for beta builds).GetVersionHistoryText({ maxReleases, includeBeta })— the complete history as a formatted string for the console (taskSHOW_VERSION_HISTORYornpm run history).BUILD_PACKAGEsyncs thepackage.jsonversion and the version line at the top of this README fromRELEASES.jsonautomatically and stamps it into the artifact name (microgulp_V0.2.0.vsix, betas with a_betasuffix). A new release only needs a new entry at the top ofRELEASES.json.
The project builds itself through its own gulpfile (dogfooding: it runs in the µGulp™ dashboard, through the gulp CLI, through classic Gulp IDE extensions and headless):
| Invocation | Task | Purpose |
|---|---|---|
npm test |
RUN_TESTS |
node:test suites in tests/ (unit + engine integration with real worker processes) |
npm run theme |
CREATE_THEME_DATA |
Compiles every skins/<name>/<name>.µ.css via µCSS (gulp-mu-css BuildSkin) into src/webview/skins/<name>/dashboard.css (default: neon-carbon) |
npm run package |
BUILD_PACKAGE |
Stages the extension into tmp/package/ and creates the .vsix in packages/ (also refreshed as microgulp_latest.vsix) |
npm run deploy |
DEPLOY_EXTENSION |
Automated update cycle: build the .vsix and install it via cursor --install-extension (reload the window afterwards) |
npm run build |
BUILD_ALL |
Full pipeline: clean → tests → theme → package |
npm run history |
SHOW_VERSION_HISTORY |
Prints the formatted version history from RELEASES.json to the console |
| — | PUBLISH_API |
Publishes gulp-mu-gulp-api to npm (runs its tests first; npm login required) |
| — | CLEAN |
Removes tmp/ and packages/ (exclusive, write lock) |
Notes:
gulp-mu-cssis wired in as a localfile:dependency onC:\Projects\microCSS\gulp-mu-cssand — like every heavy package — is only loaded inside the task body viaawait import().BUILD_PACKAGEproduces a real.vsixonce@vscode/vsceis installed (npm i -D @vscode/vsce); without vsce the task falls back to a zip of the staging folder.- Skins are self-contained: one directory per skin under
skins/(e.g.skins/neon-carbon/,skins/ice-light/), each with a<name>.µcss.mjsmanifest and a same-named<name>.µ.csssource.CREATE_THEME_DATAdiscovers and builds every skin; neon-carbon (dark) is the default and ice-light ships a bright frosted-glass companion. Additional/user skins can be dropped in as sibling directories. The dashboard skin picker (Settings → Appearance) offers an Automatic mode that follows the IDE/OS light or dark theme. - The webview automatically prefers the generated default skin (
src/webview/skins/neon-carbon/dashboard.css); the hand-writtendashboard.cssremains as a fallback for fresh checkouts. - The dashboard header shows the yellow microscope mark (
baselogo.svg) via µCSS data-URI inlining next to the neon µGulp™ title (background-image: µ(DataUri("imgs/baselogo.svg"))). The single source of truth for finished art assets isdev/media/final/; the build syncsmedia/logo.png(extension icon),media/logo_readme.png(README),src/webview/skins/<name>/imgs/baselogo.svg(dashboard) andphpstorm/resources/icons/baseoutlinelogo.svg(PhpStorm tool window + plugin list) from there.
Headless (no IDE):
npm run demoScans demo/gulpfile.mjs, warms up the pool, starts two parallel tasks, one exclusive task (waits in the queue) and one intentionally failing task (diagnosis engine).
As an extension: press F5 in VS Code/Cursor (launch configuration "Run µGulp Extension"), then run µGulp: Open Dashboard in the development host.
µGulp™ (extension, engine, dashboard, PhpStorm adapter) is proprietary software — see LICENSE. You may use the distributed binaries free of charge; copying, modifying, or redistributing the source code is not permitted.
The companion npm package gulp-mu-gulp-api remains under the MIT License so Gulp tasks can adopt it without restrictions.
- i18x layer in the webview: language setting (automatic/en-US/de-DE/zh-CN), context-tagged GUI strings, format definitions taken over from the i18xe server — the direct i18xe-server connection follows later
- µ-task metadata via
.i18xRegister()phrases with embedded context tags (µDisplayName,µDescription,µTooltip,µGroup) and standard translation placeholders (µI18xContext,version,project,task, …) - Public task API
**gulp-mu-gulp-api**on npm (progress, sound/speech, interactive forms with CLI fallbacks;IsMicroGulp,InstallStringExtensions) - Legacy prompt libraries (
inquirer,gulp-prompt,prompts) redirected to dashboard forms without editing gulpfiles - Extended dashboard form controls (radio, range, textarea, password, number, date/time, file, multi-select checkbox)
- Dashboard settings (acoustic control, speech output, form reminder, error handling, language)
- Console rendering in task sectors (ANSI colors,
\rprogress-line overwrite, timestamps) - Persistent task history & log redirection to files (raw
.log+ structured.ndjson,history.ndjsonindex, retention, dashboard history panel) -
microgulp.config.jsonfor hosts without a settings UI (PhpStorm plugin,microgulp-serveCLI/browser) - Dashboard task sort order via
µOrder(ascending; groups by subtree minimum) - Phase 2 (test build): PhpStorm adapter — JCEF tool window + Node sidecar + HTTP/SSE dashboard host (
packages/microgulp-phpstorm_latest.zip)
- Explicit task sort order in the dashboard (
µOrdermetadata) - Document
µLib(microLib), then adopt it as the utility layer in µGulp (i18x today is a local webview subset) - Direct i18xe-server connection: live translation sync instead of the bundled de-DE/zh-CN dictionaries
- Extend
µLib'sGUI.mjswith additional special controls for the dashboard forms - Visual polish of the webview dashboard
- Extend the µCSS skin: add the symbol font, sprites and sounds to the manifest
- Audio engine: high-quality sounds + speech output via i18xe instead of WebAudio beeps / Web Speech API
- PhpStorm plugin: polish beyond the test build (settings UI optional, marketplace distribution)
- Publish the VS Code/Cursor extension to a marketplace
Rock your Gulp!
µGulp™ — der interaktive Task-Orchestrator mit nahezu null Latenz, stylischer Dashboard-Ausgabe, Webview-Steuerung und akustischem Feedback — als IDE-Erweiterung (VS Code / Cursor AI, PhpStorm-Testversion) mit einem Carbon/Neon-Webview-Dashboard.
- Automatisch internationalisierbare Gulp-Tasks —
.i18xRegister()-Phrasen mit eingebetteten Kontext-Tags an Anzeigenamen, Beschreibungen, Tooltips und Gruppen; Standard-Platzhalter (version,project, …) überµI18xContext - Hierarchische Task-Sortierung — Tasks per
µGroup-Pfad verschachteln (Build/Production), einklappbare Gruppen, bei mehreren Gulpfiles Gruppierung nach Quelle - Preload von Tasks — warme Node-Worker mit bereits importiertem Gulpfile; nahezu kein Kaltstart beim Klick (umgeht Echtzeit-Virenscanner-Latenzen)
- Watch für die Task-Übersicht — Workspace-Watcher scannt bei Speichern neu und tauscht veraltete Worker aus
- Web-basierte Ausgabe und Formulare — Live-Logs mit ANSI-Farben, Filter, determinierte Progressbars, Formulare für Benutzereingaben (Text, Farbe, Schrift, Auswahl, Mehrfachauswahl, …)
- Strukturierte Log-Ausgabe — Tasks senden JSON-Payloads, die inline im Run-Log gerendert werden (Tabellen, Bäume, Bildgalerien, Callouts, Key/Value-Metriken, Status-Badges, Codeblöcke, Inline-SVG-Balkendiagramme) — Content-Security-Policy-sicher, ohne Plugin oder iframe
- Persistente Task-Historie & Log-Umlenkung in Dateien — jeder Run wird nach
.microgulp/logsgeschrieben (roh.log+ strukturiert.ndjson), einhistory.ndjson-Index übersteht Reconnects/IDE-Neustarts; ein Historie-Panel im Dashboard öffnet jedes Transkript (logToFile,logRetention) - Kompatible Gulp-Skripte auch ohne µGulp — µ-Metadaten sind für die klassische gulp-CLI unsichtbar; Skripte laufen unverändert weiter
- Optionale akustische Kontrolle — Ende-Sounds, Fehleralarm und Sprachausgabe (Dashboard-Einstellungen)
- Optionale Formular-Erinnerung — wenn ein Task auf eine Dashboard-Eingabe wartet, nach einstellbarer Verzögerung per Sound und/oder Sprache erinnern; wiederholt bis das Formular beantwortet ist
- Paralleles Task-Grid — mehrere isolierte Lauf-Sektoren nebeneinander, jeweils mit eigenem Log-Stream
- Concurrency-Matrix — exklusive Tasks und Allow/Deny-Regeln (
µExecutionConcurrency,µExecutionRestrictions) - Diagnose-Engine — Importfehler und Stack-Traces werden zu konkreten Lösungsvorschlägen im Dashboard
- Legacy-Prompt-Brücke —
inquirer/gulp-prompt/promptsauf Dashboard-Formulare umgeleitet, ohne Gulpfile-Anpassung gulp-mu-gulp-api— npm-Modul für Fortschritt, Sound, Sprache und interaktive Eingaben aus Tasks heraus
| Hosts | VS Code, Cursor AI, PhpStorm (Test-ZIP), jeder Browser auf 127.0.0.1 via microgulp-serve --http |
| Laufzeit | Node.js 22+ (ESM) |
| Gulpfiles | Einzelnes gulpfile.mjs oder Regex-Discovery im Workspace |
| Konfiguration | Erweiterungseinstellungen (VS Code/Cursor) oder microgulp.config.json (PhpStorm / CLI) |
| Engine | IDE-unabhängig — dieselbe src/engine in jedem Host |
| Task-Reihenfolge | µOrder (aufsteigende Ganzzahl); Gruppen nach kleinstem Order-Wert im Unterbaum; Tasks ohne Order zuletzt (alphabetisch) |
Klick auf einen Task → warmer Worker startet sofort. Gulpfile speichern → Task-Liste aktualisiert sich von selbst. Mehrere Tasks parallel; jeder bekommt eine eigene Dashboard-Sektion mit Neon-Progressbar, sobald der Task ReportProgress aus gulp-mu-gulp-api meldet.
µGulp™ ist noch nicht in einem Marketplace veröffentlicht. Zwei Wege zur Installation:
- Fertiges VSIX: Das aktuelle Release liegt immer als
[packages/microgulp_latest.vsix](packages/microgulp_latest.vsix)bereit (daneben versionierte Builds wiemicrogulp_V0.5.0.vsix). Installation per:
code --install-extension packages/microgulp_latest.vsix # VS Code
cursor --install-extension packages/microgulp_latest.vsix # Cursor AI- Aus den Quellen bauen:
npm install, dannnpm run build— das frische.vsixlandet inpackages/.
Danach in der Befehlspalette µGulp: Open Dashboard ausführen (oder auf die µGulp™-Rakete in der Statusleiste klicken).
Ein PhpStorm-Plugin liegt als [packages/microgulp-phpstorm_latest.zip](packages/microgulp-phpstorm_latest.zip) bereit: Installation über Settings → Plugins → ⚙ → Install Plugin from Disk…, danach das Toolwindow µGulp öffnen. Das Plugin ist ein dünner JCEF-Adapter — die gesamte Engine läuft in einem mitgelieferten Node.js-Sidecar, daher muss Node.js 22+ installiert sein (im PATH, oder Umgebungsvariable MICROGULP_NODE auf die Binary setzen). Neu bauen mit npm run phpstorm (kompiliert gegen eine installierte JetBrains-IDE, kein Gradle nötig).
Dasselbe Dashboard läuft auch in jedem Browser: npm run serve -- --cwd <projekt> --http 9310 --preload, dann http://127.0.0.1:9310/ öffnen.
In VS Code / Cursor wird die Engine über die Erweiterungseinstellungen konfiguriert (microgulp.gulpfilePattern usw.). Hosts ohne eigene Einstellungsoberfläche — das PhpStorm-Plugin und der CLI-/Browser-Betrieb über microgulp-serve — lesen stattdessen eine optionale **microgulp.config.json** im Projektstamm:
{
"gulpfilePattern": "gulpfile.*\\.mjs$",
"poolSize": 2,
"maxParallel": 6,
"preload": true,
"watchGulpfiles": true
}| Schlüssel | Typ | Default | Bedeutung |
|---|---|---|---|
gulpfile |
String | "gulpfile.mjs" |
Einzelnes Gulpfile, relativ zum Projektstamm |
gulpfilePattern |
String | — | Case-insensitives Regex gegen workspace-relative POSIX-Pfade; findet alle passenden Gulpfiles (hat Vorrang vor gulpfile) |
poolSize |
Int ≥ 0 | 2 |
Warme Worker pro Gulpfile |
maxParallel |
Int ≥ 1 | 6 |
Maximal gleichzeitige Task-Läufe |
preload |
Bool | false |
Worker-Pools direkt nach dem Start vorwärmen (das PhpStorm-Plugin aktiviert dies immer) |
watchGulpfiles |
Bool | true |
Automatischer Rescan bei Gulpfile-Änderungen |
logToFile |
Bool | true |
Run-Transkripte (.log + .ndjson) und die Task-Historie auf die Festplatte schreiben |
logDirectory |
String | .microgulp/logs |
Verzeichnis für Transkripte und den Historie-Index, relativ zum Projektstamm |
logRetention |
Int ≥ 0 | 200 |
Maximale Anzahl Runs in der Historie (0 = unbegrenzt); ältere Runs und ihre Logdateien werden entfernt |
Vorrang: Kommandozeilen-Argumente > microgulp.config.json > eingebaute Defaults. Ungültige Werte und unbekannte Schlüssel werden mit einer Warnung auf stderr ignoriert; die Datei ist versionierbar und gilt damit fürs ganze Team. Nach dem Bearbeiten der Datei das PhpStorm-Toolwindow neu öffnen (startet den Sidecar neu) bzw. microgulp-serve neu starten.
Die kommentierte Verzeichnisübersicht steht im englischen Abschnitt unter Project structure — die Pfade und Kommentare gelten unverändert.
- Engine-Schicht ist IDE-frei.
src/engineundsrc/workerkennen keine VS-Code-APIs. Die Kommunikation läuft über Events (Engine → Host) und Plain-JSON-Kommandos (Host → Engine). Damit ist die Portierung auf PhpStorm (Phase 2) ein reiner Adapter-Tausch — der minimale Sidecarnpm run serve(src/host/microgulp-serve.mjs, NDJSON auf stdio) ist bereits vorbereitet. - Task-Preloading. Der
TaskWorkerPoolhält vorgewärmte Node-Prozesse bereit, in denen das Gulpfile bereits importiert wurde. Beim Start eines Tasks wird ein warmer Worker übergeben und der Pool im Hintergrund aufgefüllt. Nach einem Lauf wird der Prozess verworfen (frischer Modulzustand). - Dynamische Imports. Schwere npm-Pakete (
mssql,docx-templates,makensis, …) dürfen im Gulpfile nur perawait import()im Task-Body geladen werden — statische Top-Level-Imports sind der Orchestrator-Kernlogik vorbehalten. - Sprachen. GUI-Texte sind American English und laufen über
String.i18xTrans()(i18xe-Anbindung folgt); Code-Kommentare English; Handbücher/Dokumentation Deutsch.
Gulpfile-Änderungen auf der Festplatte erkennt µGulp™ von selbst: Ein Workspace-Watcher (microgulp.watchGulpfiles, Standard an) scannt nach jeder Änderung automatisch neu und tauscht die warmen Worker gegen frische mit dem aktuellen Code. Während des Scans zeigt die Task-Liste eine animierte Fortschrittsanzeige; das Dashboard hat deshalb keinen Rescan-Button mehr — der Befehl µGulp: Rescan Tasks (Befehlspalette) bleibt als manueller Force-Refresh bestehen. Lädt ein Gulpfile nicht (Syntaxfehler, fehlendes Modul), erscheint ein schließbares Fehlerbanner mit Diagnose und Stack-Trace direkt im Dashboard.
µGulp™ findet Gulpfiles wahlweise über einen einzelnen Pfad oder über ein Regex-Muster, das den gesamten Workspace durchsucht:
microgulp.gulpfilePattern— ein JavaScript-Regex (case-insensitive), das gegen den workspace-relativen Pfad (POSIX-Schreibweise mit/) getestet wird. Ist es gesetzt, wird jede passende Datei gescannt; die Tasks werden im Dashboard nach ihrer Quelle gruppiert. Beispiel:(^|/)gulpfile\.(m|c)?js$findetgulpfile.mjs/.js/.cjsim Stamm und in jedem Unterordner.microgulp.gulpfilePath— der klassische Einzelpfad (Defaultgulpfile.mjs). Wird nur verwendet, wenngulpfilePatternleer ist.
node_modules, .git und versteckte Ordner (.*) werden bei der Suche nie betreten. Jedes gefundene Gulpfile bekommt einen eigenen warmen Worker-Pool mit dem Verzeichnis des Gulpfiles als Arbeitsverzeichnis, sodass verschachtelte Unterprojekte mit relativen Pfaden korrekt laufen. Die Discovery-Logik liegt IDE-unabhängig in src/engine/GulpfileDiscovery.mjs und steht damit auch der CLI und dem späteren PhpStorm-Adapter zur Verfügung.
Empfohlen sind µ-präfixierte Tags in CamelCase (µDisplayName, µIcon, …) — sie sind für die klassische gulp-CLI unsichtbar, dadurch bleiben Gulpfiles auf Systemen ohne µGulp™ voll kompatibel (die gulp-CLI adressiert Tasks über function.displayName; ein hübscher Name mit Leerzeichen würde dort die Task-Adressierung brechen). Das Code-Beispiel steht im englischen Abschnitt unter µGulp™ metadata on a Gulp task.
µGroup ordnet den Task einer verschachtelten Gruppe in der Task-Übersicht zu. Die Definition folgt einer Verzeichnis-Pfadsyntax: µGroup = 'Build/Production' erzeugt die Gruppe Build mit Untergruppe Production. Gruppen sind im Dashboard ein-/ausklappbar; Tasks ohne µGroup stehen auf oberster Ebene. Die Zuordnung ist optional und rein visuell — sie hat keinen Einfluss auf Ausführung oder Concurrency.
µOrder legt die Sortierposition in der linken Spalte fest (aufsteigende Ganzzahl). Geschwister-Tasks und -Gruppen werden nach µOrder sortiert; Tasks ohne Wert erscheinen nach allen sortierten Tasks (Tie-Breaker: Anzeigename). Gruppen sortieren nach dem kleinsten µOrder in ihrem Unterbaum.
Sondertasten am Gruppen-Header:
| Aktion | Wirkung |
|---|---|
| Klick | Gruppe auf-/zuklappen |
| Strg+Klick (Cmd+Klick) | alle Gruppen derselben Ebene auf-/zuklappen |
| Alt+Klick | alle Gruppen auf-/zuklappen |
Fallback-Kaskade pro Eigenschaft: µDisplayName → ugulp.displayName (Namespace-Objekt) → displayName (Gulps eigenes Feld) → Exportname. executionRestrictions unterstützt deny (gewinnt immer) und allow (Whitelist: alles Nichtgelistete ist verboten).
Metadaten-Strings nutzen i18x mit eingebettetem Kontext-Tag und .i18xRegister() (für i18xe-sync und Dashboard-Übersetzung):
BUILD_STYLES.µDisplayName = 'Build Styles<context="µDisplayName"/>'.i18xRegister();
BUILD_STYLES.µDescription = 'Compiles the µCSS skin into deploy-ready stylesheets.<context="µDescription"/>'.i18xRegister();
BUILD_STYLES.µGroup = 'Build/Assets<context="µGroup"/>'.i18xRegister();Zum Umbau eines bestehenden Gulpfiles (Konsolenausgabe, Task-Metadaten, i18x/gulp-Wörterbücher) liegt ein gepflegter Prompt im Repository:
| Datei | Zweck |
|---|---|
dev/prompts/OptimizeGulpfileForMicroGulp.md |
Copy-Paste-Prompt für Cursor, Claude, ChatGPT, … |
dev/prompts/OptimizeGulpfileForMicroGulp.params.example.json |
Parameter-Vorlage (Projektpfad, Gulpfile-Name, unterstützte Sprachen, gulp-mu-gulp-api-Version) |
Ablauf
- Parameter-Beispiel ins Projektstammverzeichnis kopieren als
microgulp-optimize.params.jsonund ausfüllen:projectRoot,gulpfilePath,supportedLanguages(z. B.en-US,de-DE,zh-CN),gulpMuGulpApiVersion(^0.3.0oder neuer), sowiegithubRepoUrl/githubRef(Standard:https://github.com/mamekudz/microGulp,main). - Prompt-Markdown öffnen,
{{PLACEHOLDER}}-Tabelle mit den Werten ersetzen (oder in Cursor Params-Datei und Gulpfile anhängen). - Migration durch die KI ausführen lassen. Schritt 0 im Prompt ist Pflicht: zeitgestempeltes Backup des Gulpfiles (z. B.
gulpfile.mjs.20260703-142559.bak) vor jeder Änderung. - Prüfen mit
node --check gulpfile.mjs, Tasks im µGulp-Dashboard testen, danngulpfile.mjs,i18x/gulp/*.jsonundpackage.jsoncommitten.
Verbraucherprojekte brauchen nur i18x/gulp/<lid>.json — kein i18x/prod. Den Prompt bei µGulp-Releases aktualisieren; vor einer Migration die aktuelle Version in diesem Repository prüfen. Der Prompt enthält einen ausführlichen i18x-Regeln-Abschnitt (Register vs. Translate, Richtig/Falsch-Beispiele, i18xe-sync-Scanning, kein µMeta) — Schritt 3 vor dem KI-Lauf lesen.
Fremde Gulpfiles und npm-Pakete innerhalb des Streams nutzen die erweiterten Dashboard-Funktionen über das eigenständige npm-Modul **gulp-mu-gulp-api** (liegt als eigenes Projekt unter gulp-mu-gulp-api/, wird separat auf npm veröffentlicht). Das Code-Beispiel steht im englischen Abschnitt unter Public task API.
Das Modul ist abhängigkeitsfrei und spricht direkt über den IPC-Kanal des µGulp™-Workers mit der Engine (Erkennung via IsMicroGulp() / IsµGulp()). Ohne µGulp™ degradiert alles sauber: Fortschritt aufs Terminal, Eingaben per readline (TTY) oder Default-Werte (CI). Details in gulp-mu-gulp-api/README.md. Das interne Modul src/bridge/gulp-ugulp-bridge.mjs bleibt als Low-Level-Transport bestehen; neue Consumer sollten gulp-mu-gulp-api verwenden.
npm-Module, deren Root-Gulpfile vollständig ins µGulp-Dashboard integriert ist, dürfen das µGulp ready-Logo auf npm-README und Projektseiten zeigen.
| Anforderung | Detail |
|---|---|
| Gulpfile | Exportierte Tasks mit µGulp-Metadaten (µDisplayName, µDescription, µGroup, …) |
| API | Nutzung von gulp-mu-gulp-api für Logging, Fortschritt und optionale Dashboard-Features |
| CLI-Fallback | Tasks bleiben mit plain gulp / npx gulp lauffähig, wenn µGulp nicht installiert ist |
| Badge-Asset | Kanonisches PNG: media/microgulp-ready.png im µGulp-Repo. npm-README: absolute raw-URL (npm schreibt relative Pfade auf microCSS/HEAD/... um). Beispiel:<img src="https://raw.githubusercontent.com/mamekudz/microGulp/main/media/microgulp-ready.png" …> in <a href="https://github.com/mamekudz/microGulp"> |
| package.json | Optional "microgulp": { "ready": true, "certifiedSince": "<semver>" } für maschinenlesbare Erkennung |
Zertifizierte Module
| npm-Paket | Seit | Hinweis |
|---|---|---|
gulp-mu-gulp-api |
0.3.2 | Offizielle Task-API — Log, ReportProgress, i18x-Konsolenschicht, Dashboard-Formulare; npm-README-Badge ab 0.3.3 |
gulp-mu-css (µCSS™) |
2.5.15 | Monorepo-Root-gulpfile.mjs mit vollständigen Task-Metadaten, i18x/gulp/ (en-US, de-DE) und LogBuildDebugReport bei Demo-Builds; npm-README-Badge per absoluter raw-URL ab 2.5.14 |
gulp-mu-ps (µPS) |
1.3.5 | Test-/Render-Tasks im gemeinsamen Root-gulpfile.mjs (TEST_MICROPS, RENDER_EXAMPLES, …) |
gulp-mu-ft (µFT) |
0.1.5 | Test-Task TEST_MICROFT im gemeinsamen Root-gulpfile.mjs |
gulp-mu-au (µAU) |
0.1.6 | Test-Task TEST_MICROAU im gemeinsamen Root-gulpfile.mjs |
Migration mit dev/prompts/OptimizeGulpfileForMicroGulp.md; Zertifizierung per Issue oder PR im µGulp- oder Modul-Repository.
µGulp™ versioniert über **RELEASES.json** im Projektstamm als einzige Versionsquelle. Jeder Release-Eintrag enthält main/minor/revision, Zeitstempel, beta-Flag und eine Liste von Info-Texten. Die Info-Texte tragen den i18x-Kontext-Tag <context="release info"/> und werden über String.i18xRegister() registriert, sodass die i18xe-Engine sie automatisch übersetzen kann.
Das Modul src/engine/ReleaseInfo.mjs liefert dazu:
GetVersionString()/GetFullVersionString()—"0.2.0"bzw."0.1.4ß"(ß-Suffix für Beta-Builds).GetVersionHistoryText({ maxReleases, includeBeta })— die komplette Historie als formatierter String für die Konsole (TaskSHOW_VERSION_HISTORYbzw.npm run history).BUILD_PACKAGEsynchronisiert diepackage.json-Version und die Versionszeile am Kopf dieses READMEs automatisch ausRELEASES.jsonund stempelt sie in den Artefaktnamen (microgulp_V0.2.0.vsix, Betas mit Suffix_beta). Für ein neues Release genügt also ein neuer Eintrag oben inRELEASES.json.
Das Projekt baut sich selbst über sein eigenes Gulpfile (Dogfooding: läuft im µGulp™-Dashboard, über die gulp-CLI, über klassische Gulp-IDE-Erweiterungen und headless):
| Aufruf | Task | Zweck |
|---|---|---|
npm test |
RUN_TESTS |
node:test-Suiten in tests/ (Unit + Engine-Integration mit echten Worker-Prozessen) |
npm run theme |
CREATE_THEME_DATA |
Kompiliert jedes skins/<name>/<name>.µ.css via µCSS (gulp-mu-css BuildSkin) nach src/webview/skins/<name>/dashboard.css (Standard: neon-carbon) |
npm run package |
BUILD_PACKAGE |
Staged die Extension nach tmp/package/ und erzeugt das .vsix in packages/ (zusätzlich aktualisiert als microgulp_latest.vsix) |
npm run deploy |
DEPLOY_EXTENSION |
Update-Zyklus automatisiert: .vsix bauen und per cursor --install-extension installieren (danach Fenster neu laden) |
npm run build |
BUILD_ALL |
Komplette Pipeline: Clean → Tests → Theme → Paket |
npm run history |
SHOW_VERSION_HISTORY |
Gibt die formatierte Versionshistorie aus RELEASES.json auf der Konsole aus |
| — | PUBLISH_API |
Veröffentlicht gulp-mu-gulp-api auf npm (führt vorher dessen Tests aus; npm login erforderlich) |
| — | CLEAN |
Entfernt tmp/ und packages/ (exklusiv, Schreibsperre) |
Hinweise:
gulp-mu-cssist als lokalefile:-Abhängigkeit aufC:\Projects\microCSS\gulp-mu-csseingebunden und wird — wie alle schweren Pakete — erst im Task-Body perawait import()geladen.BUILD_PACKAGEerzeugt ein echtes.vsix, sobald@vscode/vsceinstalliert ist (npm i -D @vscode/vsce); ohne vsce fällt der Task auf ein Zip des Staging-Ordners zurück.- Skins sind eigenständig: ein Verzeichnis pro Skin unter
skins/(z. B.skins/neon-carbon/,skins/ice-light/), jeweils mit einem<name>.µcss.mjs-Manifest und einer gleichnamigen<name>.µ.css-Quelle.CREATE_THEME_DATAerkennt und baut jeden Skin; neon-carbon (dunkel) ist der Standard, ice-light liefert ein helles Frostglas-Pendant. Weitere/eigene Skins lassen sich als Geschwister-Verzeichnisse ergänzen. Die Skin-Auswahl im Dashboard (Einstellungen → Erscheinungsbild) bietet einen Automatik-Modus, der dem hellen/dunklen IDE-/OS-Theme folgt. - Das Webview bevorzugt automatisch das generierte Standard-Skin (
src/webview/skins/neon-carbon/dashboard.css); das handgeschriebenedashboard.cssbleibt als Fallback für frische Checkouts. - Das Dashboard zeigt links neben dem Neon-Schriftzug µGulp™ das gelbe Mikroskop (
baselogo.svg) per µCSS-Data-URI-Inlining (background-image: µ(DataUri("imgs/baselogo.svg"))). Quelle aller fertigen Art-Assets istdev/media/final/; der Build synchronisiert darausmedia/logo.png(Extension-Icon),media/logo_readme.png(README),src/webview/skins/<name>/imgs/baselogo.svg(Dashboard) undphpstorm/resources/icons/baseoutlinelogo.svg(PhpStorm-Toolwindow + Plugin-Liste).
Headless (ohne IDE):
npm run demoScannt demo/gulpfile.mjs, wärmt den Pool vor, startet zwei parallele Tasks, einen exklusiven Task (wartet in der Queue) und einen absichtlich fehlschlagenden Task (Diagnose-Engine).
Als Extension: In VS Code/Cursor F5 drücken (Launch-Konfiguration „Run µGulp Extension"), dann im Entwicklungs-Host µGulp: Open Dashboard ausführen.
µGulp™ (Extension, Engine, Dashboard, PhpStorm-Adapter) ist proprietäre Software — siehe LICENSE. Die verteilten Binärdateien dürfen kostenlos genutzt werden; Kopieren, Ändern oder Weiterverbreiten des Quellcodes ist nicht gestattet.
Das begleitende npm-Paket gulp-mu-gulp-api bleibt unter der MIT-Lizenz, damit Gulp-Tasks es uneingeschränkt einbinden können.
- i18x-Schicht im Webview: Spracheinstellung (automatisch/en-US/de-DE/zh-CN), Kontext-Tags an allen GUI-Strings, Formatdefinitionen aus dem i18xe-Server übernommen — die direkte i18xe-Server-Anbindung folgt später
- µ-Task-Metadaten via
.i18xRegister()-Phrasen mit eingebetteten Kontext-Tags (µDisplayName,µDescription,µTooltip,µGroup) und Standard-Übersetzungsplatzhalter (µI18xContext,version,project,task, …) - Öffentliche Task-API
**gulp-mu-gulp-api**auf npm (Fortschritt, Sound/Sprache, interaktive Formulare mit CLI-Fallbacks;IsMicroGulp,InstallStringExtensions) - Legacy-Prompt-Bibliotheken (
inquirer,gulp-prompt,prompts) auf Dashboard-Formulare umgeleitet, ohne Gulpfiles anzufassen - Erweiterte Dashboard-Formularsteuerelemente (Radio, Range, Textarea, Passwort, Zahl, Datum/Uhrzeit, Datei, Mehrfachauswahl per Checkbox)
- Dashboard-Einstellungen (akustische Kontrolle, Sprachausgabe, Formular-Erinnerung, Fehlerbehandlung, Sprache)
- Konsolen-Rendering in den Task-Sektoren (ANSI-Farben,
\r-Fortschrittszeilen, Zeitstempel) - Persistente Task-Historie & Log-Umlenkung in Dateien (roh
.log+ strukturiert.ndjson,history.ndjson-Index, Retention, Historie-Panel im Dashboard) -
microgulp.config.jsonfür Hosts ohne Einstellungs-UI (PhpStorm-Plugin,microgulp-serveCLI/Browser) - Task-Sortierung im Dashboard über
µOrder(aufsteigend; Gruppen nach Minimum im Unterbaum) - Phase 2 (Testversion): PhpStorm-Adapter — JCEF-Toolwindow + Node-Sidecar + HTTP/SSE-Dashboard-Host (
packages/microgulp-phpstorm_latest.zip)
- Explizite Task-Reihenfolge im Dashboard (
µOrder-Metadaten) -
µLib(microLib) dokumentieren, danach als Utility-Schicht in µGulp einsetzen (i18x ist derzeit eine lokale Webview-Teilmenge) - Direkte i18xe-Server-Anbindung: Live-Übersetzungssync statt der mitgelieferten de-DE/zh-CN-Wörterbücher
-
GUI.mjsausµLibum weitere spezielle Steuerelemente für die Dashboard-Formulare erweitern - Optisches Feintuning des Webview-Dashboards
- µCSS-Skin ausbauen: Symbol-Font, Sprites und Sounds ins Manifest aufnehmen
- Audio-Engine: hochwertige Sounds + Sprachausgabe über i18xe statt WebAudio-Beeps / Web Speech API
- PhpStorm-Plugin: Feinschliff über die Testversion hinaus (optionale Settings-UI, Marketplace-Verteilung)
- VS-Code-/Cursor-Erweiterung in einem Marketplace veröffentlichen



