Skip to content

Logging and bugfixes#16

Merged
anesvijskij merged 7 commits intomainfrom
logging-and-bugfixes
Dec 25, 2025
Merged

Logging and bugfixes#16
anesvijskij merged 7 commits intomainfrom
logging-and-bugfixes

Conversation

@anesvijskij
Copy link
Collaborator

This pull request introduces comprehensive logging and improved observability across the AcuMate VS Code extension, along with enhancements to validation, completion, and snippet features. The most significant changes are the addition of structured logging for backend interactions and commands, more robust configuration state reporting, and tighter validation and IntelliSense alignment with Acumatica platform requirements.

Logging & Observability Improvements:

  • All extension subsystems now log to a single AcuMate output channel, providing structured logs for backend requests, cache hits/misses, configuration reloads, and command execution. This makes debugging and CI integration much easier. [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11]

  • All VS Code commands now log their invocation (with arguments and timing where appropriate), and cache operations and backend feature initialization are tracked for auditing and troubleshooting.

  • The extension now actively reports backend configuration state, warning the user (with actionable prompts) if required settings are missing or backend features are disabled. Dynamic configuration changes are detected and handled gracefully.

Validation & Completion Enhancements:

  • Validation now requires qp-panel and all qp-* controls (except qp-field, qp-label, and qp-include) to define id attributes, catching missing identifiers and misbound panels before packaging.

  • The extension enforces that <qp-template name="record-*"> is only valid inside <qp-data-feed>, matching runtime restrictions and filtering template name completions accordingly. [1] [2]

IntelliSense & Snippet Improvements:

  • Template name completions now filter out record-* entries unless editing inside a <qp-data-feed>, aligning suggestions with validation rules.

  • The ValueChanged snippet now includes a field parameter in the decorator and correctly shifts argument positions, improving event handler scaffolding accuracy.

Other Notable Changes:

  • The initialization process now registers the logger, checks backend configuration, and sets up configuration watchers to ensure observability and feature readiness from extension startup.

  • TypeScript IntelliSense providers are now only initialized once and are guarded by backend configuration state, with detailed logging to clarify their activation.

These changes collectively make the extension more robust, observable, and user-friendly, especially when troubleshooting backend-powered features or integrating with CI.

Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This pull request introduces comprehensive logging infrastructure and validation enhancements to the AcuMate VS Code extension. The changes improve observability, enforce stricter HTML validation rules aligned with Acumatica platform requirements, and enhance IntelliSense behavior.

  • Added structured logging system with a unified AcuMate output channel for tracking backend requests, cache operations, configuration changes, and command execution
  • Implemented validation requiring id attributes on qp-panel and most qp-* controls (excluding qp-field, qp-label, and qp-include)
  • Enhanced template validation to enforce that record-* prefixed templates only appear inside qp-data-feed elements

Reviewed changes

Copilot reviewed 25 out of 25 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
acumate-plugin/src/logging/logger.ts New logging infrastructure with info/warn/error functions for unified output channel
acumate-plugin/src/logging/backend-logger.ts Re-exports logging functions with backend-specific naming
acumate-plugin/src/extension.ts Integrates logger, adds backend configuration state reporting, command invocation logging, and configuration change watchers
acumate-plugin/src/api/layered-data-service.ts Adds logging for cache hits/misses and backend fetch operations
acumate-plugin/src/api/api-service.ts Replaces console.log/error with structured logging for authentication and API requests
acumate-plugin/src/validation/htmlValidation/html-validation.ts Adds id attribute validation for qp-panel and qp-* controls, validates record-* template placement within qp-data-feed
acumate-plugin/src/providers/html-completion-provider.ts Filters record-* template suggestions based on qp-data-feed context
acumate-plugin/src/services/configuration-service.ts Adds reload() method for dynamic configuration updates
acumate-plugin/snippets.json Updates ValueChanged snippet to include field parameter in decorator
acumate-plugin/readme.md Documents new validation rules and logging features
acumate-plugin/src/test/suite/htmlValidation.test.ts Adds tests for id validation and record-* template placement
acumate-plugin/src/test/suite/htmlProviders.test.ts Adds tests for record-* template completion filtering
acumate-plugin/src/test/fixtures/html/* Updates existing fixtures to comply with new id requirements and adds new test fixtures

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@anesvijskij anesvijskij merged commit f3a2cd7 into main Dec 25, 2025
1 check passed
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.

3 participants