π Doc & CI Boost β Ranking Optimization - #113
Conversation
|
@noreply is attempting to deploy a commit to the flamki's projects Team on Vercel. A member of the Team first needs to authorize it. |
π WalkthroughWalkthroughThe pull request adds GitHub Actions quality and security checks across Node.js versions. It replaces the contributor guide and expands the README with setup, development, quality, architecture, configuration, performance, contribution, and license information. ChangesCI and project guidance
Estimated code review effort: 3 (Moderate) | ~20 minutes Possibly related PRs
Suggested reviewers: π₯ Pre-merge checks | β 4 | β 1β Failed checks (1 warning)
β Passed checks (4 passed)
β¨ Finishing Touches π‘ 2βοΈ Resolve merge conflicts π‘
π οΈ Fix failing CI checks π‘
π§ͺ Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Actionable comments posted: 8
π§Ή Nitpick comments (4)
README.md (2)
365-366: π Maintainability & Code Quality | π΅ Trivial | β‘ Quick winKeep one License section at the end of the README.
The new content starts after the existing License section and adds a second
## Licenseheading. Move the new sections before the existing License section, then remove the duplicate heading.Also applies to: 421-422
π€ Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@README.md` around lines 365 - 366, Reorganize the README so the new sections beginning with βπ Quick Startβ appear before the existing final β## Licenseβ section. Remove the duplicate License heading and retain exactly one License section at the end of the document.
387-390: π Maintainability & Code Quality | π΅ Trivial | β‘ Quick winMake the testing policy match the enforced CI behavior.
The README documents unit, integration, and E2E tests plus a
>80%coverage target..github/workflows/ci-boost.yml, Lines 8-46, does not run E2E tests or a coverage check, and its test step permits no tests. Enforce these requirements or mark them as non-enforced goals.Also applies to: 403-407
π€ Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@README.md` around lines 387 - 390, Align the README testing policy with the behavior enforced by the ci-boost workflow: either update the CI configuration to run unit, integration, and E2E tests, enforce the >80% coverage target, and reject runs with no tests, or revise the README sections around βQuality Assuranceβ and the testing policy to label these as non-enforced goals.CONTRIBUTING.md (2)
27-41: π Maintainability & Code Quality | π΅ Trivial | β‘ Quick winDocument local quality commands before the push step.
The guide asks contributors to add tests but provides no commands for local validation.
.github/workflows/ci-boost.yml, Lines 8-46, runs linting, type-checking, tests, and build checks..github/workflows/lint.yml, Lines 16-29, also runs the formatting check. Add these commands or link to the relevant README section.π€ Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@CONTRIBUTING.md` around lines 27 - 41, Update the βMake Your Changesβ section in CONTRIBUTING.md to document or link to the local quality commands matching the CI checks: formatting, linting, type-checking, tests, and build validation. Place this guidance before the βPush and Create PRβ step, while preserving the existing contribution and commit instructions.
17-20: π Maintainability & Code Quality | π΅ Trivial | β‘ Quick winDocument the supported Node.js version.
README.md, Lines 368-370, requires Node.js 18 or newer..github/workflows/ci-boost.yml, Lines 8-46, tests Node.js 18, 20, and 22. Add the same requirement here or link to the README prerequisites.π€ Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@CONTRIBUTING.md` around lines 17 - 20, Update the βSet Up Development Environmentβ section to document that Node.js 18 or newer is required, matching the README prerequisites and CI-supported versions, or link directly to the README prerequisite guidance.
π€ Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In @.github/workflows/ci-boost.yml:
- Line 8: Add top-level workflow permissions granting only contents read access,
and update both actions/checkout@v4 steps to set persist-credentials to false.
Preserve the existing job behavior while ensuring checkout does not retain the
GITHUB_TOKEN.
- Around line 25-35: Update the Lint, Type check, Test, and Build steps in the
workflow to invoke configured quality-check scripts directly without ||
fallbacks, ensuring failures fail the job. Add the missing typecheck and build
scripts to the project configuration, or remove those workflow checks if they
are intentionally unsupported.
- Around line 22-23: Update both dependency installation steps in the workflow
to run only npm ci, removing the npm install fallback; resolve any lockfile or
installation errors separately so CI uses the committed dependency tree.
In `@CONTRIBUTING.md`:
- Around line 9-10: Add issue-reporting guidance to the βHow to Contributeβ
section of CONTRIBUTING.md, covering both bug reports and feature requests, or
remove the README reference claiming those guidelines exist. Keep the
documentation consistent between CONTRIBUTING.md and README.md.
- Around line 11-15: Update the βFork and Cloneβ section in CONTRIBUTING.md to
explicitly instruct contributors to fork the repository first and replace
<your-username> with their GitHub username before running git clone; retain the
existing clone and cd commands.
- Line 7: Fix the broken Code of Conduct reference in CONTRIBUTING.md by either
adding the missing CODE_OF_CONDUCT.md document or updating the link to the
repositoryβs existing Code of Conduct file, ensuring the reference resolves
correctly.
In `@README.md`:
- Around line 380-385: Update the Development Quick Start commands to remove npm
run build, since the package configuration does not define a build script; keep
the existing npm run dev and npm test commands unchanged.
- Around line 399-401: Update the Configuration section to accurately reflect
the variables documented in .env.example: remove unsupported references to
database connection strings and feature flags, and either list the documented
Stellar wallet, Anthropic API, network, server, logging, rate-limit, and
run-history settings while adding ADMIN_TOKEN and voice-generation variables, or
use a concise description limited to the currently documented variables.
---
Nitpick comments:
In `@CONTRIBUTING.md`:
- Around line 27-41: Update the βMake Your Changesβ section in CONTRIBUTING.md
to document or link to the local quality commands matching the CI checks:
formatting, linting, type-checking, tests, and build validation. Place this
guidance before the βPush and Create PRβ step, while preserving the existing
contribution and commit instructions.
- Around line 17-20: Update the βSet Up Development Environmentβ section to
document that Node.js 18 or newer is required, matching the README prerequisites
and CI-supported versions, or link directly to the README prerequisite guidance.
In `@README.md`:
- Around line 365-366: Reorganize the README so the new sections beginning with
βπ Quick Startβ appear before the existing final β## Licenseβ section. Remove
the duplicate License heading and retain exactly one License section at the end
of the document.
- Around line 387-390: Align the README testing policy with the behavior
enforced by the ci-boost workflow: either update the CI configuration to run
unit, integration, and E2E tests, enforce the >80% coverage target, and reject
runs with no tests, or revise the README sections around βQuality Assuranceβ and
the testing policy to label these as non-enforced goals.
πͺ Autofix
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
βΉοΈ Review info
βοΈ Run configuration
Configuration used: defaults
Review profile: CHILL
Plan: Pro Plus
Run ID: 24e03f5a-ced0-4ad9-a92f-b32c5da5873f
π Files selected for processing (3)
.github/workflows/ci-boost.ymlCONTRIBUTING.mdREADME.md
| pull_request: | ||
| branches: [main, master] | ||
|
|
||
| jobs: |
There was a problem hiding this comment.
π Security & Privacy | π Major | β‘ Quick win
π§© Analysis chain
π Script executed:
#!/bin/bash
set -eu
printf '%s\n' '--- workflow ---'
cat -n .github/workflows/ci-boost.yml
printf '%s\n' '--- related workflow security settings ---'
rg -n -C 3 'permissions:|actions/checkout@|persist-credentials|GITHUB_TOKEN|npm ci|npm install|\|\|' .github/workflows/ci-boost.yml
printf '%s\n' '--- repository workflow inventory ---'
git ls-files '.github/workflows/*'Repository: Flamki/stellarmind
Length of output: 3064
Restrict token permissions and disable checkout credential persistence.
Add top-level permissions: contents: read. Set persist-credentials: false on both actions/checkout@v4 steps. Repository commands can otherwise access the persisted GITHUB_TOKEN, whose default permissions may exceed checkout requirements.
π€ Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In @.github/workflows/ci-boost.yml at line 8, Add top-level workflow permissions
granting only contents read access, and update both actions/checkout@v4 steps to
set persist-credentials to false. Preserve the existing job behavior while
ensuring checkout does not retain the GITHUB_TOKEN.
Source: Linters/SAST tools
| - name: Install dependencies | ||
| run: npm ci || npm install |
There was a problem hiding this comment.
ποΈ Data Integrity & Integration | π Major | β‘ Quick win
π§© Analysis chain
π Script executed:
#!/bin/bash
set -e
printf '%s\n' '--- workflow ---'
cat -n .github/workflows/ci-boost.yml
printf '%s\n' '--- lockfiles and package metadata ---'
git ls-files '*package*.json' '*package*.lock' | sort
for f in $(git ls-files '*package*.json' '*package*.lock' | sort); do
printf '\n--- %s ---\n' "$f"
sed -n '1,220p' "$f"
done
printf '%s\n' '--- npm configuration references ---'
rg -n 'npm ci|npm install|package-lock|ci-boost' .github package.json package-lock.json 2>/dev/null || trueRepository: Flamki/stellarmind
Length of output: 12655
π Script executed:
#!/bin/bash
set -e
python3 - <<'PY'
import json
from pathlib import Path
pkg = json.loads(Path("package.json").read_text())
lock = json.loads(Path("package-lock.json").read_text())
root = lock["packages"][""]
checks = {
"lockfileVersion": lock.get("lockfileVersion"),
"package_name_matches": pkg.get("name") == root.get("name"),
"package_version_matches": pkg.get("version") == root.get("version"),
"dependencies_match": pkg.get("dependencies", {}) == root.get("dependencies", {}),
"devDependencies_match": pkg.get("devDependencies", {}) == root.get("devDependencies", {}),
"root_has_integrity_entries": all(
isinstance(v, dict) and "version" in v and "resolved" in v and "integrity" in v
for k, v in lock["packages"].items()
if k.startswith("node_modules/")
),
}
for key, value in checks.items():
print(f"{key}: {value}")
PYRepository: Flamki/stellarmind
Length of output: 318
π Web query:
Official npm documentation for npm civersusnpm install, including lockfile mismatch behavior and whether npm install can update package-lock.json
π‘ Result:
The npm documentation distinguishes between npm install and npm ci based on their intended use cases, handling of lockfiles, and behavior during dependency mismatches [1][2]. npm install npm install is the standard command for installing dependencies in a project [2]. It respects existing package-lock.json or npm-shrinkwrap.json files, using them to ensure the installed dependency tree matches the one defined in the lockfile, provided the versions remain compatible with the ranges specified in package.json [3][4]. If there is a mismatch between package.json and package-lock.json, or if you add new dependencies, npm install will resolve the dependencies and update the package-lock.json file to reflect the new state [3][5]. It is designed for interactive development and general project management [3]. npm ci npm ci is designed for automated environments such as continuous integration (CI) and deployment pipelines, or whenever a clean, consistent install is required [1][6]. It has specific, strict behaviors: - Requirement: The project must have an existing package-lock.json or npm-shrinkwrap.json file [1][7]. - Mismatch Behavior: If the dependencies in the lockfile do not exactly match those in package.json, npm ci will exit with an error rather than updating the lockfile [1][6]. - Immutability: It never modifies package.json or any lockfile [1][7]. - Clean Slate: It automatically deletes any existing node_modules folder before proceeding with the installation [1][6]. In summary, use npm install when you are actively developing and expect the lockfile to be updated, and use npm ci in automated environments where you require a strictly reproducible, read-only build [1][3]. Top Results: [1] https://docs.npmjs.com/cli/v11/commands/npm-ci/ [2] https://docs.npmjs.com/cli/v11/commands/npm-install/ [3] https://www.baeldung.com/ops/npm-install-vs-npm-ci [8] https://docs.npmjs.com/cli/v11/configuring-npm/package-lock-json/ [5] https://docs.npmjs.com/cli/v7/commands/npm-install/
Citations:
- 1: https://docs.npmjs.com/cli/v11/commands/npm-ci/
- 2: https://docs.npmjs.com/cli/v11/commands/npm-install/
- 3: https://www.baeldung.com/ops/npm-install-vs-npm-ci
- 4: https://stackoverflow.com/questions/45022048/why-does-npm-install-rewrite-package-lock-json
- 5: https://docs.npmjs.com/cli/v7/commands/npm-install/
- 6: https://docs.npmjs.com/cli/v7/commands/npm-ci/?v=true
- 7: https://stackoverflow.com/questions/52499617/what-is-the-difference-between-npm-install-and-npm-ci
- 8: https://docs.npmjs.com/cli/v11/configuring-npm/package-lock-json/
Run npm ci without a fallback.
If npm ci fails because package.json and package-lock.json differ, fix the lockfile or installation error. Do not run npm install, because it can update the lockfile and resolve a different dependency tree.
Apply this change at both installation steps.
π€ Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In @.github/workflows/ci-boost.yml around lines 22 - 23, Update both dependency
installation steps in the workflow to run only npm ci, removing the npm install
fallback; resolve any lockfile or installation errors separately so CI uses the
committed dependency tree.
| - name: Lint | ||
| run: npm run lint --if-present || npx eslint . --ext .js,.ts,.tsx --if-present || echo "No lint configured" | ||
|
|
||
| - name: Type check | ||
| run: npm run typecheck --if-present || npx tsc --noEmit --if-present || echo "No typecheck configured" | ||
|
|
||
| - name: Test | ||
| run: npm test --if-present || npx jest --passWithNoTests --if-present || echo "No tests configured" | ||
|
|
||
| - name: Build | ||
| run: npm run build --if-present || echo "No build step" |
There was a problem hiding this comment.
π― Functional Correctness | π Major | β‘ Quick win
π§© Analysis chain
π Script executed:
#!/bin/bash
set -euo pipefail
jq -r '.scripts // {} | keys[]' package.json
rg -n -- 'npm run .*--if-present|npx .*--if-present|\|\| echo' .github/workflows/ci-boost.ymlRepository: Flamki/stellarmind
Length of output: 864
π Script executed:
#!/bin/bash
set -euo pipefail
printf '%s\n' '--- workflow ---'
cat -n .github/workflows/ci-boost.yml
printf '%s\n' '--- package scripts ---'
node - <<'JS'
const fs = require('fs');
const pkg = JSON.parse(fs.readFileSync('package.json', 'utf8'));
console.log(JSON.stringify(pkg.scripts ?? {}, null, 2));
JS
printf '%s\n' '--- package manager metadata ---'
rg -n '"(packageManager|npm|eslint|typescript|jest|vitest|test|lint|build|typecheck)"' package.json package-lock.json 2>/dev/null || true
printf '%s\n' '--- workflow failure-tolerance settings ---'
rg -n -- 'continue-on-error|if:|npm run .*--if-present|npm test .*--if-present|npx .*--if-present|\|\| echo' .github/workflows/ci-boost.ymlRepository: Flamki/stellarmind
Length of output: 4368
π Script executed:
#!/bin/bash
set -euo pipefail
python3 - <<'PY'
import json
import re
from pathlib import Path
workflow = Path(".github/workflows/ci-boost.yml").read_text()
package = json.loads(Path("package.json").read_text())
scripts = package.get("scripts", {})
checks = {
"lint": "lint" in scripts,
"typecheck": "typecheck" in scripts,
"test": "test" in scripts,
"build": "build" in scripts,
}
print("script presence:", checks)
for line_no, line in enumerate(workflow.splitlines(), 1):
if re.search(r"^\s*run:.*(?:npm run|npm test|npx ).*\|\|", line):
print(f"failure-tolerant quality command at line {line_no}: {line.strip()}")
print("quality scripts:", {name: scripts.get(name) for name in ("lint", "typecheck", "test", "build")})
PY
printf '%s\n' '--- npm option semantics ---'
npm --version
npm run --help | rg -n -- '--if-present|if-present' || true
npm exec --help | rg -n -- '--if-present|if-present' || trueRepository: Flamki/stellarmind
Length of output: 1618
Make configured quality checks fail the job.
The lint and test scripts exist, but their failures trigger fallback commands and can still end with a successful job. The typecheck and build scripts are absent, so those checks do not run. Invoke required scripts directly, and remove the || fallbacks. Add the missing scripts or remove the corresponding checks.
π§° Tools
πͺ zizmor (1.29.0)
[warning] 9-35: overly broad permissions (excessive-permissions): default permissions used due to no permissions: block
(excessive-permissions)
π€ Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In @.github/workflows/ci-boost.yml around lines 25 - 35, Update the Lint, Type
check, Test, and Build steps in the workflow to invoke configured quality-check
scripts directly without || fallbacks, ensuring failures fail the job. Add the
missing typecheck and build scripts to the project configuration, or remove
those workflow checks if they are intentionally unsupported.
| StellarMind uses a layered architecture where AI agents operate as autonomous services that charge | ||
| for their work via the x402 payment protocol on Stellar. | ||
| ## Code of Conduct | ||
| This project adheres to a [Code of Conduct](./CODE_OF_CONDUCT.md). By participating, you agree to uphold its standards. |
There was a problem hiding this comment.
π Maintainability & Code Quality | π‘ Minor | β‘ Quick win
π§© Analysis chain
π Script executed:
#!/bin/bash
set -euo pipefail
test -f CODE_OF_CONDUCT.mdRepository: Flamki/stellarmind
Length of output: 156
π Script executed:
set -euo pipefail
printf '%s\n' 'Tracked Code of Conduct files:'
git ls-files | grep -iE '(^|/)CODE_OF_CONDUCT\.md$|(^|/)code.of.conduct' || true
printf '%s\n' 'Relevant CONTRIBUTING.md link:'
rg -n -C 2 'Code of Conduct|CODE_OF_CONDUCT' CONTRIBUTING.mdRepository: Flamki/stellarmind
Length of output: 469
Fix the broken Code of Conduct link.
CONTRIBUTING.md links to ./CODE_OF_CONDUCT.md, but no matching file exists. Add the file or update the link.
π€ Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@CONTRIBUTING.md` at line 7, Fix the broken Code of Conduct reference in
CONTRIBUTING.md by either adding the missing CODE_OF_CONDUCT.md document or
updating the link to the repositoryβs existing Code of Conduct file, ensuring
the reference resolves correctly.
| ## How to Contribute | ||
|
|
There was a problem hiding this comment.
π Maintainability & Code Quality | π‘ Minor | β‘ Quick win
Add issue-reporting guidance or remove the README claim.
README.md, Lines 414-419, says that CONTRIBUTING.md contains issue-reporting guidelines. This guide has no bug-report or feature-request procedure. Add the required information or remove that bullet from the README.
π€ Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@CONTRIBUTING.md` around lines 9 - 10, Add issue-reporting guidance to the
βHow to Contributeβ section of CONTRIBUTING.md, covering both bug reports and
feature requests, or remove the README reference claiming those guidelines
exist. Keep the documentation consistent between CONTRIBUTING.md and README.md.
| ### 1. Fork and Clone | ||
| ```bash | ||
| git clone https://github.com/YOUR_USERNAME/stellarmind.git | ||
| cd stellarmind | ||
| ``` |
There was a problem hiding this comment.
π― Functional Correctness | π‘ Minor | β‘ Quick win
Make the clone step executable as written.
YOUR_USERNAME is a placeholder. The guide does not tell contributors to replace it or to fork the repository first. Add an explicit fork step and replacement instruction.
Proposed clarification
### 1. Fork and Clone
+Fork the repository on GitHub, then replace `<your-username>` with your fork owner.
```bash
-git clone https://github.com/YOUR_USERNAME/stellarmind.git
+git clone https://github.com/<your-username>/stellarmind.git
cd stellarmind</details>
<!-- suggestion_start -->
<details>
<summary>π Committable suggestion</summary>
> βΌοΈ **IMPORTANT**
> Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
```suggestion
### 1. Fork and Clone
Fork the repository on GitHub, then replace `<your-username>` with your fork owner.
π€ Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@CONTRIBUTING.md` around lines 11 - 15, Update the βFork and Cloneβ section in
CONTRIBUTING.md to explicitly instruct contributors to fork the repository first
and replace <your-username> with their GitHub username before running git clone;
retain the existing clone and cd commands.
| ### Development | ||
| ```bash | ||
| npm run dev | ||
| npm test | ||
| npm run build | ||
| ``` |
There was a problem hiding this comment.
π― Functional Correctness | π‘ Minor | β‘ Quick win
π§© Analysis chain
π Script executed:
#!/bin/bash
set -euo pipefail
node - <<'NODE'
const scripts = require("./package.json").scripts || {};
const required = ["dev", "test", "build"];
const missing = required.filter((name) => !scripts[name]);
if (missing.length) {
console.error(`Missing package scripts: ${missing.join(", ")}`);
process.exit(1);
}
NODERepository: Flamki/stellarmind
Length of output: 187
Define the build script or remove it from Quick Start.
package.json does not define build, so npm run build fails in a new clone.
π€ Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@README.md` around lines 380 - 385, Update the Development Quick Start
commands to remove npm run build, since the package configuration does not
define a build script; keep the existing npm run dev and npm test commands
unchanged.
| ## π§ Configuration | ||
| Environment variables and configuration options are documented in `.env.example`. | ||
| Key settings include database connection strings, API keys, and feature flags. |
There was a problem hiding this comment.
π Maintainability & Code Quality | π‘ Minor | β‘ Quick win
π§© Analysis chain
π Script executed:
#!/bin/bash
set -euo pipefail
test -f .env.example
rg -n 'process\.env|dotenv' --glob '*.js' --glob '*.ts' . || trueRepository: Flamki/stellarmind
Length of output: 4417
π Script executed:
#!/bin/bash
set -euo pipefail
printf '%s\n' '--- .env.example ---'
cat -n .env.example
printf '%s\n' '--- src/config.js ---'
cat -n src/config.js
printf '%s\n' '--- README configuration context ---'
sed -n '380,410p' README.md
printf '%s\n' '--- package metadata and storage references ---'
rg -n 'database|DATABASE|postgres|mysql|sqlite|mongodb|feature flag|FEATURE|flag' \
README.md .env.example src package.json || trueRepository: Flamki/stellarmind
Length of output: 7681
π Script executed:
#!/bin/bash
set -euo pipefail
printf '%s\n' '--- .env.example ---'
cat -n .env.example
printf '%s\n' '--- src/config.js ---'
cat -n src/config.js
printf '%s\n' '--- README configuration context ---'
sed -n '380,410p' README.md
printf '%s\n' '--- database and feature-flag references ---'
rg -n 'database|DATABASE|postgres|mysql|sqlite|mongodb|feature flag|FEATURE|flag' \
README.md .env.example src package.json || trueRepository: Flamki/stellarmind
Length of output: 7678
π Script executed:
#!/bin/bash
set -euo pipefail
python3 - <<'PY'
import re
from pathlib import Path
env_text = Path('.env.example').read_text()
env_names = set(re.findall(r'(?m)^[A-Z][A-Z0-9_]*(?==)', env_text))
source_names = {}
for path in Path('src').rglob('*'):
if path.suffix not in {'.js', '.ts'}:
continue
text = path.read_text(errors='replace')
for name in re.findall(r'process\.env\.([A-Z][A-Z0-9_]*)', text):
source_names.setdefault(name, set()).add(str(path))
print('Variables read from source but absent from .env.example:')
for name in sorted(set(source_names) - env_names):
print(f'{name}: {", ".join(sorted(source_names[name]))}')
print('\nVariables in .env.example but not read with process.env.NAME in src:')
for name in sorted(env_names - set(source_names)):
print(name)
PY
printf '%s\n' '--- all environment reads outside src ---'
rg -n 'process\.env|dotenv' --glob '*.js' --glob '*.ts' --glob '!node_modules/**' .Repository: Flamki/stellarmind
Length of output: 5001
π Script executed:
#!/bin/bash
set -euo pipefail
python3 - <<'PY'
import re
from pathlib import Path
env_names = set(re.findall(r'(?m)^[A-Z][A-Z0-9_]*(?==)', Path('.env.example').read_text()))
source_names = set()
for path in Path('src').rglob('*.js'):
source_names.update(re.findall(r'process\.env\.([A-Z][A-Z0-9_]*)', path.read_text(errors='replace')))
print('Missing from .env.example:')
for name in sorted(source_names - env_names):
print(name)
print('Unused entries in .env.example:')
for name in sorted(env_names - source_names):
print(name)
PYRepository: Flamki/stellarmind
Length of output: 359
Correct the configuration description. .env.example documents Stellar wallet credentials, the Anthropic API key, network endpoints, server settings, logging, rate limits, and run-history storage. It does not document database connection strings or feature flags. Add ADMIN_TOKEN and the voice-generation variables, or limit the text to the variables currently listed.
π€ Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@README.md` around lines 399 - 401, Update the Configuration section to
accurately reflect the variables documented in .env.example: remove unsupported
references to database connection strings and feature flags, and either list the
documented Stellar wallet, Anthropic API, network, server, logging, rate-limit,
and run-history settings while adding ADMIN_TOKEN and voice-generation
variables, or use a concise description limited to the currently documented
variables.
π Doc & CI Boost
This PR enhances the repository with:
.github/workflows/ci-boost.yml) β Multi-version Node.js matrix, linting, type-checking, testing, build, and security auditAutomated quality boost for competitive ranking optimization.
Summary by CodeRabbit
Documentation
Chores