Skip to content

feat(vscode): add missing assets and uninstall to view menu#16

Open
mehdic wants to merge 425 commits intomainfrom
claude/vscode-setup-extension-1VsSs
Open

feat(vscode): add missing assets and uninstall to view menu#16
mehdic wants to merge 425 commits intomainfrom
claude/vscode-setup-extension-1VsSs

Conversation

@mehdic
Copy link
Copy Markdown
Owner

@mehdic mehdic commented Feb 3, 2026

  • Add journeys core to extension assets (was missing, causing install gap)
  • Add common/ and next-commands/ to prompts assets
  • Add uninstall command to Status view overflow menu (...)
  • Fix uninstall to also remove .artk/ directory
  • Add sync-vscode-assets.sh script to keep assets in sync

The extension installer now has feature parity with bootstrap.sh for:

  • Journey system installation
  • Prompt common rules (GENERAL_RULES.md, AUTH_BYPASS_PATTERNS.md)
  • Next-commands handoff files

https://claude.ai/code/session_01WjUMcG34n6oe5MULEPECb3

Chaouachi Mehdi and others added 30 commits January 15, 2026 17:27
Critical fixes from self-review:

Issue 1 - Parameter Priority Rules:
- Explicit tier counts override coverage presets
- includeRegression=false disables regression regardless of coverage
- maxJourneys caps total with priority-based filling (smoke→release→regression)

Issue 2 - maxJourneys Enforcement:
- Fill tiers in priority order until maxJourneys hit
- Document example: maxJourneys=30 with 10/20/20 → 10/20/0

Issue 3 - Tier Assignment Criteria:
- Smoke: happy-path only, HIGH feasibility, critical business, fast, stable
- Release: happy-path or alternatives, MEDIUM+ feasibility, breadth
- Regression: edge cases, negative paths, lower feasibility OK
- Demotion rule: high-risk candidates demoted if don't meet tier criteria

Issue 4 - Backward Compatibility:
- Document breaking change: includeRegression default true (was false)

Issue 5 - Empty Tier Handling:
- Empty tiers allowed, don't promote lower-tier candidates
- Explain in output why tier is empty

Issue 6 - Insufficient Data Distribution:
- Apply tier criteria first, then assign (not sequential fill)
- Report actual vs requested counts

Issue 7 - Rerun Behavior:
- Existing proposals unchanged (no re-tier, no re-score)
- New candidates only, existing count toward limits
- Document "delete journeys/proposed/ to start fresh"

Additional improvements:
- Mode vs coverage clarification (question depth vs quantity)
- Evidence JSON now includes coverage, requested/actual counts
- Step 13 explicit table format with tier column
- Tier balance guidance (20%/40%/40% for large)
- Comprehensive completion checklist with tier summary box
- New edge cases: insufficient candidates, parameter conflicts, rerun

Research document:
- Critical review with 7 issues, 5 inconsistencies, 6 missing features
- Prioritized implementation checklist

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- journey-define: Added mandatory output section with valid handoff commands
- journey-clarify: Added mandatory output section with valid handoff commands
- journey-propose: Added mandatory output section + progress reporting for large coverage
- journey-implement: Added mandatory output section with valid handoff commands
- journey-validate: Added mandatory output section with valid handoff commands
- journey-verify: Added mandatory output section with valid handoff commands

Each NEXT COMMANDS section:
- Uses only commands from the handoffs section (no hallucinated commands)
- Includes explicit warning to not invent commands
- Provides contextual guidance (IF condition, RECOMMENDED, OPTIONAL)
- Uses <JRN-ID> placeholder pattern consistently

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
…tion

Major changes to test generation workflow:

**Step 9.5 - AutoGen CLI (Primary Approach):**
- Replaced programmatic API example with CLI commands
- Added full CLI options table (-o, -m, --dry-run, etc.)
- Shows example output for clarity
- Kept programmatic API as "Alternative" for advanced users

