@exaudeus/workrail 3.28.0 → 3.29.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/console/assets/{index-C146q2kN.js → index-BZ6HkxGf.js} +1 -1
- package/dist/console/index.html +1 -1
- package/dist/manifest.json +3 -3
- package/docs/README.md +57 -0
- package/docs/adrs/001-hybrid-storage-backend.md +38 -0
- package/docs/adrs/002-four-layer-context-classification.md +38 -0
- package/docs/adrs/003-checkpoint-trigger-strategy.md +35 -0
- package/docs/adrs/004-opt-in-encryption-strategy.md +36 -0
- package/docs/adrs/005-agent-first-workflow-execution-tokens.md +105 -0
- package/docs/adrs/006-append-only-session-run-event-log.md +76 -0
- package/docs/adrs/007-resume-and-checkpoint-only-sessions.md +51 -0
- package/docs/adrs/008-blocked-nodes-architectural-upgrade.md +178 -0
- package/docs/adrs/009-bridge-mode-single-instance-mcp.md +195 -0
- package/docs/adrs/010-release-pipeline.md +89 -0
- package/docs/architecture/README.md +7 -0
- package/docs/architecture/refactor-audit.md +364 -0
- package/docs/authoring-v2.md +527 -0
- package/docs/authoring.md +873 -0
- package/docs/changelog-recent.md +201 -0
- package/docs/configuration.md +505 -0
- package/docs/ctc-mcp-proposal.md +518 -0
- package/docs/design/README.md +22 -0
- package/docs/design/agent-cascade-protocol.md +96 -0
- package/docs/design/autonomous-console-design-candidates.md +253 -0
- package/docs/design/autonomous-console-design-review.md +111 -0
- package/docs/design/autonomous-platform-mvp-discovery.md +525 -0
- package/docs/design/claude-code-source-deep-dive.md +713 -0
- package/docs/design/console-cyberpunk-ui-discovery.md +504 -0
- package/docs/design/console-execution-trace-candidates-final.md +160 -0
- package/docs/design/console-execution-trace-candidates.md +211 -0
- package/docs/design/console-execution-trace-design-candidates-v2.md +113 -0
- package/docs/design/console-execution-trace-design-review.md +74 -0
- package/docs/design/console-execution-trace-discovery.md +394 -0
- package/docs/design/console-execution-trace-final-review.md +77 -0
- package/docs/design/console-execution-trace-review.md +92 -0
- package/docs/design/console-performance-discovery.md +415 -0
- package/docs/design/console-ui-backlog.md +280 -0
- package/docs/design/daemon-architecture-discovery.md +853 -0
- package/docs/design/daemon-design-candidates.md +318 -0
- package/docs/design/daemon-design-review-findings.md +119 -0
- package/docs/design/daemon-engine-design-candidates.md +210 -0
- package/docs/design/daemon-engine-design-review.md +131 -0
- package/docs/design/daemon-execution-engine-discovery.md +280 -0
- package/docs/design/daemon-gap-analysis.md +554 -0
- package/docs/design/daemon-owns-console-plan.md +168 -0
- package/docs/design/daemon-owns-console-review.md +91 -0
- package/docs/design/daemon-owns-console.md +195 -0
- package/docs/design/data-model-erd.md +11 -0
- package/docs/design/design-candidates-consolidate-dev-staleness.md +98 -0
- package/docs/design/design-candidates-walk-cache-depth-limit.md +80 -0
- package/docs/design/design-review-consolidate-dev-staleness.md +54 -0
- package/docs/design/design-review-walk-cache-depth-limit.md +48 -0
- package/docs/design/implementation-plan-consolidate-dev-staleness.md +142 -0
- package/docs/design/implementation-plan-walk-cache-depth-limit.md +141 -0
- package/docs/design/layer3b-ghost-nodes-design-candidates.md +229 -0
- package/docs/design/layer3b-ghost-nodes-design-review.md +93 -0
- package/docs/design/layer3b-ghost-nodes-implementation-plan.md +219 -0
- package/docs/design/list-workflows-latency-fix-plan.md +128 -0
- package/docs/design/list-workflows-latency-fix-review.md +55 -0
- package/docs/design/list-workflows-latency-fix.md +109 -0
- package/docs/design/native-context-management-api.md +11 -0
- package/docs/design/performance-sweep-2026-04.md +96 -0
- package/docs/design/routines-guide.md +219 -0
- package/docs/design/sequence-diagrams.md +11 -0
- package/docs/design/subagent-design-principles.md +220 -0
- package/docs/design/temporal-patterns-design-candidates.md +312 -0
- package/docs/design/temporal-patterns-design-review-findings.md +163 -0
- package/docs/design/test-isolation-from-config-file.md +335 -0
- package/docs/design/v2-core-design-locks.md +2746 -0
- package/docs/design/v2-lock-registry.json +734 -0
- package/docs/design/workflow-authoring-v2.md +1044 -0
- package/docs/design/workflow-docs-spec.md +218 -0
- package/docs/design/workflow-extension-points.md +687 -0
- package/docs/design/workrail-auto-trigger-system.md +359 -0
- package/docs/design/workrail-config-file-discovery.md +513 -0
- package/docs/docker.md +110 -0
- package/docs/generated/v2-lock-closure-plan.md +26 -0
- package/docs/generated/v2-lock-coverage.json +797 -0
- package/docs/generated/v2-lock-coverage.md +177 -0
- package/docs/ideas/backlog.md +3927 -0
- package/docs/ideas/design-candidates-mcp-resilience.md +208 -0
- package/docs/ideas/design-review-findings-mcp-resilience.md +119 -0
- package/docs/ideas/implementation_plan.md +249 -0
- package/docs/ideas/third-party-workflow-setup-design-thinking.md +1948 -0
- package/docs/implementation/02-architecture.md +316 -0
- package/docs/implementation/04-testing-strategy.md +124 -0
- package/docs/implementation/09-simple-workflow-guide.md +835 -0
- package/docs/implementation/13-advanced-validation-guide.md +874 -0
- package/docs/implementation/README.md +21 -0
- package/docs/integrations/claude-code.md +300 -0
- package/docs/integrations/firebender.md +315 -0
- package/docs/migration/v0.1.0.md +147 -0
- package/docs/naming-conventions.md +45 -0
- package/docs/planning/README.md +104 -0
- package/docs/planning/github-ticketing-playbook.md +195 -0
- package/docs/plans/README.md +24 -0
- package/docs/plans/agent-managed-ticketing-design.md +605 -0
- package/docs/plans/agentic-orchestration-roadmap.md +112 -0
- package/docs/plans/assessment-gates-engine-handoff.md +536 -0
- package/docs/plans/content-coherence-and-references.md +151 -0
- package/docs/plans/library-extraction-plan.md +340 -0
- package/docs/plans/mr-review-workflow-redesign.md +1451 -0
- package/docs/plans/native-context-management-epic.md +11 -0
- package/docs/plans/perf-fixes-design-candidates.md +225 -0
- package/docs/plans/perf-fixes-design-review-findings.md +61 -0
- package/docs/plans/perf-fixes-new-issues-candidates.md +264 -0
- package/docs/plans/perf-fixes-new-issues-review.md +110 -0
- package/docs/plans/prompt-fragments.md +53 -0
- package/docs/plans/ui-ux-workflow-design-candidates.md +120 -0
- package/docs/plans/ui-ux-workflow-discovery.md +100 -0
- package/docs/plans/ui-ux-workflow-review.md +48 -0
- package/docs/plans/v2-followup-enhancements.md +587 -0
- package/docs/plans/workflow-categories-candidates.md +105 -0
- package/docs/plans/workflow-categories-discovery.md +110 -0
- package/docs/plans/workflow-categories-review.md +51 -0
- package/docs/plans/workflow-discovery-model-candidates.md +94 -0
- package/docs/plans/workflow-discovery-model-discovery.md +74 -0
- package/docs/plans/workflow-discovery-model-review.md +48 -0
- package/docs/plans/workflow-source-setup-phase-1.md +245 -0
- package/docs/plans/workflow-source-setup-phase-2.md +361 -0
- package/docs/plans/workflow-staleness-detection-candidates.md +104 -0
- package/docs/plans/workflow-staleness-detection-review.md +58 -0
- package/docs/plans/workflow-staleness-detection.md +80 -0
- package/docs/plans/workflow-v2-design.md +69 -0
- package/docs/plans/workflow-v2-roadmap.md +74 -0
- package/docs/plans/workflow-validation-design.md +98 -0
- package/docs/plans/workflow-validation-roadmap.md +108 -0
- package/docs/plans/workrail-platform-vision.md +420 -0
- package/docs/reference/agent-context-cleaner-snippet.md +94 -0
- package/docs/reference/agent-context-guidance.md +140 -0
- package/docs/reference/context-optimization.md +284 -0
- package/docs/reference/example-workflow-repository-template/.github/workflows/validate.yml +125 -0
- package/docs/reference/example-workflow-repository-template/README.md +268 -0
- package/docs/reference/example-workflow-repository-template/workflows/example-workflow.json +80 -0
- package/docs/reference/external-workflow-repositories.md +916 -0
- package/docs/reference/feature-flags-architecture.md +472 -0
- package/docs/reference/feature-flags.md +349 -0
- package/docs/reference/god-tier-workflow-validation.md +272 -0
- package/docs/reference/loop-optimization.md +209 -0
- package/docs/reference/loop-validation.md +176 -0
- package/docs/reference/loops.md +465 -0
- package/docs/reference/mcp-platform-constraints.md +59 -0
- package/docs/reference/recovery.md +88 -0
- package/docs/reference/releases.md +177 -0
- package/docs/reference/troubleshooting.md +105 -0
- package/docs/reference/workflow-execution-contract.md +998 -0
- package/docs/roadmap/README.md +22 -0
- package/docs/roadmap/legacy-planning-status.md +103 -0
- package/docs/roadmap/now-next-later.md +70 -0
- package/docs/roadmap/open-work-inventory.md +389 -0
- package/docs/tickets/README.md +39 -0
- package/docs/tickets/next-up.md +76 -0
- package/docs/workflow-management.md +317 -0
- package/docs/workflow-templates.md +423 -0
- package/docs/workflow-validation.md +184 -0
- package/docs/workflows.md +254 -0
- package/package.json +3 -1
- package/spec/authoring-spec.json +61 -16
- package/workflows/workflow-for-workflows.json +3 -3
- package/workflows/workflow-for-workflows.v2.json +3 -3
|
@@ -0,0 +1,177 @@
|
|
|
1
|
+
# Release Policy
|
|
2
|
+
|
|
3
|
+
This is the canonical reference for WorkRail release behavior.
|
|
4
|
+
|
|
5
|
+
## Release authority
|
|
6
|
+
|
|
7
|
+
Releases are produced by **semantic-release** in GitHub Actions.
|
|
8
|
+
|
|
9
|
+
Do not:
|
|
10
|
+
|
|
11
|
+
- bump `package.json` versions manually
|
|
12
|
+
- create release tags locally
|
|
13
|
+
- treat local tags as the source of truth for published versions
|
|
14
|
+
|
|
15
|
+
## Release classification
|
|
16
|
+
|
|
17
|
+
WorkRail uses conventional commits through `semantic-release`, but the governing principle is
|
|
18
|
+
**external-surface impact**, not commit wording alone.
|
|
19
|
+
|
|
20
|
+
The release type is determined by the commit that lands on `main`.
|
|
21
|
+
|
|
22
|
+
For squash merges, that means the **PR title / squash commit title** controls the release type,
|
|
23
|
+
so the title should accurately reflect the release class implied by the change.
|
|
24
|
+
|
|
25
|
+
### External-surface impact
|
|
26
|
+
|
|
27
|
+
Release level is based on whether a change affects a stable external surface that existing
|
|
28
|
+
consumers could reasonably rely on.
|
|
29
|
+
|
|
30
|
+
External surface includes:
|
|
31
|
+
|
|
32
|
+
- MCP tool contracts
|
|
33
|
+
- workflow authoring/schema contracts
|
|
34
|
+
- stable runtime semantics that clients, workflows, or operators reasonably rely on
|
|
35
|
+
- public engine/package behavior
|
|
36
|
+
- operator-facing release/config behavior
|
|
37
|
+
|
|
38
|
+
This repo is not primarily judged by direct end-user visibility. The meaningful question is
|
|
39
|
+
whether an existing consumer, workflow author, integration, or operator would need to adjust
|
|
40
|
+
because of the change.
|
|
41
|
+
|
|
42
|
+
### Reasonable reliance
|
|
43
|
+
|
|
44
|
+
A behavior counts as reasonably relied on when it is either:
|
|
45
|
+
|
|
46
|
+
- explicitly documented, or
|
|
47
|
+
- obvious core behavior that careful consumers would reasonably depend on
|
|
48
|
+
|
|
49
|
+
Incidental implementation details and accidental quirks do **not** count as stable external
|
|
50
|
+
surface.
|
|
51
|
+
|
|
52
|
+
### Release matrix
|
|
53
|
+
|
|
54
|
+
| Commit shape on `main` | Release result | Notes |
|
|
55
|
+
|---|---|---|
|
|
56
|
+
| `fix:` | `patch` | Contract-preserving fixes, semantic corrections, regressions, and operational/config correctness fixes |
|
|
57
|
+
| `perf:` | `patch` | Performance improvements without new supported capability |
|
|
58
|
+
| `revert:` | `patch` | Reverting a previously released change |
|
|
59
|
+
| `feat:` | `minor` | Meaningful non-breaking expansion of supported external behavior or capability |
|
|
60
|
+
| breaking change + `WORKRAIL_ALLOW_MAJOR_RELEASE=true` | `major` | Explicitly approved breaking release |
|
|
61
|
+
| breaking change + major approval **not** enabled | `minor` | Safe downgrade by default |
|
|
62
|
+
| `docs:`, `style:`, `chore:`, `refactor:`, `test:`, `build:`, `ci:` | no release | No version bump, no tag, no GitHub release |
|
|
63
|
+
|
|
64
|
+
### Patch vs minor
|
|
65
|
+
|
|
66
|
+
Default to **patch** unless the change clearly adds a meaningful new supported capability.
|
|
67
|
+
|
|
68
|
+
Use **patch** for:
|
|
69
|
+
|
|
70
|
+
- contract-preserving fixes
|
|
71
|
+
- semantic corrections
|
|
72
|
+
- bug and regression repairs
|
|
73
|
+
- operational or release-config fixes
|
|
74
|
+
- behavior that "should already have worked this way"
|
|
75
|
+
|
|
76
|
+
Use **minor** for:
|
|
77
|
+
|
|
78
|
+
- meaningful non-breaking expansion of supported capability
|
|
79
|
+
- new supported MCP/workflow/engine behavior
|
|
80
|
+
- new external-surface area consumers can intentionally adopt
|
|
81
|
+
|
|
82
|
+
### Untagged / no-release work
|
|
83
|
+
|
|
84
|
+
When a change falls into a no-release class:
|
|
85
|
+
|
|
86
|
+
- semantic-release creates **no version bump**
|
|
87
|
+
- semantic-release creates **no tag**
|
|
88
|
+
- semantic-release creates **no GitHub release**
|
|
89
|
+
|
|
90
|
+
This is the right bucket for:
|
|
91
|
+
|
|
92
|
+
- documentation-only changes
|
|
93
|
+
- internal refactors with no release-worthy effect
|
|
94
|
+
- test-only changes
|
|
95
|
+
- CI/build maintenance
|
|
96
|
+
- internal-only cleanup with no meaningful external-surface impact
|
|
97
|
+
|
|
98
|
+
## Breaking changes
|
|
99
|
+
|
|
100
|
+
Breaking changes are **not** released as `major` by default.
|
|
101
|
+
|
|
102
|
+
Instead:
|
|
103
|
+
|
|
104
|
+
- a breaking change is treated as **`minor` by default**
|
|
105
|
+
- it becomes **`major` only when explicitly approved**
|
|
106
|
+
|
|
107
|
+
Approval is controlled by:
|
|
108
|
+
|
|
109
|
+
- repository variable: **`WORKRAIL_ALLOW_MAJOR_RELEASE=true`**
|
|
110
|
+
|
|
111
|
+
This keeps accidental breaking-change markers from creating an unplanned major release.
|
|
112
|
+
|
|
113
|
+
### What counts as breaking
|
|
114
|
+
|
|
115
|
+
A change is breaking when existing consumers, workflows, or operators would need **meaningful
|
|
116
|
+
adjustment** or would be **importantly surprised** by the new behavior.
|
|
117
|
+
|
|
118
|
+
This can include:
|
|
119
|
+
|
|
120
|
+
- incompatible MCP/schema/API changes
|
|
121
|
+
- incompatible changes to stable runtime semantics
|
|
122
|
+
- behavior shifts that invalidate reasonable existing assumptions
|
|
123
|
+
|
|
124
|
+
It does **not** automatically include:
|
|
125
|
+
|
|
126
|
+
- internal implementation refactors
|
|
127
|
+
- non-obvious incidental behavior
|
|
128
|
+
- accidental quirks no careful consumer should have built around
|
|
129
|
+
|
|
130
|
+
## Practical guidance
|
|
131
|
+
|
|
132
|
+
Use these rules when choosing a PR title or squash-merge title:
|
|
133
|
+
|
|
134
|
+
- choose **`fix:`** when the goal is a patch release
|
|
135
|
+
- choose **`feat:`** when the goal is a minor release
|
|
136
|
+
- choose **`docs:`** / **`chore:`** / **`refactor:`** / **`test:`** when the change should be untagged
|
|
137
|
+
|
|
138
|
+
If the work mixes multiple commit types on a branch, the title of the commit that lands on `main` is what matters for release classification.
|
|
139
|
+
|
|
140
|
+
## Intentional major release flow
|
|
141
|
+
|
|
142
|
+
If you actually want a major release:
|
|
143
|
+
|
|
144
|
+
1. Set the GitHub repository variable `WORKRAIL_ALLOW_MAJOR_RELEASE=true`
|
|
145
|
+
2. Merge the breaking-change commit(s) to `main`
|
|
146
|
+
3. Let the normal release workflow publish the release
|
|
147
|
+
4. Remove or reset the repository variable afterward
|
|
148
|
+
|
|
149
|
+
## Dry-run commands
|
|
150
|
+
|
|
151
|
+
### Local
|
|
152
|
+
|
|
153
|
+
Normal preview:
|
|
154
|
+
|
|
155
|
+
```bash
|
|
156
|
+
npx semantic-release --dry-run --no-ci
|
|
157
|
+
```
|
|
158
|
+
|
|
159
|
+
Preview with major approval enabled:
|
|
160
|
+
|
|
161
|
+
```bash
|
|
162
|
+
WORKRAIL_ALLOW_MAJOR_RELEASE=true npx semantic-release --dry-run --no-ci
|
|
163
|
+
```
|
|
164
|
+
|
|
165
|
+
### GitHub Actions
|
|
166
|
+
|
|
167
|
+
Use:
|
|
168
|
+
|
|
169
|
+
- `.github/workflows/release-dry-run.yml`
|
|
170
|
+
|
|
171
|
+
## Source of truth
|
|
172
|
+
|
|
173
|
+
The behavior is implemented in:
|
|
174
|
+
|
|
175
|
+
- `.releaserc.cjs`
|
|
176
|
+
- `.github/workflows/release.yml`
|
|
177
|
+
- `.github/workflows/release-dry-run.yml`
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
# Troubleshooting Guide
|
|
2
|
+
|
|
3
|
+
> **Common issues and solutions**
|
|
4
|
+
|
|
5
|
+
[](https://github.com/EtienneBBeaulac/mcp)
|
|
6
|
+
[](specs/)
|
|
7
|
+
|
|
8
|
+
## Table of Contents
|
|
9
|
+
|
|
10
|
+
1. [Startup Issues](#startup-issues)
|
|
11
|
+
2. [Configuration Problems](#configuration-problems)
|
|
12
|
+
3. [Workflow Errors](#workflow-errors)
|
|
13
|
+
4. [API & Connectivity](#api--connectivity)
|
|
14
|
+
5. [Performance Issues](#performance-issues)
|
|
15
|
+
6. [Security & Access](#security--access)
|
|
16
|
+
7. [Backup & Recovery](#backup--recovery)
|
|
17
|
+
8. [Getting Help](#getting-help)
|
|
18
|
+
|
|
19
|
+
---
|
|
20
|
+
|
|
21
|
+
## Startup Issues
|
|
22
|
+
|
|
23
|
+
- **App won’t start**: Check logs for errors, verify Node.js version, and required environment variables.
|
|
24
|
+
- **Port in use**: Change `PORT` variable or stop conflicting service.
|
|
25
|
+
- **Dependency errors**: Run `npm install` and check for missing packages.
|
|
26
|
+
|
|
27
|
+
---
|
|
28
|
+
|
|
29
|
+
## Configuration Problems
|
|
30
|
+
|
|
31
|
+
- **Missing env vars**: Compare with `.env.example` and fill in all required values.
|
|
32
|
+
- **Invalid config**: Check for typos, invalid URLs, or unsupported values.
|
|
33
|
+
- **Secrets not loading**: Ensure secret manager integration is correct and permissions are set.
|
|
34
|
+
|
|
35
|
+
---
|
|
36
|
+
|
|
37
|
+
## Workflow Errors
|
|
38
|
+
|
|
39
|
+
- **Workflow not found**: Confirm workflow file exists and `WORKFLOWS_PATH` is correct.
|
|
40
|
+
- **Validation failed**: Check workflow JSON against schema and fix errors.
|
|
41
|
+
- **Step execution fails**: Review step prompts, required fields, and agent logs.
|
|
42
|
+
|
|
43
|
+
### Workflow JSON Validation Issues
|
|
44
|
+
|
|
45
|
+
- **"JSON syntax error"**: Check for missing quotes, commas, or braces in workflow JSON.
|
|
46
|
+
- **"Missing required property"**: Ensure all required fields (id, name, description, steps) are present.
|
|
47
|
+
- **"Invalid workflow structure"**: Verify workflow follows the schema specification.
|
|
48
|
+
- **"Validation timeout"**: Large workflows may need increased timeout settings.
|
|
49
|
+
|
|
50
|
+
**Common JSON Syntax Issues:**
|
|
51
|
+
- Missing closing braces `}` or brackets `]`
|
|
52
|
+
- Unescaped quotes in string values
|
|
53
|
+
- Trailing commas in arrays or objects
|
|
54
|
+
- Invalid escape sequences
|
|
55
|
+
|
|
56
|
+
**Schema Validation Errors:**
|
|
57
|
+
- Missing required `id`, `name`, `description`, or `steps` fields
|
|
58
|
+
- Invalid `id` pattern (must be alphanumeric with hyphens/underscores)
|
|
59
|
+
- Empty `steps` array (must contain at least one step)
|
|
60
|
+
- Invalid step structure (missing `id`, `title`, or `prompt`)
|
|
61
|
+
|
|
62
|
+
---
|
|
63
|
+
|
|
64
|
+
## API & Connectivity
|
|
65
|
+
|
|
66
|
+
- **API returns 500**: Check server logs for stack traces and error details.
|
|
67
|
+
- **Timeouts**: Increase client timeout or check server load.
|
|
68
|
+
- **CORS errors**: Update allowed origins in CORS config.
|
|
69
|
+
|
|
70
|
+
---
|
|
71
|
+
|
|
72
|
+
## Performance Issues
|
|
73
|
+
|
|
74
|
+
- **Slow responses**: Check for high CPU/memory, database slow queries, or cache misses.
|
|
75
|
+
- **High memory usage**: Profile with Node.js tools, check for memory leaks.
|
|
76
|
+
- **Scaling problems**: Review auto-scaling and worker thread settings.
|
|
77
|
+
|
|
78
|
+
---
|
|
79
|
+
|
|
80
|
+
## Security & Access
|
|
81
|
+
|
|
82
|
+
- **Unauthorized errors**: Verify API keys, JWT tokens, and user permissions.
|
|
83
|
+
- **Rate limited**: Reduce request frequency or increase rate limit settings.
|
|
84
|
+
- **Sensitive data in logs**: Update logging config to redact secrets.
|
|
85
|
+
|
|
86
|
+
---
|
|
87
|
+
|
|
88
|
+
## Backup & Recovery
|
|
89
|
+
|
|
90
|
+
- **Backup failed**: Check backup script logs, storage permissions, and available disk space.
|
|
91
|
+
- **Restore failed**: Verify backup file integrity and correct restore commands.
|
|
92
|
+
- **Disaster recovery**: Follow the [Recovery Reference](recovery.md) and runbook.
|
|
93
|
+
|
|
94
|
+
---
|
|
95
|
+
|
|
96
|
+
## Getting Help
|
|
97
|
+
|
|
98
|
+
- **Check documentation**: Review all guides in the `docs/` directory.
|
|
99
|
+
- **Search issues**: Look for similar problems on GitHub.
|
|
100
|
+
- **Ask for help**: Open a new issue with detailed logs and steps to reproduce.
|
|
101
|
+
- **Contact maintainers**: See project README for contact info.
|
|
102
|
+
|
|
103
|
+
---
|
|
104
|
+
|
|
105
|
+
**Still stuck?** Open an issue on GitHub or ask in the project discussion board for support.
|