Commit Graph
100 Commits
Author SHA1 Message Date
Sergey Krashevich c90480a40c Merge branch 'master' into dev 2026-03-21 11:02:11 +03:00
Sergey Krashevich 6482373aa3 chore(build): add dev branch to build workflow - include 'dev' branch to trigger builds alongside 'beta' docs(README): update binary download links to dev builds - change links to point to nightly builds for development binaries 2026-03-17 04:36:04 +03:00
Sergey Krashevich d6a4d1e8e0 docs(README): update change log to include latest PR 2159 - add entry for PR 2159 regarding PCMA and PCMU handling by @ludufre 2026-03-17 04:27:13 +03:00
Sergey Krashevich 107924d2f7 Merge pull request #2159 from ludufre/fix/mpegts-pcma-pcmu-probe 2026-03-17 04:13:14 +03:00
Sergey Krashevich 8f3be3050b docs(README): add section for merged PRs not yet in master 2026-03-11 13:38:31 +03:00
Sergey Krashevich 6a968c8595 docs(README): update Docker image references from skrashevich to AlexxIT for consistency 2026-03-11 13:30:34 +03:00
Sergey KrashevichandGitHub cc5f177314 Merge pull request #2147 from skrashevich/beta
dev branch: merge from skrashevich/go2rtc:beta
2026-03-11 12:02:11 +03:00
Sergey Krashevich f1d4baa5d0 docs(README): update features and improvements sections - add WebUI enhancements and clarify system resource monitoring details 2026-03-11 02:17:42 +03:00
Sergey Krashevich 5d6b4911ff docs(README): add screenshots and update image references - include dark and light theme screenshots for various app components - update image links in the documentation for consistency feat(package): add playwright as a dependency - include playwright for end-to-end testing capabilities 2026-03-11 02:13:15 +03:00
Sergey Krashevich 27b04ed9d8 style(links, add, index, info, probe, log, main, styles): update styles and improve layout - refactor button and input styles for consistency across pages - enhance responsive design for better usability on mobile devices - adjust spacing and margins for a cleaner look - unify color scheme and hover effects for links and buttons - remove unused font imports to optimize loading performance 2026-03-11 02:12:52 +03:00
Sergey Krashevich 5fced9a580 Update README files to reflect new Docker image naming and features in the fork 2026-03-11 00:24:33 +03:00
Sergey Krashevich d4c2721d1c Update Go version to 1.26 in workflows and Dockerfiles 2026-03-11 00:17:31 +03:00
Sergey Krashevich 9f5a4b2d96 Publish to GHCR only; remove DockerHub logins
Simplify CI container publishing by targeting only GitHub Container Registry. The docker/metadata-action images inputs for meta, meta-hw and meta-rk jobs were changed to ghcr.io/${{ github.repository }} (removing DockerHub image entries). DockerHub login steps were removed, and the GHCR login now runs for all non-pull_request events (if: github.event_name != 'pull_request'). Changes are in .github/workflows/build.yml to avoid pushing to DockerHub and ensure GHCR auth runs on appropriate events.
2026-03-11 00:15:37 +03:00
Sergey Krashevich 002070991c Merge remote-tracking branch 'origin/251221-webui-redisign' into beta
# Conflicts:
#	www/index.html
#	www/links.html
#	www/main.js
2026-03-11 00:02:12 +03:00
Sergey Krashevich 072cdd7c44 Merge remote-tracking branch 'origin/260201-readonly' into beta
# Conflicts:
#	README.md
#	www/index.html
2026-03-10 23:58:57 +03:00
Sergey Krashevich e59b17d77d Merge remote-tracking branch 'origin/260216-include-js-to-docker' into beta 2026-03-10 23:56:49 +03:00
Sergey Krashevich 7208e33aeb Merge remote-tracking branch 'origin/260213-add-pid-to-api' into beta 2026-03-10 23:56:45 +03:00
Sergey Krashevich 2141cce5e0 Merge remote-tracking branch 'origin/260213-fix-schemas-race-condition' into beta 2026-03-10 23:56:37 +03:00
Sergey Krashevich 21b9b49c06 Merge remote-tracking branch 'origin/260210-fix-yaml-patch-merge' into beta 2026-03-10 23:56:30 +03:00
Sergey Krashevich 256befb592 Merge branch 'go-webp' into beta
# Conflicts:
#	.gitignore
#	go.sum
2026-03-10 23:54:17 +03:00
Sergey Krashevich 1f2396e278 Merge branch 'hksv' into beta
# Conflicts:
#	pkg/hap/hds/hds_test.go
2026-03-10 23:53:40 +03:00
Sergey Krashevich 2b7682cdb3 refactor(dvrip): simplify broadcast loop structure
- replace traditional for loop with range-based for loop for clarity