**Step 9.6 - Handle AutoGen Results (NEW):**
- Decision tree for AutoGen success/partial/failure
- Option A: Add machine hints to Journey and re-run
- Option B: Fall back to manual implementation

**Step 10 - Manual Implementation (Fallback):**
- Reframed as fallback, not primary approach
- Clear guidance on when to use manual vs AutoGen
- "Skip to Step 10.5 if AutoGen succeeded"

**Step 15 - Backlog/Index Regeneration:**
- Added explicit script reference: tools/journeys/generate.js
- Clarifies the two different "generate" scripts

Research doc: research/2026-01-16_autogen-cli-integration.md

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Changes to match journey-implement pattern and fix identified issues:

**Step 3.5 - AutoGen Validation CLI (Primary Approach):**
- Replaced programmatic API example with CLI commands
- Added full CLI options table (--lint, --format, --strict, -q)
- Shows both success and failure example output
- Fixed API signature to match actual implementation (validateJourneys)
- Kept programmatic API as "Alternative" for advanced users

**Autofix Policy Fix:**
- Changed "fix import path to harness base test" to
  "fix import path to use @artk/core/fixtures"

**Lint Command Fix:**
- Added quotes around glob pattern to prevent shell expansion
- Added note about quoting requirement

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Critical fixes for questionnaire implementation:

1. Question State Tracking Protocol
   - Track CURRENT_QUESTION, ANSWERS, TOTAL_QUESTIONS
   - Handle multi-answer responses
   - Support shortcuts (keep all, defaults, skip)

2. After-Confirmation Routing
   - Y/Enter → proceed to Step 4C
   - N → re-ask selected questions
   - Specific change → update and re-confirm

3. Mode C Targeted Reconfiguration
   - Only ask about broken/unknown fields
   - Single-field: apply immediately without confirmation
   - Multi-field: one-at-a-time then confirmation
   - Show valid current values as read-only context

4. Non-Interactive Mode Safe Fallbacks
   - auth.bypass.mode → 'none' (not 'unknown')
   - auth.provider → 'form-login'
   - STOP with error if truly unknowable

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
All prompt references now use consistent /artk.command format:
- /init-playbook → /artk.init-playbook
- /discover-foundation → /artk.discover-foundation
- /journey-implement → /artk.journey-implement
- /journey-validate → /artk.journey-validate
- /journey-verify → /artk.journey-verify
- /journey-clarify → /artk.journey-clarify
- /journey-define → /artk.journey-define
- /journey-propose → /artk.journey-propose
- /testid-audit → /artk.testid-audit

Also adds LLKB implementation review v4 document.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
The `name` field in YAML frontmatter determines the command name
that VS Code Copilot recognizes, not the filename.

Fixed:
- journey-implement → artk.journey-implement
- journey-validate → artk.journey-validate
- journey-verify → artk.journey-verify
- testid-audit → artk.testid-audit

Now /artk.journey-validate will be recognized by Copilot.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Added explicit `name: artk.*` fields to prompts that were missing them:
- artk.discover-foundation
- artk.init-playbook
- artk.journey-clarify
- artk.journey-define
- artk.journey-propose
- artk.uninstall

Now all 10 ARTK prompts have consistent, explicit name fields
ensuring VS Code Copilot recognizes them with the /artk.* prefix.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Added the standard NEXT COMMANDS box showing verbatim commands
for the next steps in the workflow:
1. /artk.discover-foundation (recommended)
2. /artk.journey-propose (after discovery)
3. /artk.journey-define (alternative manual approach)
4. /artk.testid-audit (optional)

This supplements the existing Next Steps section without changing it.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
…tructions

Added instruction for Claude to use `Invoke-WebRequest -Uri <url>` (PowerShell)
for making direct HTTP/API calls in the distributed copilot-instructions.md.

Updated in both:
- Full template (for new files)
- Append section (for existing files)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add spec for Node.js version compatibility (14, 16, 18, 20, 22)
- Define 4 build variants: modern-esm, modern-cjs, legacy-16, legacy-14
- Include 6 user stories with acceptance scenarios
- Define 20 functional requirements
- Add AI protection requirements (READONLY.md, .ai-ignore)
- Include comprehensive implementation plan reference
- Add quality checklist for requirements validation

