Skip to content

Commit 65728fd

Browse files
author
StackMemory Bot (CLI)
committed
chore: prepare 1.0.0 release
- License: BSL 1.1 (converts to MIT after 4 years) - Version: 0.8.1 → 1.0.0 - Tarball: 2.1MB → 735KB (clean dist, no source maps) - CI/CD: Node 20+22 matrix, fixed deprecated actions, concurrency groups - TypeScript: reduced as-any casts 71% (153 → 44) - CLI: Node 20+ runtime version check - Docs: CHANGELOG 1.0.0, SECURITY.md, CONTRIBUTING.md - Tests: 652 passing, lint clean, build 88ms
1 parent 37796d5 commit 65728fd

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

54 files changed

+1127
-413
lines changed

.github/workflows/coverage-only.yml

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,10 @@ name: Coverage Only
33
on:
44
workflow_dispatch:
55

6+
concurrency:
7+
group: coverage-${{ github.ref }}
8+
cancel-in-progress: true
9+
610
jobs:
711
coverage:
812
runs-on: ubuntu-latest
@@ -36,3 +40,9 @@ jobs:
3640
fail_ci_if_error: false
3741
verbose: true
3842

43+
- name: Upload coverage artifact
44+
uses: actions/upload-artifact@v4
45+
with:
46+
name: coverage-report
47+
path: coverage/
48+

.github/workflows/npm-publish.yml

Lines changed: 21 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -11,45 +11,49 @@ on:
1111
required: true
1212
type: string
1313