refactor(ffmpeg): simplify cut function loop
- utilize range-based for loop instead of traditional for loop

refactor(ring): update API response mapping type
- change map type from `interface{}` to `any` for better type safety

refactor(stream): handle nil source in NewStream
- add nil check for source elements before processing

refactor(webrtc): unify payload handling in GetToken
- change map type from `interface{}` to `any` for consistency

refactor(ascii): optimize nested loops in Write function
- replace traditional for loops with range-based for loops for readability

refactor(bits): enhance readability in Reader methods
- replace traditional for loops with range-based for loops in Read functions

refactor(h264): modernize loop structures in DecodeConfig
- switch to range-based for loops for cleaner code

refactor(h265): streamline profile_tier_level loops
- utilize range-based for loops instead of traditional for loops

chore(core): remove commented-out test function for clarity

refactor(core): simplify RandString function loop
- change traditional for loop to range-based for loop

refactor(flvt): optimize timestamp handling in TestTimeToRTP
- switch to range-based for loop for iterating frames

refactor(nest): improve error handling in ExchangeSDP
- format error message with printf-style formatting for clarity

refactor(tapo): enhance securityEncode function
- change traditional for loop to range-based for loop for readability

fix(tcp): correct masking in websocket Write method
- replace traditional for loop with range-based for loop

refactor(tutk): modernize encoding loops in crypto functions
- utilize range-based for loops for better readability

refactor(tuya): unify data types in MQTT message struct
- change map type from `interface{}` to `any` for consistency

refactor(webrtc): standardize codec registration
- change map type from `interface{}` to `any` for type safety

refactor(yaml): simplify Unmarshal function signature
- update parameter type from `interface{}` to `any` for better clarity
2026-03-10 23:26:45 +03:00
Sergey Krashevich 319fc3a154 Update Go version to 1.26.1 and remove unused dependencies 2026-03-10 23:03:22 +03:00
Sergey Krashevich f435b49652 chore(go.mod): remove unused dependencies - delete github.com/asticode/go-astits and github.com/asticode/go-astikit from go.mod and go.sum to clean up unused imports - update the project dependencies for better maintainability 2026-03-10 22:56:42 +03:00
Sergey Krashevich 0d8d4c204d fix(go.mod, go.sum): update go-webp dependency to v0.1.0 2026-03-10 22:54:14 +03:00
Sergey Krashevich ea03aa832d feat(webp): add WebP streaming and snapshot APIs
- implement WebP streaming with multipart support
- add snapshot endpoint for WebP format with quality options
- introduce WebP encoding using pure Go library without FFmpeg
- update documentation and links for new WebP features
2026-03-10 22:43:29 +03:00
Sergey Krashevich 506cfa7df5 fix(.gitignore): add .omc to ignore list and ensure .ruff* is properly included 2026-03-10 22:29:03 +03:00
Sergey Krashevich e2e593ea3a feat(schema): add new motion detection options and properties - extend motion detection modes to include 'onvif' for event subscription - introduce 'motion_hold_time' to manage active motion duration - add 'onvif_url' for specifying ONVIF device URL for detection 2026-03-10 22:28:29 +03:00
Sergey Krashevich 8a21809f18 feat(homekit): add ONVIF motion detection support
- implement ONVIF motion watcher to handle motion events
- add configuration options for motion hold time and ONVIF URL
- remap motion mode from "onvif" to "api" for compatibility
- log ONVIF motion watcher activity for better debugging

feat(onvif): implement event subscription for motion detection
- create PullPoint subscription to receive motion events
- implement methods for pulling messages and renewing subscriptions
- handle event requests and responses specific to motion detection

test(onvif): add unit tests for motion event parsing and subscription
- create tests for parsing various motion event XML responses
- verify correct handling of multiple notifications and edge cases
- test resolving event addresses for ONVIF clients

fix(hksv): improve motion detection logging
- log warnings when accessory or character not found during motion detection
- log number of listeners notified during motion state changes

feat(hap): add listener count method
- introduce method to retrieve the number of listeners for a character