Closes: Multi-variant build system planning phase

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Clarifications added:
- Partial failure recovery: full rollback to clean state
- LLM feature handling: auto-substitute unsupported features
- Feature compatibility format: prose + structured JSON/YAML
- Observability: verbose logging to .artk/install.log
- Concurrency: lock file prevents simultaneous installs

New requirements added: FR-021 to FR-028
New entities: Feature Compatibility File, Install Log, Lock File

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Phase 0 (Research):
- Playwright version compatibility (1.57/1.49/1.33)
- TypeScript targets (ES2022/ES2021/ES2020)
- Module system detection strategy
- Build tooling decisions (tsup + tsc)
- Feature compatibility documentation format

Phase 1 (Design):
- Data model with 6 entities (Variant, Context, InstallLog, etc.)
- JSON schemas for variant-features.json and context.json
- Quickstart guide for users, developers, and AI agents
- Updated CLAUDE.md with new tech context

Constitution Check: All gates passed

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Implements the full multi-variant build system for ARTK supporting
Node.js 14-22 with 4 distinct variants:

- modern-esm: Node 18+, ESM, Playwright 1.57.x, ES2022
- modern-cjs: Node 18+, CJS, Playwright 1.57.x, ES2022
- legacy-16: Node 16+, CJS, Playwright 1.49.x, ES2021
- legacy-14: Node 14+, CJS, Playwright 1.33.x, ES2020

Key components:
- CLI utilities: variant detection, install logger, lock manager, rollback
- Build scripts: build-variants.sh/ps1 for all 4 variants
- Bootstrap integration: auto-detection in bootstrap.sh/ps1
- CI/CD: GitHub Actions workflow with Node 14/16/18/20/22 matrix
- Docker: Dockerfiles for local cross-version testing
- Tests: 146 unit tests for CLI variant system modules

Build performance: 17 seconds (target: <5 minutes)
Test suite: 3,096 tests pass across all variants
Build reproducibility: verified with hash comparison

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Fixes critical bug where CJS builds failed to resolve template paths
when executed from a different working directory.

Changes:
- Add src/utils/paths.ts with cross-module-system path utilities
  - Uses __dirname for CJS (declared via TypeScript)
  - Uses import.meta.url for ESM
  - Falls back to require.resolve, then process.cwd()
- Add scripts/strip-esm-code.js post-build script
  - Removes ESM-specific code blocks from CJS builds
  - Prevents import.meta syntax errors in CJS context
- Update package.json build scripts to run strip-esm after CJS builds
- Update generateModule.ts and generateTest.ts to use getTemplatePath()
- Update version.ts to use getPackageRoot()
- Add README documentation for Node.js version support

All 4 build variants (ESM, CJS, Legacy-16, Legacy-14) now correctly
resolve templates regardless of working directory.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
1. Fix nodeRange in package-legacy-*.json files
   - Remove non-LTS versions (15, 17, 19) from nodeRange
   - Now matches variant-definitions.ts (LTS-only policy)
   - Affected: 4 files (core + autogen legacy packages)

2. Add type:commonjs package.json generation to CJS build scripts
   - Ensures dist-cjs/, dist-legacy-16/, dist-legacy-14/ have package.json
   - Generated on every build (not just committed files)
   - Prevents CJS module resolution issues after clean builds

3. Change autogen variant fallback from warning to error (FR-003)
   - Previously: warning + fallback to default dist (variant mismatch risk)
   - Now: hard error requiring matching variant builds
   - Enforces spec requirement: "both packages MUST use same variant"

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
feat: ARTK Multi-Variant Build System (006)
Major prompt rewrites for consistent AutoGen CLI compatibility:

