This commit updates the GitHub Actions workflow to install helper scripts directly from the repository, ensuring that the necessary scripts for managing documentation are available. The previous checkout step has been removed, and the installation process has been simplified to enhance clarity and maintainability.
Refine article copy and image: replace cover image and adjust several headings for clarity. Explain parallel session semantics more precisely—scope and workflow are locked for a session once it starts, while model/mode/active tools are snapshotted per run. Describe subagents as parallel, read-only research helpers (with the browser subagent as an exception) and note that research subagents can use a separate, cheaper model. Minor wording and structural edits to improve readability and avoid confusion about how Studio coordinates parallel work.
Add a new Community Article explaining ABP Studio's parallel agent sessions and subagents. Adds docs/en/Community-Articles/2026-06-18-deep-dive-8-parallel-agent-execution/post.md with details on concurrency limits, session-scoped settings, prompt queuing, file-change coordination, and subagent research models, plus an accompanying image model-settings.png.
Sync the form layout examples in docs/en/low-code/model-json.md to the
flat fields[]/row/colSpan shape introduced in this PR. Switch the form
descriptor schema description from "layout cell" to "layout placement"
to match the new vocabulary. Soften the AbpDynamicSortingGuard XML doc
and inline comment so they no longer claim the allowed constant-string
indexer carries no side effects — the guard cannot enforce that on
user-defined indexers, so the doc now states it assumes the matching
getter behaves like a property getter.
Enhance AbpDynamicSortingGuard.IsConstantStringIndexer to more robustly recognize true string-keyed indexers: verify the call is instance-bound with a single constant string argument, ensure the resolved method is a special-name instance getter with a single string parameter, and confirm it matches an actual indexer property via reflection. This prevents arbitrary methods named "get_Item" from being treated as safe indexer accesses. Also update the dashboard descriptor schema description to clarify visualizations are a flat list of name-identified items (wording change only).
Flatten dashboard and form descriptor schemas for identity-keyed placements, remove the obsolete dashboard row schema, and allow constant string indexer access in AbpDynamicSortingGuard so low-code dynamic sorting works with property bags.
Co-authored-by: Cursor <cursoragent@cursor.com>