feat(onvif): enhance ONVIF client with event URL handling
- extract event URL from ONVIF device response for subscription management
2026-03-09 13:06:57 +03:00
Sergey Krashevich e3d1085a6d feat(hksv): add motion detection API and enhance server handling for consumers 2026-03-07 18:54:50 +03:00
Sergey Krashevich 9c901dc995 feat(hksv): add example CLI application for exporting RTSP cameras as HKSV 2026-03-06 20:54:53 +03:00
Sergey Krashevich c1ff7464d0 Add unit tests for HKSV 2026-03-06 20:48:32 +03:00
Sergey Krashevich c5b7ba7162 feat(hksv): add example CLI application for RTSP to HomeKit Secure Video streaming 2026-03-06 20:39:47 +03:00
Sergey Krashevich c567831c91 feat: add motion detection feature with EMA-based P-frame size analysis
- Implemented MotionDetector for detecting motion based on H.264 P-frame sizes.
- Introduced adjustable sensitivity threshold for motion detection.
- Added tests for various scenarios including motion detection, hold time, cooldown, and baseline adaptation.
- Created hksvSession to manage HDS DataStream connections for HKSV recording.
- Updated schema.json to include a new speaker option for 2-way audio support.
2026-03-06 19:58:15 +03:00
Sergey Krashevich 593dce6eb9 feat(homekit): add Speaker service and enhance Consumer with backtrack audio handling 2026-03-06 09:07:26 +03:00
Sergey Krashevich 78ef8fc064 perf(homekit): optimize motion detector with frame-based timing
Replace time.Now() calls in hot path with frame-based timing:
- Pre-compute triggerLevel (integer comparison instead of float division)
- Calibrate hold/cooldown budgets from FPS (default 30fps)
- Periodic FPS recalibration every 150 frames for accuracy
- Active motion path: 47ns → 3.6ns (13x faster)

Update schema.json with detect mode and motion_threshold.
Add threshold tuning guide to README.
2026-03-05 08:50:27 +03:00
Sergey Krashevich a591186da6 test(homekit): add tests and benchmarks for HDS protocol and HKSV consumer
HDS protocol tests (15 tests, 4 benchmarks):
- Message structure for SendMediaInit and SendMediaFragment
- Multi-chunk splitting for fragments > 256KB
- Chunk boundary handling and sequence preservation
- WriteEvent/WriteResponse/WriteRequest round-trip
- opack helper functions

HKSV consumer tests (14 tests, 3 benchmarks):
- Consumer creation and field initialization
- GOP buffer flush with sequence numbering
- Activate with init segment and seqNum=2
- Activate timeout and error handling
- Stop safety (double-stop, deactivation)
- WriteTo blocking until Stop

Also fixes broken hds_test.go (undefined Client → NewConn).
2026-03-05 06:43:11 +03:00
Sergey Krashevich 1856b7ace4 fix(homekit): fix HKSV recording by correcting HDS protocol and adding GOP buffering
The HKSV recording was failing because:
1. The dataSend.data message structure was wrong - `packets` was a flat integer
   instead of an array of objects with `data` and `metadata` fields matching
   the HAP-NodeJS specification
2. Each video/audio frame was sent as a separate mediaFragment, but Home Hub
   expects GOP-based fragments (~2-4 seconds of accumulated data)
3. Large fragments were not chunked (max 256 KiB per chunk)

Changes:
- Fix HDS dataSend.data message structure to use proper packets array with
  nested data/metadata (dataType, dataSequenceNumber, dataChunkSequenceNumber,
  isLastDataChunk, dataTotalSize)
- Add 256 KiB chunking for large media fragments
- Buffer moof+mdat pairs in hksvConsumer and flush on keyframe boundaries
  (GOP-based fragmentation)