journey-implement:
- MANDATORY PRE-IMPLEMENTATION GATES for LLKB and AutoGen
- SERIAL EXECUTION POLICY for batch journeys
- AutoGen as PRIMARY approach, manual as FALLBACK
- Decision tree safeguards, rate limiting, component matching

journey-clarify:
- Status gate (only accepts status: defined)
- One-question-at-a-time enforcement (compaction-resistant)
- Machine hints verification with mandatory output box
- Module classification algorithm (FOUNDATION_MODULES)
- blockedSteps format specification (step+reason)
- All-blocked threshold rule (>80% disables autogen)
- Legacy journey migration section
- Empty modules validation
- Opt-out handling when autogen.enabled: false
- Hint syntax validation with VALID_ROLES list
- force flag for re-clarification

journey-propose:
- Full FOUNDATION_MODULES list (11 items, synced with clarify)
- autogen section with machineHints: false

journey-define:
- Module format conversion algorithm
- autogen section with machineHints: false

Also includes CLI improvements and moves PROMPT_IMPROVEMENTS.md to docs/.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
claude and others added 28 commits February 3, 2026 10:04
P0 Critical Fixes:
- Fix copyDir to skip symlinks (security: prevents path traversal)
- Add stripJsonComments() that preserves URLs containing //
- Add staging directories with atomic rollback for prompt installation
- Add artk-core-journeys copying to vendor libs

P1 High Fixes:
- Add detectUpgradeNeeded() to detect old-style prompts without agent: property
- Add cleanupOldBackups() to keep only 3 most recent backups
- Add 5-minute timeout to npm install to prevent hanging
- Complete context.json schema with missing fields:
  - variantInstalledAt, templateVariant, artkRoot, next_suggested, overrideUsed
  - previousInstallBackup when force reinstall used
- Use backupPath for rollback on failure
- Log backup path to user when force reinstall used
- Return backupPath in InstallResult

Code Quality:
- installPrompts now uses staging directories for atomic operations
- Failed installation with backup triggers automatic rollback
- Text fallback for VS Code settings uses actual values, not hardcoded true

All 170 tests pass. Build: 195.8kb

https://claude.ai/code/session_01WjUMcG34n6oe5MULEPECb3
P2 Remaining Fixes:
- Complete artk.config.yml schema with version, app.type, app.description, core section
- Add browser detection with Edge/Chrome fallback (detectBrowser function)
- Detect project Node version from .nvmrc, package.json engines, or PATH
  instead of using Electron's node version
- Pass detected browser info to context.json and artk.config.yml
- Get project name from package.json or folder name for config

https://claude.ai/code/session_01WjUMcG34n6oe5MULEPECb3
Browser installation now follows the same logic as bootstrap.sh:
1. If system browser (Edge/Chrome) detected → use it, skip bundled download
2. If no system browser → try bundled chromium install
3. If bundled install fails → re-detect system browsers as fallback
4. Only fail if NO browser is available at all

New functions:
- installBundledChromium(): Install just the bundled chromium
- updatePlaywrightConfigChannel(): Update playwright.config.ts channel
- updateArtkConfigChannel(): Update artk.config.yml browser settings
- updateContextBrowserInfo(): Update context.json browser info
- installBrowsersWithFallback(): Full fallback logic with config updates

This ensures users on restricted networks can still use ARTK with
Edge/Chrome even if Playwright's CDN is blocked.

https://claude.ai/code/session_01WjUMcG34n6oe5MULEPECb3
P0 Critical Fixes:
- Delete artk-e2e directory after backup on force reinstall (prevents file merging/corruption)
- Fix testBrowser double-resolution race condition (add resolved flag, clearTimeout)
- Add 5-minute timeout to installBundledChromium (prevents indefinite hangs)