14+
concurrency:
15+
group: publish-${{ github.ref }}
16+
cancel-in-progress: false
17+
1418
jobs:
1519
publish:
1620
runs-on: ubuntu-latest
21+
permissions:
22+
contents: write
1723
steps:
1824
- uses: actions/checkout@v4
19-
25+
2026
- name: Setup Node.js
2127
uses: actions/setup-node@v4
2228
with:
2329
node-version: '20'
2430
registry-url: 'https://registry.npmjs.org'
25-
31+
cache: 'npm'
32+
2633
- name: Install dependencies
2734
run: npm ci
28-
35+
2936
- name: Build
3037
run: npm run build
31-
38+
3239
- name: Verify dist artifacts
3340
run: npm run verify:dist
34-
35-
- name: Run tests
36-
run: npm test
37-
41+
42+
- name: Run pre-publish tests
43+
run: npm run test:pre-publish
44+
env:
45+
CI: true
46+
3847
- name: Publish to NPM
3948
run: npm publish --access public
4049
env:
4150
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
42-
51+
4352
- name: Create GitHub Release
4453
if: startsWith(github.ref, 'refs/tags/')
45-
uses: actions/create-release@v1
46-
env:
47-
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
54+
uses: softprops/action-gh-release@v2
4855
with:
49-
tag_name: ${{ github.ref }}
50-
release_name: Release ${{ github.ref }}
56+
generate_release_notes: true
5157
body: |
5258
## What's Changed
53-
- Check [CHANGELOG.md](https://github.com/${{ github.repository }}/blob/main/CHANGELOG.md) for details
54-
draft: false
55-
prerelease: false
59+
See [CHANGELOG.md](https://github.com/${{ github.repository }}/blob/main/CHANGELOG.md) for details.
Lines changed: 46 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -1,50 +1,62 @@
1-
name: Test Shared Context
1+
name: CI
22

33
on:
44
push:
5+
branches: [main]
56
paths:
6-
- 'src/core/context/**'
7-
- 'src/core/session/**'
8-
- 'src/cli/**'
7+
- 'src/**'
8+
- 'scripts/**'
9+
- 'package.json'
10+
- 'package-lock.json'
11+
- 'tsconfig*.json'
12+
- 'esbuild.config.js'
13+
- 'vitest.config.ts'
914
- '.github/workflows/test-shared-context.yml'
1015
pull_request:
16+
branches: [main]
1117
paths:
12-
- 'src/core/context/**'
13-
- 'src/core/session/**'
14-
- 'src/cli/**'
18+
- 'src/**'
19+
- 'scripts/**'
20+
- 'package.json'
21+
- 'package-lock.json'
22+
- 'tsconfig*.json'
23+
- 'esbuild.config.js'
24+
- 'vitest.config.ts'
1525
workflow_dispatch:
1626

27+
concurrency:
28+
group: ci-${{ github.ref }}
29+
cancel-in-progress: true
30+
1731
jobs:
1832
test:
1933
runs-on: ubuntu-latest
20-
34+
2135
strategy:
2236
matrix:
23-
node-version: [18.x, 20.x]
24-
37+
node-version: [20.x, 22.x]
38+
2539
steps:
2640
- uses: actions/checkout@v4
27-
41+
2842
- name: Use Node.js ${{ matrix.node-version }}
2943
uses: actions/setup-node@v4
3044
with:
3145
node-version: ${{ matrix.node-version }}
3246
cache: 'npm'
33-
47+
3448
- name: Install dependencies
3549
run: npm ci
36-
50+
3751
- name: Build project
3852
run: npm run build
39-
53+
4054
- name: Verify dist artifacts
4155
run: npm run verify:dist
42-
43-
- name: Run shared context tests
44-
run: npm run test:shared-context
45-
env:
46-
CI: true
47-
56+
57+
- name: Run lint
58+
run: npm run lint
59+
4860
- name: Run all tests
4961
run: npm run test:run
5062
env:
@@ -65,7 +77,7 @@ jobs:
6577
flags: unit
6678
fail_ci_if_error: false
6779
verbose: true
68-
80+
6981
- name: Upload test results
7082
if: always()
7183
uses: actions/upload-artifact@v4
@@ -78,49 +90,49 @@ jobs:
7890
integration:
7991
runs-on: ubuntu-latest
8092
needs: test
81-
93+
8294
steps:
8395
- uses: actions/checkout@v4
84-
96+
8597
- name: Setup Node.js
8698
uses: actions/setup-node@v4
8799
with:
88100
node-version: 20.x
89101
cache: 'npm'
90-
102+
91103
- name: Install dependencies
92104
run: npm ci
93-
105+
94106
- name: Build project
95107
run: npm run build
96-
108+
97109
- name: Verify dist artifacts
98110
run: npm run verify:dist
99-
111+
100112
- name: Test CLI integration
101113
run: |
102114
# Initialize test project
103115
mkdir -p /tmp/test-project
104116
cd /tmp/test-project
105117
npx stackmemory init
106-
107-
# Test status command with shared context
118+
119+
# Test status command
108120
npx stackmemory status
109-
121+
110122
# Create test frames and sync
111123
echo "Testing shared context..." | npx stackmemory context push "Test Frame" --type task
112124
npx stackmemory context add decision "Use shared context for cross-session reference"
113-
125+
114126
# Verify context persistence
115127
npx stackmemory status --project
116-
128+
117129
- name: Verify shared context files
118130
run: |
119131
# Check if shared context directory exists
120132
if [ -d "$HOME/.stackmemory/shared-context" ]; then
121-
echo "Shared context directory exists"
133+
echo "Shared context directory exists"
122134
ls -la "$HOME/.stackmemory/shared-context/"
123135
else
124-
echo "Shared context directory not found"
136+
echo "Shared context directory not found"
125137
exit 1
126138
fi

.npmignore

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
# Source maps (not needed in published CLI package)
2+
**/*.js.map
3+
**/*.d.ts.map
4+
15
# Source files (only ship dist)
26
src/
37
tsconfig.json

CHANGELOG.md

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,46 @@ All notable changes to StackMemory will be documented in this file.
55
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
66
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
77

8+
## [1.0.0] - 2026-02-10
9+
10+
### Highlights
11+
- First stable release of StackMemory
12+
- Licensed under BSL 1.1 (converts to MIT after 4 years)
13+
- 652 tests passing, TypeScript strict mode, Node 20+ required
14+
15+
### Added
16+
- FTS5 full-text search with BM25 ranking and hybrid scoring
17+
- sqlite-vec embedding support with multi-provider architecture (Xenova, OpenAI)
18+
- Memory monitor daemon with auto-capture/clear cycle
19+
- Prompt Forge (GEPA) with AGENT.md watcher and extensions system
20+
- Skills system: spec generator, Linear task runner, agent prompt consolidation
21+
- DiffMem integration for long-term user memory
22+
- Retrieval signals, garbage collection, cold storage, multi-repo support
23+
- Node.js 20+ runtime version check at CLI startup
24+
- Claude Code hooks: auto-init on wrapper launch
25+
26+
### Changed
27+
- Removed SMS/WhatsApp/Twilio integration (replaced with terminal bell notification)
28+
- Removed ngrok dependency
29+
- Reduced `as any` casts by 71% (153 to 44) with proper TypeScript interfaces
30+
- Consolidated test suite from 719 to 652 focused tests
31+
- CI/CD: Node 20+22 matrix, fixed deprecated actions, added concurrency groups
32+
- Build: clean dist before build, removed source maps from tarball (2.1MB to 735KB)
33+
- License changed from MIT to BSL 1.1
34+
35+
### Fixed
36+
- Schema unification between FrameDatabase and SQLiteAdapter
37+
- FTS5 empty query fallback to LIKE search
38+
- Pre-publish script git dirty check race condition
39+
- Embedding provider initPromise reset on failure
40+
- SQLite pragma conflict in skills CLI
41+
- CLI test timeout flakes via module import caching
42+
43+
### Security
44+
- Feature flags cleanup (removed stale whatsapp flag)
45+
- Removed dead feature stubs and scripts
46+
- Input validation improvements across CLI commands
47+
848
## [0.3.15] - 2025-01-14
949

1050
### Added

CONTRIBUTING.md

Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
# Contributing to StackMemory
2+
3+
Thanks for your interest in contributing to StackMemory!
4+
5+
## Getting Started
6+
7+
```bash
8+
git clone https://github.com/stackmemoryai/stackmemory.git
9+
cd stackmemory
10+
npm install
11+
npm run build
12+
npm run test:run
13+
```
14+
15+
## Development Workflow
16+
17+
1. Fork the repository
18+
2. Create a feature branch: `git checkout -b feature/your-feature`
19+
3. Make your changes
20+
4. Run validation: `npm run lint && npm run test:run && npm run build`
21+
5. Commit with conventional format: `type(scope): message`
22+
6. Open a pull request against `main`
23+
24+
## Commit Messages
25+
26+
Follow conventional commits:
27+
- `feat(scope):` new feature
28+
- `fix(scope):` bug fix
29+
- `refactor(scope):` code restructuring
30+
- `test(scope):` adding or updating tests
31+
- `chore(scope):` maintenance tasks
32+
- `docs(scope):` documentation changes
33+
34+
## Code Standards
35+
36+
- TypeScript strict mode is enabled
37+
- ESM modules with `.js` extensions on relative imports
38+
- Run `npm run lint` before committing (pre-commit hooks enforce this)
39+
- New features require tests in `src/**/__tests__/`
40+
- Maintain or improve test coverage
41+
42+
## Project Structure
43+
44+
```
45+
src/
46+
cli/ # CLI commands and entry point
47+
core/ # Core business logic (context, database, query)
48+
integrations/ # External integrations (Linear, MCP)
49+
services/ # Business services
50+
utils/ # Shared utilities
51+
```
52+
53+
## Testing
54+
55+
```bash
56+
npm run test:run # Run all tests once
57+
npm test # Watch mode
58+
npm run test:pre-publish # Full pre-publish validation
59+
```
60+
61+
## License
62+
63+
By contributing, you agree that your contributions will be licensed under the project's [BSL 1.1 license](./LICENSE).

0 commit comments

Comments
 (0)