- Pre-start consumer at pair-verify for instant init segment delivery
- Add write-response support to HAP PUT handler for ch131 DataStream setup
- Fix HAP service linking to match HAP-NodeJS reference
- Add default SelectedCameraRecordingConfiguration (ch209) value
- Start continuous motion generator at pair-verify with dedup protection
2026-03-05 06:26:06 +03:00
Sergey Krashevich 35fd1383c8 fix(homekit): adjust motion detection threshold and improve hold time checks 2026-03-05 03:09:02 +03:00
Sergey Krashevich 15b0cc4c0c feat(homekit): implement motion detection with configurable threshold and add motion detector functionality 2026-03-04 15:08:06 +03:00
Sergey Krashevich 81dd9e37d8 chore: update .gitignore to include .claude* and .ruff* files 2026-03-04 14:20:33 +03:00
Sergey Krashevich ab27a042c1 feat(homekit): add HKSV support with motion detection and doorbell functionality
- Introduced HKSV configuration options in homekit.go, allowing for motion detection and doorbell features.
- Implemented API endpoints for triggering motion detection and doorbell events.
- Enhanced server.go to handle HKSV sessions and manage motion detection states.
- Created new accessory types for HKSV and doorbell in accessory.go.
- Added support for audio recording configurations in ch207.go.
- Defined new services for motion detection and doorbell in services_hksv.go.
- Implemented opack encoding/decoding for HDS protocol in opack.go and protocol.go.
- Updated OpenAPI documentation to reflect new endpoints and features.
- Extended schema.json to include HKSV configuration options.
2026-03-04 13:53:17 +03:00
Sergey Krashevich a0a36f87bd feat(tests): add CDN URL extraction and patching tests
- implement tests for extracting CDN URLs from HTML files
- add tests for parsing CDN URLs and patching HTML content
- ensure functionality works with real HTML files and CDN URLs
2026-02-16 05:20:25 +03:00
Sergey Krashevich 73c43dbf8b Add CDN dependency download script and update Dockerfiles for offline web UI 2026-02-16 04:50:24 +03:00
Sergey Krashevich 7748346b1f fix(index.html): respect 12-hour format 2026-02-14 07:26:53 +03:00
Sergey Krashevich 39febb67b6 feat(index.html): add time history for system info graph
- introduce timeHistory array to track timestamps
- implement formatClock function for time formatting
- create renderXAxisLabels function for x-axis labels
2026-02-13 15:47:08 +03:00
Sergey Krashevich 8d329fea2e feat(index.html): implement system info update handling
- add timer for periodic updates of system information
- enhance renderInfo function to handle unsupported usage
- improve updateInfo function to manage historical data updates
2026-02-13 15:34:40 +03:00
Sergey Krashevich cfc9c86a66 fix(index.html): replace hash symbol with block character in graph - change the character used for bars from '#' to '█' for better visual representation 2026-02-13 15:13:04 +03:00
Sergey Krashevich 8a083d6f53 feat(index.html): enhance system information display
- add ASCII graph rendering for CPU and memory usage
- implement history tracking for better visualization
- introduce error handling for data fetching

chore(main.js): define system info update interval
- set a common refresh interval for system info updates
2026-02-13 15:11:22 +03:00
Sergey Krashevich 0b80fa53cf feat(api): add system resource monitoring functionality
- implement getSystemInfo to gather CPU and memory usage
- add platform-specific implementations for memory and CPU usage
- enhance OpenAPI documentation to include system resource metrics
2026-02-13 14:49:20 +03:00
Sergey Krashevich beb96dd076 Merge remote-tracking branch 'upstream/master' 2026-02-13 14:07:55 +03:00
Sergey Krashevich ab80450b66 Expose process PID in API and UI
Include the process PID in the API info payload and surface it in the frontend. apiHandler now adds app.Info["pid"] = os.Getpid(); openapi.yaml documents the new pid property as an integer with an example; www/index.html is updated to show pid alongside version and config. This aids debugging and identifying the running process.
2026-02-13 11:12:00 +03:00
Sergey Krashevich c2d3963e93 Merge remote-tracking branch 'upstream/master' into 260213-fix-schemas-race-condition 2026-02-13 10:37:57 +03:00
Sergey Krashevich aa4e90d9d8 Ensure schemas wait for init 2026-02-13 10:37:20 +03:00
Sergey Krashevich 1f2c4b35ed fix(api): fix YAML merge functionality
- implement recursive merging of YAML with patch support
- preserve comments and formatting during merge operations
- add tests for various merge scenarios in config_test.go
2026-02-10 14:57:52 +03:00
Sergey Krashevich 74b92c2d78 chore(.gitignore): update ignored files list
- add CLAUDE.md to the ignored files for better cleanliness
2026-02-10 13:30:09 +03:00
Sergey Krashevich 6304987a26 Review uncommitted changes 2026-02-08 08:50:18 +03:00
Sergey Krashevich 3984a074a1 webui: add back buttom to links.html 2026-02-04 06:23:39 +03:00
Sergey Krashevich 1b06558140 feat(styles): add external stylesheet for consistent theming and layout 2026-02-04 06:04:05 +03:00
Sergey Krashevich e37da9a056 style: update theme toggle styles to remove borders and animations 2026-02-04 05:28:12 +03:00
Sergey Krashevich c0a2e04ad0 feat(ui): add info and probe pages for detailed stream analysis 2026-02-04 05:15:33 +03:00
Sergey Krashevich 18cd71c602 fix(links): add word wrapping for mobile devices
Add word-break and overflow-wrap CSS properties to prevent long URLs
and stream names from breaking the layout on mobile devices. This fixes
horizontal overflow issues with long text in link items, code blocks,
and stream names.
2026-02-04 04:56:10 +03:00
Sergey Krashevich ab4955f8fc webui: fix header on mobiles 2026-02-03 13:53:49 +03:00
Sergey Krashevich 51a213c7da webui: links.html rewrite 2026-02-03 13:32:18 +03:00
Sergey Krashevich 0c91ca7113 webui: fix streams table 2026-02-03 13:25:49 +03:00
Sergey Krashevich c019924763 webui: navigation bar improve 2026-02-03 13:20:09 +03:00
Sergey Krashevich 3b33ffe2e2 webui: link to docs 2026-02-03 13:18:58 +03:00
Sergey Krashevich 92eaaddcef style(config): update styles for main and config sections in HTML 2026-02-03 12:38:43 +03:00
Sergey Krashevich 3d439e030a fix(ui): toggle display of elements on click events in add.html 2026-02-03 12:22:19 +03:00
Sergey Krashevich 430dfc1c31 style: remove transition properties from index.html and main.js 2026-02-03 10:30:03 +03:00
Sergey Krashevich 85daab7ec6 style: update button colors to use CSS variables for improved theming 2026-02-03 10:20:56 +03:00
Sergey Krashevich fe5736905e feat: redesign web UI with theme toggle and improved styling 2026-02-03 09:51:09 +03:00
Sergey Krashevich bc7f9c0f79 feat: implement read-only mode enforcement in API handlers and add corresponding tests 2026-02-01 05:46:20 +03:00
Sergey Krashevich 51b79e614f feat: enhance read-only mode with confirmation and server polling on save 2026-02-01 04:38:48 +03:00
Sergey Krashevich f1d61bf15a fix: handle errors in stream creation and patching in tests 2026-02-01 04:18:04 +03:00
Sergey Krashevich cc453dd9ed feat: add read-only mode to API and UI, disable write actions 2026-02-01 04:13:43 +03:00
Sergey KrashevichandGitHub 5bf5327a45 Merge branch 'AlexxIT:master' into documentation-site 2026-01-29 00:38:10 +03:00
Sergey Krashevich 4bf0aef124 Merge branch 'documentation-site' of https://github.com/skrashevich/go2rtc into documentation-site 2026-01-26 17:06:11 +03:00
Sergey Krashevich 8e01d5cfa9 🔧 chore(gh-pages): change default branch for deployment 2026-01-26 17:05:55 +03:00
Sergey KrashevichandGitHub 8d4869fd08 Merge branch 'AlexxIT:master' into documentation-site 2026-01-26 04:22:35 +03:00
Sergey Krashevich 5970dd2fe4 📝 docs(README): update documentation for clarity and accuracy 2026-01-26 00:40:48 +03:00
Sergey KrashevichandGitHub 72ec880300 Merge branch 'AlexxIT:master' into documentation-site 2026-01-21 15:56:17 +03:00
Sergey Krashevich ba9fb70929 ✨ feat(vitepress): enhance title extraction from files
📝 docs(ffmpeg): add title to ffmpeg README
2026-01-19 02:40:02 +03:00
Sergey Krashevich 1d9bb27f58 Update GitHub Pages workflow to use website directory
The workflow now copies built docs into the 'website' directory using rsync and uploads 'website' as the artifact instead of '.vitepress/dist'. This allows for additional processing or customization of the deployment directory.
2026-01-19 02:07:23 +03:00
Sergey Krashevich 55c1f5890b Refactor GitHub Pages workflow to separate build and deploy
Split the workflow into distinct 'build' and 'deploy' jobs. The build job handles checkout, install, and documentation build steps, while the deploy job depends on build and manages deployment to GitHub Pages. This improves workflow clarity and separation of concerns.
2026-01-19 01:53:55 +03:00
Sergey Krashevich d98059f069 Add VitePress documentation site setup
Introduces VitePress configuration and theme files for documentation, updates the GitHub Pages workflow to build and deploy the new docs, and updates .gitignore for VitePress and Node artifacts. Adds necessary dependencies and scripts to package.json, and updates the ONVIF client example README title.
2026-01-19 01:35:31 +03:00
38cc05c22d feat(jpeg): Add keyframe caching with expiration mechanism to JPEG http handler (#1155)
* feat(mjpeg): add keyframe caching with expiration and cleanup goroutine

* mjpeg: make keyframe cache duration and default usage configurable

* mjpeg: document and add config options for MJPEG snapshot caching

* mjpeg: fix errors after rebase

* Code refactoring for frame.jpeg cache #1155

---------

Co-authored-by: Alex X <alexey.khit@gmail.com>
2026-01-18 14:23:50 +03:00
Sergey Krashevich 7e38b4fe89 Add enum and pattern constraint checks to YAML linter
Enhances the YAML linter to validate scalar values against enum and pattern constraints defined in the schema. Adds utility functions for value comparison, schema constraint collection, and applies these checks during linting to provide more precise error messages for invalid values.
2025-12-27 12:00:47 +03:00
Sergey Krashevich 0fd2217bd2 Trigger suggestions for property completions
Adds logic to trigger the suggestion widget when completing a property if it expects a block or has value suggestions, improving the user experience in the config editor.
2025-12-27 10:26:15 +03:00
Sergey Krashevich 76bdc7e065 Refactor block scalar handling in config parser
Simplifies the logic for handling block scalar content by restructuring the conditional checks for blockScalarParentIndent. This improves readability and ensures correct processing of indented lines.
2025-12-27 09:56:52 +03:00
Sergey Krashevich 3bd433c950 Improve null checks and object handling in config.html
Replaces optional chaining with explicit null checks and more robust object property access throughout the file. Refactors destructuring and object spreading to use Object.assign for better compatibility. These changes improve code reliability and compatibility with older browsers or environments lacking support for newer JavaScript features.
2025-12-27 09:09:32 +03:00
Sergey Krashevich 4c50a2c00c Remove redundant min-height property from #config
Deleted an unnecessary 'min-height: 0;' CSS rule from the #config selector, as a fixed min-height is already set.
2025-12-27 08:50:00 +03:00
Sergey Krashevich 0e65bd05c4 Disable word-based suggestions in editor config
Updated the editor configuration in config.html to set wordBasedSuggestions to false and disable word suggestions in the suggestion widget. This change aims to refine the suggestion behavior for a more focused coding experience.
2025-12-27 08:49:26 +03:00
Sergey Krashevich 0f4607a070 Improve YAML language detection in config.html
Refactored the logic for detecting the YAML language in Monaco editor to handle cases where getLanguages may not be available or Monaco is not loaded. This increases robustness and prevents potential runtime errors.
2025-12-27 08:08:28 +03:00
Sergey Krashevich 11ad1129ed Add hover provider for YAML editor
Introduces a hover provider to the YAML editor using Monaco, displaying property descriptions from the schema when hovering over keys. This enhances the editor's usability by providing inline documentation for YAML properties.
2025-12-27 08:05:42 +03:00
Sergey Krashevich da0b19026c Improve YAML linter with indentation and block scalar checks
Adds detection for inconsistent indentation and unexpected indentation at the document root. Enhances block scalar handling by tracking parent indentation and skipping content lines accordingly. Also improves error reporting for missing map keys or list items.
2025-12-27 07:59:22 +03:00
Sergey Krashevich 247d4063ed Merge branch 'monaco-editor-141225' of github.com:skrashevich/go2rtc into monaco-editor-141225 2025-12-21 00:06:29 +03:00
Sergey Krashevich 7ada6d81eb Add YAML schema-based linting and validation
Integrates js-yaml for parsing and adds comprehensive YAML linting with schema-based type checking, duplicate key detection, and improved error reporting. Refactors and extends parsing utilities, enhances completion logic, and introduces a schema tools abstraction for type and property resolution.
2025-12-21 00:02:49 +03:00
Sergey KrashevichandGitHub eda92afffe Merge branch 'AlexxIT:master' into monaco-editor-141225 2025-12-20 12:54:14 -08:00
Sergey Krashevich d041c89c5c schema improvements 2025-12-14 05:20:59 +03:00