P1 High Priority Fixes:
- Set PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD=1 when using system browser
- Backup more directories: journeys/, tests/, src/modules/, .artk/
- Sanitize projectName for YAML safety (remove ", ', newlines, colons)

All 170 tests passing, build size: 201.0kb

https://claude.ai/code/session_01WjUMcG34n6oe5MULEPECb3
P1 Fixes:
- Generate variant-specific features in variant-features.json based on Playwright version
  - legacy-14: Missing aria_snapshots, locator_or, locator_and
  - legacy-14/16: Missing clock_api, expect_soft, aria_snapshot_matchers
  - Includes alternatives for unavailable features
- Optimize Linux browser detection with 'which' command check before spawning
  - Avoids spawning processes for non-existent commands
  - Uses browserExists() helper for path vs command detection

P2 Fixes:
- Add forceLlkb option to BundledInstallOptions interface
  - Deletes existing LLKB before reinitializing when forceLlkb=true
- Cache first browser detection result
  - Removes redundant detectBrowser() call in fallback case
  - Initial detection is thorough; re-detecting wastes 10+ seconds on Linux

All 170 tests passing, build size: 201.3kb

https://claude.ai/code/session_01WjUMcG34n6oe5MULEPECb3
Multi-perspective analysis covering:
- Security audit (Grade: A-)
- Reliability engineering (Grade: B+)
- UX design (Grade: A)
- Performance (Grade: B+)
- Maintainability (Grade: A-)

Key findings:
- 97% feature parity with bootstrap.sh (applicable features)
- All P0-P2 issues from previous reviews resolved
- 5 P3 nice-to-have items identified (no action required)
- Backward compatibility: Excellent
- Overall confidence: 0.95

Verdict: PRODUCTION READY

https://claude.ai/code/session_01WjUMcG34n6oe5MULEPECb3
The check command was using `npx @artk/cli check` which requires npm
registry access. This fails on corporate networks with private registries
that don't have @artk/cli published.

Replaced with native TypeScript implementation that:
- Detects Node.js version via `node --version`
- Detects npm version via `npm --version`
- Detects browsers (Edge, Chrome, bundled Chromium) locally
- Reports issues with actionable suggestions

This makes the extension fully self-contained - no npm registry access
needed for any extension commands.

https://claude.ai/code/session_01WjUMcG34n6oe5MULEPECb3
Removes all CLI dependencies (npx @artk/cli) from core commands to make
the extension fully self-contained on networks without npm registry access.

Native implementations:
- doctor: File system checks for directories, files, dependencies, LLKB
  - Validates artk-e2e structure, package.json, context.json, config.yml
  - Auto-fix option for missing directories
  - Detailed output with pass/warn/fail status

- upgrade: Reuses bundled installer with force flag
  - Preserves LLKB learned patterns (skipLlkb: true)
  - Preserves browser config (skipBrowsers: true)
  - Updates prompts to latest version
  - Re-runs npm install for dependency updates

- uninstall: Native fs.rm implementation
  - Removes artk-e2e directory
  - Optional prompt/agent cleanup (.github/prompts/artk.*, .github/agents/artk.*)
  - User confirmation with modal dialog

Commands still using CLI (deferred - power user features):
- LLKB commands (health, stats, export, seed)
- Journey commands (validate, implement)

Build: 208.0kb | Tests: 170 passing

https://claude.ai/code/session_01WjUMcG34n6oe5MULEPECb3
Adds comprehensive integration tests covering:
- Directory structure creation (artk-e2e, vendor, tests, journeys)
- Config file generation (package.json, tsconfig, artk.config.yml)
- Context metadata in .artk/context.json
- LLKB structure initialization
- Two-tier prompt/agent architecture
- Foundation module stubs
- Variant-specific features
- Force reinstall with backup
- Auto-detection for legacy Node versions
- YAML-safe project name sanitization

All 12 tests passing.

https://claude.ai/code/session_01WjUMcG34n6oe5MULEPECb3
- Add upfront validation that bundled assets exist before installation
- Add step-by-step progress reporting with increments (Step N/10)
- Add post-installation verification to confirm critical files created
- Better error messages when assets are missing or installation fails
- Progress percentages: file creation 30%, LLKB 5%, prompts 5%, npm 40%, browsers 20%

This helps diagnose issues where installation appears to succeed
but files were not actually created (e.g., missing bundled assets).

https://claude.ai/code/session_01WjUMcG34n6oe5MULEPECb3
Adds a new "Workflow" tree view showing all 10 ARTK workflow steps:
1. Initialize Playbook (run-once, auto-detects completion)
2. Discover Foundation
3. Build Foundation
4. Propose Journeys
5. Define Journey
6. Clarify Journey
7. Implement Journey
8. Validate Journey
9. Verify Journey
10. Maintain Journeys (optional)

Each step has two inline buttons:
- Play icon: Execute immediately in Copilot Chat (clears chat first)
- Edit icon: Open in Copilot Chat for editing before submit

Features:
- Steps show (Required) or (Optional) tags
- Run-once steps (init-playbook) are disabled after completion
- Auto-detects init-playbook completion by checking for copilot-instructions.md
- Rich tooltips with step descriptions and command info
- Reset button to re-enable completed run-once steps
- Completion state persisted in workspace state

Uses workbench.action.chat.open with:
- isPartialQuery: false for execute (auto-submit)
- isPartialQuery: true for edit (wait for user)

https://claude.ai/code/session_01WjUMcG34n6oe5MULEPECb3
…system

Implements comprehensive coverage improvement architecture:

Coverage Flow: Normalization → Core Patterns → LLKB → Fuzzy → LLM → TODO

New modules:
- normalize.ts: Enhanced text normalization with 170+ verb stems
- fuzzyMatcher.ts: Levenshtein-based matching with 0.85 threshold
- unifiedMatcher.ts: Single entry point for all pattern matching
- llmFallback.ts: Schema-validated LLM fallback (disabled by default)
- patternPromotion.ts: Wilson score-based pattern promotion
- blocked-step-telemetry.ts: Batched telemetry with 5s writes

Feedback loop wiring:
- run.ts: Fire-and-forget recordPatternFailure() on test failures
- refine.ts: extractLessonsFromSession() after successful fixes

CLI enhancements (patterns command):
- suggest: Generate patterns with regex from telemetry
- promotion: Show LLKB pattern promotion status
- stats: Combined telemetry + LLKB statistics

Generated with [Claude Code](https://claude.ai/code)
via [Happy](https://happy.engineering)

Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: Happy <yesreply@happy.engineering>
Generated with [Claude Code](https://claude.ai/code)
via [Happy](https://happy.engineering)

Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: Happy <yesreply@happy.engineering>
P0 Fixes:
- Remove non-existent prompts: foundation-build, journey-maintain
- Add missing testid-audit step (optional, step 6)
- Renumber steps to 1-9 (was incorrectly 1-10)

P1 Fixes:
- Add Copilot Chat extension check before executing steps
- Shows "Open Extensions" button if GitHub.copilot-chat not installed
- Mark journey-propose as optional (user can manually create journeys)
- Update journey-propose name to "Propose Journeys (Auto-create from app)"
- Name magic constant CHAT_INIT_DELAY_MS (was hardcoded 100ms)

Final workflow (9 steps):
1. Initialize Playbook (required, run-once)
2. Discover Foundation (required)
3. Propose Journeys (optional)
4. Define Journey (required)
5. Clarify Journey (required)
6. Audit Test IDs (optional)
7. Implement Journey (required)
8. Validate Journey (required)
9. Verify Journey (required)

Includes research doc with full review findings.

https://claude.ai/code/session_01WjUMcG34n6oe5MULEPECb3
Addresses 9 issues from code review:

High Priority:
1. Fix fuzzy-generated primitives to match actual IR schema
   - Updated createGenericPrimitive() to use proper locator specs
   - Removed invalid types (navigate, assert, wait, scroll)
   - All primitives now use correct IR structure

2. Fix generated promotion code to produce executable extraction logic
   - Replaced JSON.stringify with generateExtractorCode()
   - Generated code now contains actual JavaScript expressions
   - Removed obsolete getDefaultPrimitive() function

Medium Priority:
3. Add missing primitive validation cases in LLM fallback
   - Added validation for upload, waitForResponse, waitForURL
   - Added validation for expectValue, expectCount, expectChecked
   - Added validation for callModule, signals, navigation primitives

4. Bound telemetry history array
   - Added MAX_HISTORY_ENTRIES = 1000 limit
   - Added addHistoryEntry() helper with automatic trimming

5. Register process exit handlers for telemetry flush
   - Added registerExitHandlers() to blocked-step-telemetry.ts
   - Handles SIGINT, SIGTERM, and beforeExit events

6. Increase error message truncation length to 500 chars
   - Updated run.ts truncation from 200 to 500 chars

Low Priority:
7. Add compound verb forms to stemming dictionary
   - Added double-click, right-click, drag-and-drop variants
   - Added sign-in/out, log-in/out, sign-up variants

8. Consider early termination in fuzzy matching for performance
   - Added 0.98 similarity threshold for early termination
   - Breaks search loop when near-perfect match found

9. Document telemetry system consolidation plan
   - Created research/2026-02-03_telemetry-consolidation-plan.md
   - Documented three telemetry systems and consolidation roadmap

Generated with [Claude Code](https://claude.ai/code)
via [Happy](https://happy.engineering)

Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: Happy <yesreply@happy.engineering>
- Update dist files with latest compiled code
- Add plannedActionAdapter.ts for IR to Playwright code generation
- Add unified-pattern-matching-plan.md research document
- Update CLI commands (analyze, generate, plan, status) with imports
- Update E2E test script improvements
- Fix lint: use totalLlkbSkipped in generate.ts output

Generated with [Claude Code](https://claude.ai/code)
via [Happy](https://happy.engineering)

Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: Happy <yesreply@happy.engineering>
Each workflow step now shows a detailed tooltip on hover with:
- Step name and command
- Full description of what the command does
- Output files it creates
- When to run it
- Tips and best practices

Tooltips use Markdown formatting with:
- Headers and sections
- Code blocks for file paths
- Bullet points for lists
- Separator lines for readability

Also includes all previous P0/P1 fixes:
- Removed non-existent prompts
- Added testid-audit step
- Added Copilot Chat extension check
- Marked journey-propose as optional

https://claude.ai/code/session_01WjUMcG34n6oe5MULEPECb3
The validateOutputPath function was using a dynamic require('node:path')
which fails in ESM environments with "Dynamic require of 'path' is not
supported". Fixed by adding resolve and relative to the existing path
import at the top of the file.

This fixes the generate stage in E2E tests which was silently failing.

Generated with [Claude Code](https://claude.ai/code)
via [Happy](https://happy.engineering)

Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: Happy <yesreply@happy.engineering>
Add "verify llkb loop" trigger phrase and detailed instructions for
verifying the LLKB feedback loop is working correctly:
- How to run the E2E test
- What to check in the output
- Manual verification steps
- Expected behavior for pattern confidence progression

Generated with [Claude Code](https://claude.ai/code)
via [Happy](https://happy.engineering)

Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: Happy <yesreply@happy.engineering>
Add VS Code extension for ARTK test automation
The workflow needs explicit write permission to push version bump commits.
Added 'permissions: contents: write' at workflow level.

https://claude.ai/code/session_01WjUMcG34n6oe5MULEPECb3
- Add journeys core to extension assets (was missing, causing install gap)
- Add common/ and next-commands/ to prompts assets
- Add uninstall command to Status view overflow menu (...)
- Fix uninstall to also remove .artk/ directory
- Add sync-vscode-assets.sh script to keep assets in sync

The extension installer now has feature parity with bootstrap.sh for:
- Journey system installation
- Prompt common rules (GENERAL_RULES.md, AUTH_BYPASS_PATTERNS.md)
- Next-commands handoff files

https://claude.ai/code/session_01WjUMcG34n6oe5MULEPECb3
@mehdic mehdic force-pushed the main branch 2 times, most recently from 75fe381 to b3092a9 Compare March 19, 2026 09:35
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants