Skip to content

Commit 628b4c3

Browse files
committed
docs: OSS-standard repo structure
- README with badges, features, quick start, API overview, env vars - MIT license (GrayCodeAI 2026) - CONTRIBUTING, CODE_OF_CONDUCT (v2.1), SECURITY, CHANGELOG - GitHub templates: PR, bug report, feature request - CI workflow: build, test, lint, docker build - Makefile with build/test/lint/run/docker targets - Cleaned .gitignore and docker-compose.yml
1 parent 2b94507 commit 628b4c3

13 files changed

Lines changed: 801 additions & 177 deletions
Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
---
2+
name: Bug Report
3+
about: Report a bug to help us improve Lark
4+
title: "[Bug] "
5+
labels: bug
6+
assignees: ''
7+
---
8+
9+
## Description
10+
11+
<!-- A clear and concise description of the bug. -->
12+
13+
## Steps to Reproduce
14+
15+
1.
16+
2.
17+
3.
18+
19+
## Expected Behavior
20+
21+
<!-- What should happen? -->
22+
23+
## Actual Behavior
24+
25+
<!-- What actually happens? -->
26+
27+
## Environment
28+
29+
- **OS**: <!-- e.g., Ubuntu 22.04, macOS 14 -->
30+
- **Go version**: <!-- e.g., 1.22.0 -->
31+
- **Lark version**: <!-- e.g., 0.1.0 or commit hash -->
32+
- **Deployment**: <!-- Docker / binary / source -->
33+
34+
## Logs
35+
36+
<!-- Paste any relevant log output. -->
37+
38+
```
39+
40+
```
41+
42+
## Additional Context
43+
44+
<!-- Any other information that might help diagnose the issue. -->
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
---
2+
name: Feature Request
3+
about: Suggest a new feature or improvement for Lark
4+
title: "[Feature] "
5+
labels: enhancement
6+
assignees: ''
7+
---
8+
9+
## Problem
10+
11+
<!-- What problem does this feature solve? Describe the use case. -->
12+
13+
## Proposed Solution
14+
15+
<!-- How should this work? -->
16+
17+
## Alternatives Considered
18+
19+
<!-- Have you considered other approaches? -->
20+
21+
## Additional Context
22+
23+
<!-- Mockups, examples, references, or anything else that helps explain the feature. -->

.github/PULL_REQUEST_TEMPLATE.md

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
## Description
2+
3+
<!-- What does this PR do? Why is it needed? -->
4+
5+
## Type of Change
6+
7+
- [ ] Bug fix (non-breaking change that fixes an issue)
8+
- [ ] New feature (non-breaking change that adds functionality)
9+
- [ ] Breaking change (fix or feature that causes existing functionality to change)
10+
- [ ] Documentation update
11+
- [ ] Refactor (no functional changes)
12+
- [ ] Test improvement
13+
- [ ] CI/infrastructure
14+
15+
## Testing
16+
17+
<!-- How was this tested? -->
18+
19+
- [ ] New tests added
20+
- [ ] Existing tests pass (`make test`)
21+
- [ ] Manual testing performed
22+
23+
## Checklist
24+
25+
- [ ] My code follows the style of this project
26+
- [ ] I have run `make lint` and addressed any issues
27+
- [ ] I have run `make test` and all tests pass
28+
- [ ] I have added tests that prove my fix or feature works
29+
- [ ] I have updated documentation as needed
30+
- [ ] My changes generate no new warnings

.github/workflows/ci.yml

Lines changed: 26 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,15 +6,22 @@ on:
66
pull_request:
77
branches: [main]
88

9+
permissions:
10+
contents: read
11+
912
jobs:
1013
build:
14+
name: Build & Test
1115
runs-on: ubuntu-latest
1216
steps:
1317
- uses: actions/checkout@v4
1418

1519
- uses: actions/setup-go@v5
1620
with:
17-
go-version: '1.25'
21+
go-version: '1.22'
22+
23+
- name: Download dependencies
24+
run: go mod download
1825

1926
- name: Vet
2027
run: go vet ./...
@@ -25,13 +32,28 @@ jobs:
2532
- name: Build
2633
run: go build ./cmd/lark-server
2734

35+
lint:
36+
name: Lint
37+
runs-on: ubuntu-latest
38+
steps:
39+
- uses: actions/checkout@v4
40+
41+
- uses: actions/setup-go@v5
42+
with:
43+
go-version: '1.22'
44+
45+
- name: golangci-lint
46+
uses: golangci/golangci-lint-action@v6
47+
with:
48+
version: latest
49+
2850
docker:
51+
name: Docker Build
2952
runs-on: ubuntu-latest
30-
needs: build
53+
needs: [build]
3154
if: github.event_name == 'push' && github.ref == 'refs/heads/main'
3255
steps:
3356
- uses: actions/checkout@v4
3457

3558
- name: Build Docker image
36-
run: docker build -t lark-daemon:latest ./lark-daemon
37-
working-directory: .
59+
run: docker build -t lark-daemon:latest .

.gitignore

Lines changed: 34 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,46 @@
1-
# Compiled binaries
1+
# Binaries
22
bin/
33
*.exe
4+
*.exe~
5+
*.dll
6+
*.so
7+
*.dylib
48
lark-server
59

10+
# Test
11+
*.test
12+
coverage.out
13+
coverage.html
14+
615
# Data directory (runtime)
716
data/
817

18+
# Vendor
19+
vendor/
20+
21+
# Temporary files
22+
tmp/
23+
*.tmp
24+
*.bak
25+
*.swp
26+
*.swo
27+
*~
28+
29+
# Environment
30+
.env
31+
.env.local
32+
.env.*.local
33+
934
# IDE
1035
.idea/
1136
.vscode/
1237
*.swp
1338
*.swo
14-
store.test
39+
.editorconfig
40+
41+
# OS
42+
.DS_Store
43+
Thumbs.db
44+
45+
# Air (live reload)
46+
.air.toml

CHANGELOG.md

Lines changed: 91 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,91 @@
1+
# Changelog
2+
3+
All notable changes to this project will be documented in this file.
4+
5+
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
6+
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7+
8+
## [0.1.0] - 2026-05-27
9+
10+
Initial release.
11+
12+
### Added
13+
14+
#### Messaging
15+
- Channel-based messaging with threaded conversations
16+
- Direct messages with unread tracking
17+
- Message editing with edit history
18+
- Message deletion
19+
- Reactions (add, list, remove)
20+
- Message pinning
21+
- Full-text message search
22+
23+
#### Agents
24+
- Agent provisioning with API keys and role cards
25+
- Agent lifecycle events: hello, sleep, wake, thinking
26+
- Persistent agent memory (namespaced key-value store)
27+
- Per-agent metrics collection
28+
29+
#### Real-time
30+
- WebSocket hub with channel-scoped broadcasting
31+
- JSON envelope protocol with typed events
32+
- JWT and API key authentication for WebSocket connections
33+
34+
#### Workspaces
35+
- Workspace CRUD
36+
- Member management with role-based access (owner, admin, member)
37+
- Avatar uploads and profile management
38+
39+
#### Channels
40+
- Channel CRUD with archive/unarchive
41+
- Channel membership management
42+
- Channel search
43+
44+
#### Files
45+
- File upload and download
46+
- Local filesystem and S3-compatible storage backends
47+
48+
#### Workflows
49+
- Workflow definition, triggering, and run tracking
50+
- Cron-based scheduled workflow execution
51+
52+
#### Approvals
53+
- Approval workflow creation and review
54+
55+
#### Billing
56+
- Stripe integration for workspace billing
57+
- Checkout sessions and customer portal
58+
- Usage metering
59+
60+
#### Security
61+
- End-to-end encryption (E2EE) with key registration
62+
- JWT authentication with token revocation
63+
- Per-IP rate limiting with automatic eviction
64+
- Security headers middleware
65+
- CORS configuration
66+
67+
#### SSO
68+
- GitHub, Google, and Microsoft OAuth
69+
- Workspace-level SSO provider management
70+
- SSO discovery endpoint
71+
72+
#### Notifications
73+
- In-app notifications with unread counts
74+
- Mark read / mark all read
75+
76+
#### Integrations
77+
- Integration registry and installation
78+
- Webhook management with secret-based execution
79+
80+
#### Administration
81+
- Admin dashboard endpoints (stats, workspaces, agents)
82+
- Database backup endpoint
83+
- Prometheus-compatible metrics endpoint
84+
- Structured logging with configurable level and format
85+
86+
#### Infrastructure
87+
- Docker and Docker Compose support
88+
- SQLite storage with WAL mode
89+
- Configurable via environment variables
90+
- Health check endpoint
91+
- Graceful shutdown

0 commit comments

Comments
 (0)