diff --git a/CHANGELOG.md b/CHANGELOG.md
index d64299f..d91729e 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,13 @@
# StatWrap Changelog
+## 0.0.19 - November 26, 2025
+
+### Change Summary
+
+- Improve search by excluding user folders from R, RStudio, Python, Jupyter, etc. from indexing.
+
+**Full Changelog**: https://github.com/StatTag/StatWrap/compare/0.0.18...0.0.19
+
## 0.0.18 - November 20, 2025
### Change Summary
diff --git a/app/constants/search-config.js b/app/constants/search-config.js
index af7c380..fa102cc 100644
--- a/app/constants/search-config.js
+++ b/app/constants/search-config.js
@@ -2,6 +2,19 @@ module.exports = {
// File indexing settings
indexing: {
maxFileSize: 0.1 * 1024 * 1024,
+ excludedDirectories: ['node_modules', '.git', '.statwrap',
+ // Python
+ '__pycache__', '.venv', 'venv', '.pytest_cache', '.pybuilder', '.ipynb_checkpoints',, '__pypackages__',
+ // R and RStudio
+ '.Rproj.user'
+ ],
+
+ excludedFiles: [
+ // R and RStudio
+ '.Rhistory', '.Rapp.history',
+ // Mac
+ '.DS_Store'
+ ]
},
// Search settings
diff --git a/app/containers/AboutPage/AboutPage.js b/app/containers/AboutPage/AboutPage.js
index 6660bdd..f9cfabf 100644
--- a/app/containers/AboutPage/AboutPage.js
+++ b/app/containers/AboutPage/AboutPage.js
@@ -5,7 +5,7 @@ export default class AboutPage extends Component {
render() {
return (
-
StatWrap v0.18
+
StatWrap v0.19
(c) 2021-2025 Northwestern University Feinberg School of Medicine
diff --git a/app/package-lock.json b/app/package-lock.json
index 15a0568..298397e 100644
--- a/app/package-lock.json
+++ b/app/package-lock.json
@@ -1,12 +1,12 @@
{
"name": "statwrap",
- "version": "0.0.18",
+ "version": "0.0.19",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "statwrap",
- "version": "0.0.18",
+ "version": "0.0.19",
"hasInstallScript": true,
"license": "MIT",
"dependencies": {
diff --git a/app/package.json b/app/package.json
index 7bc1453..d6dd4aa 100644
--- a/app/package.json
+++ b/app/package.json
@@ -1,7 +1,7 @@
{
"name": "statwrap",
"productName": "StatWrap",
- "version": "0.0.18",
+ "version": "0.0.19",
"description": "Reproducible research made easy",
"main": "./main.prod.js",
"author": {
diff --git a/app/services/SearchService.js b/app/services/SearchService.js
index 3da538c..9b19571 100644
--- a/app/services/SearchService.js
+++ b/app/services/SearchService.js
@@ -7,7 +7,6 @@ import Messages from '../constants/messages';
import Constants from '../constants/constants';
const SEARCH_CONFIG_VERSION = '1.0';
-const EXCLUDED_DIRS = ['node_modules', '.git', '.statwrap', '__pycache__', '.venv', 'venv'];
class SearchService {
constructor() {
@@ -822,12 +821,18 @@ class SearchService {
const stats = fs.statSync(fullPath);
if (stats.isDirectory()) {
- if (!EXCLUDED_DIRS.includes(item)) {
+ // Don't process ignored directories
+ if (!SearchConfig?.indexing?.excludedDirectories.includes(item)) {
await scanDirectory(fullPath);
}
} else if (stats.isFile()) {
totalFiles++;
+ // Skip any ignored files
+ if (SearchConfig?.indexing?.excludedFiles.includes(item)) {
+ continue;
+ }
+
if (stats.size > fileSizeLimit) {
skippedLargeFiles++;
continue;
diff --git a/package.json b/package.json
index c713f75..d20fb81 100644
--- a/package.json
+++ b/package.json
@@ -1,7 +1,7 @@
{
"name": "statwrap",
"productName": "StatWrap",
- "version": "0.0.18",
+ "version": "0.0.19",
"description": "Reproducible research made easy",
"scripts": {
"build": "concurrently \"yarn build-main\" \"yarn build-renderer\" \"yarn build-worker\" \"yarn build-preload\"",