Skip to content
Open

1.0 #54

Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
50 commits
Select commit Hold shift + click to select a range
b22baf6
Merge branch 'master' into develop
mjkatgithub Feb 14, 2026
6388c9d
Feature/phase2 layout settings branding (#2)
mjkatgithub Feb 15, 2026
746cdab
Update README to reflect completion of Phase 2 and outline Phase 3 an…
mjkatgithub Feb 16, 2026
b6da591
Add issue and pull request templates for better project management
mjkatgithub Feb 17, 2026
28978df
Feature/e2ee decryption (#24)
mjkatgithub Feb 18, 2026
83cceb3
Feature/media images (#25)
mjkatgithub Feb 22, 2026
f1ae4ad
Update changelog for media image feature (#29)
mjkatgithub Feb 22, 2026
7291194
add changelog check workflow (#30)
mjkatgithub Feb 22, 2026
249640a
Add message replies and interaction bar UI (#32)
mjkatgithub Feb 24, 2026
022e608
Refactor E2E testing setup and enhance Synapse integration (#33)
mjkatgithub Feb 26, 2026
08e592a
Feature/reactions (#44)
mjkatgithub Feb 27, 2026
8b1966e
Implement session restore gating and startup modal (#45)
mjkatgithub Feb 28, 2026
c81619b
Add dedicated bug issue template and refine feature template (#49)
mjkatgithub Feb 28, 2026
c8b584b
Enhance E2EE device ID management and session handling (#50)
mjkatgithub Feb 28, 2026
cfd5814
Add root landing page experience (#46)
mjkatgithub Feb 28, 2026
c05da5a
Enhance chat message list with infinite scroll and viewport preservat…
mjkatgithub Feb 28, 2026
0eff9c1
Add GNU Affero General Public License v3.0 to the project
mjkatgithub Mar 11, 2026
8a33fb3
Add signup functionality and enhance homeserver connection handling (…
mjkatgithub Apr 19, 2026
8673573
Add onboarding components for chat functionality (#61)
mjkatgithub Apr 21, 2026
fc559ac
Enhance signup process with email verification and error handling (#64)
mjkatgithub Apr 27, 2026
f93c5ed
Implement reCAPTCHA support in signup process (#65)
mjkatgithub Apr 30, 2026
6566f2d
Enhance signup process with registration token and terms acceptance (…
mjkatgithub Apr 30, 2026
d37c10b
Feature/delegated OIDC auth (#68)
mjkatgithub May 8, 2026
21d1502
Add Account Verification Panel and Recovery Key Bootstrap Functionali…
mjkatgithub May 9, 2026
00dcd07
Implement Matrix space hierarchy and drag-and-drop functionality in c…
mjkatgithub May 9, 2026
6127a9b
Feature/threads (#74)
mjkatgithub May 15, 2026
3522203
Implement unread message indicators and read-receipt functionality in…
mjkatgithub May 16, 2026
39725db
Add Masked Secret Input Component and Update Auth Forms (#80)
mjkatgithub May 17, 2026
657e278
Implement message editing functionality in chat components (#84)
mjkatgithub May 17, 2026
dcf8438
Enhance chat components with hover capabilities and touch interaction…
mjkatgithub May 17, 2026
66c3ddb
Implement message deletion handling in chat components (#86)
mjkatgithub May 17, 2026
b8ba872
Enhance chat timeline with immediate message visibility and preserved…
mjkatgithub May 18, 2026
f70a915
Implement pinned messages feature in chat components (#89)
mjkatgithub May 19, 2026
473eca3
Implement emoji picker and shortcode autocomplete in message composer…
mjkatgithub May 20, 2026
d687660
Enhance reply functionality in chat components (#91)
mjkatgithub May 20, 2026
16e8830
Implement typing indicators in chat components (#77) (#92)
mjkatgithub May 21, 2026
4105c48
Feature/space settings structure (#95)
mjkatgithub May 25, 2026
85f8684
Feature/voice message recording (#97)
mjkatgithub May 26, 2026
a65a259
Implement matrix space creation from UI and enhance related features …
mjkatgithub May 27, 2026
6e11787
Enhance image sending functionality with reply and thread support (#99)
mjkatgithub May 27, 2026
fbad7fb
Implement video message functionality in chat (#26) (#100)
mjkatgithub May 28, 2026
db94e7e
Add script to sync open issue project fields (#101)
mjkatgithub May 28, 2026
2a23bf4
Implement audio message functionality in chat (#102)
mjkatgithub May 28, 2026
246e814
Feature/mention priority notifications (#108)
mjkatgithub May 30, 2026
05a365b
Implement space unread state management and sidebar thread navigation…
mjkatgithub May 31, 2026
81884d1
Enhance media upload functionality in chat components (#119)
mjkatgithub Jun 1, 2026
5336933
Enhance build process and documentation for chunk sizes (#121)
mjkatgithub Jun 1, 2026
ba4745e
Add project documentation and guidelines in AGENTS.md (#123)
mjkatgithub Jun 1, 2026
a375cf5
Implement leave room functionality in chat components (#125)
mjkatgithub Jun 13, 2026
565a443
Implement space home panel and lobby functionality (#126)
mjkatgithub Jun 13, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
24 changes: 24 additions & 0 deletions .env.example
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
#
# Decentra – local environment variables (example)
#
# Copy to `.env.local` (recommended) or `.env` and fill values.
# Files matching `.env*` are gitignored by default (except `.env.example`).
#
# Nuxt exposes variables prefixed with `NUXT_PUBLIC_` to the browser.
#

#
# Optional remote debug logging (default: console-only)
#
# When empty/unset: Decentra only logs to the browser console.
# When set: Decentra will POST debug payloads to this URL.
#
# Example (Cursor debug session ingest):
# NUXT_PUBLIC_DEBUG_LOG_INGEST_URL=http://127.0.0.1:7476/ingest/<id>
# NUXT_PUBLIC_DEBUG_LOG_SESSION_ID=<session>
# NUXT_PUBLIC_DEBUG_LOG_SESSION_HEADER=X-Debug-Session-Id
#
NUXT_PUBLIC_DEBUG_LOG_INGEST_URL=
NUXT_PUBLIC_DEBUG_LOG_SESSION_ID=
NUXT_PUBLIC_DEBUG_LOG_SESSION_HEADER=

54 changes: 54 additions & 0 deletions .github/ISSUE_TEMPLATE/bug.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
---
name: Bug
about: Plan and track a bug fix slice
title: "Bug: "
labels: ["type:bug"]
assignees: []
---

## Goal
<!-- One short statement of the user-visible bug impact -->

## Scope
<!-- In scope:
- Bug source analysis
- Code fix
- Required test updates
-->

## Branch
`bug/<bugfix>`

## Bug Details
### Current Behavior
<!-- What happens today? -->

### Expected Behavior
<!-- What should happen instead? -->

### Steps to Reproduce
1. ...
2. ...
3. ...

## Acceptance Criteria
- [ ] Root cause is identified and fixed.
- [ ] Behavior matches expected result in affected flow.
- [ ] No regression is introduced in related flow.

## Test Checklist
### Unit
- [ ] Add or update unit tests for the bug scenario.

### Integration
- [ ] Add or update integration tests if cross-component behavior changed.

### E2E
- [ ] Add or update E2E coverage when user flow is affected.

### Manual
- [ ] Reproduce bug on current main/develop baseline.
- [ ] Verify fix with same repro steps after patch.

## Notes
<!-- Optional context, links, decisions -->
5 changes: 5 additions & 0 deletions .github/ISSUE_TEMPLATE/config.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
blank_issues_enabled: false
contact_links:
- name: Questions and support
url: https://github.com/mjkatgithub/Decentra/discussions
about: Please ask questions in Discussions.
24 changes: 24 additions & 0 deletions .github/ISSUE_TEMPLATE/epic.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
---
name: Epic
about: Group related feature issues under one milestone goal
title: "Epic: "
labels: ["type:epic"]
assignees: []
---

## Goal
<!-- What business/product outcome should this epic deliver? -->

## Scope
- [ ] Feature issue 1
- [ ] Feature issue 2
- [ ] Feature issue 3

## Definition of Done
- [ ] All feature issues are created and linked as sub-issues
- [ ] All feature issues are assigned to the same milestone
- [ ] All feature issues are added to the project board
- [ ] Every feature issue has acceptance criteria and test checklist

## Notes
<!-- Optional constraints, dependencies, risks -->
36 changes: 36 additions & 0 deletions .github/ISSUE_TEMPLATE/feature.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
---
name: Feature
about: Plan and implement a feature slice
title: "Feature: "
labels: ["type:feature"]
assignees: []
---

## Goal
<!-- One short statement of the user value -->

## Scope
<!-- In scope:
- ...
-->

## Branch
`feature/<feature>` (Feature)

## Acceptance Criteria
- [ ] ...
- [ ] ...
- [ ] ...

## Test Checklist
### Unit
- [ ] ...

### Integration
- [ ] ...

### E2E
- [ ] ...

## Notes
<!-- Optional context, links, decisions -->
35 changes: 35 additions & 0 deletions .github/PULL_REQUEST_TEMPLATE/default.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
## Summary
<!-- What and why -->

## Related Issue
<!-- Example: Closes #123 -->

## Branch Flow
- Source branch: `feature/<feature>` or `bug/<bugfix>`
- Target branch: `develop`

## Scope of Changes
- [ ] Code changes are limited to the issue scope
- [ ] No unrelated refactors are included

## Validation
### Local checks
- [ ] Unit tests pass
- [ ] Integration tests pass (if relevant)
- [ ] E2E smoke passes (if relevant)

### Manual test
- [ ] Happy path verified
- [ ] Edge cases verified

## Risk and Rollback
- Risk level: [ ] Low [ ] Medium [ ] High
- Rollback plan:
- Revert this PR
- Disable affected feature path if needed

## Checklist
- [ ] Issue is linked and updated
- [ ] Acceptance criteria are met
- [ ] Test checklist in the issue is completed
- [ ] No secrets or credentials are included
39 changes: 39 additions & 0 deletions .github/PULL_REQUEST_TEMPLATE/release.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
## Release Summary
<!-- Describe the release intent and scope -->

## Branch Flow
- Source branch: `develop`
- Target branch: `master`

## Included Work
- [ ] Milestone completed (example: Phase 3)
- [ ] Linked feature/bug PRs are merged into `develop`
- [ ] Release notes draft is prepared

## Compatibility and Risk
- Breaking changes: [ ] No [ ] Yes (describe below)
- Migration required: [ ] No [ ] Yes (describe below)
- Risk level: [ ] Low [ ] Medium [ ] High

### Breaking changes / migration notes
<!-- Add details or write N/A -->

## Validation
### Pre-release checks
- [ ] CI pipelines passed on `develop`
- [ ] Smoke tests passed
- [ ] Critical user flows validated manually

### Post-merge plan
- [ ] Verify production/staging health
- [ ] Monitor logs and error tracking
- [ ] Prepare rollback if required

## Rollback Plan
- Revert release merge commit on `master`
- Hotfix from `master` if partial rollback is needed

## Checklist
- [ ] CHANGELOG updated
- [ ] Version/tag strategy confirmed
- [ ] Stakeholder communication prepared
88 changes: 88 additions & 0 deletions .github/workflows/changelog.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,88 @@
name: Changelog Check

on:
pull_request:
branches:
- develop
- master

jobs:
changelog:
name: Changelog policy
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0

- name: Enforce changelog policy by target branch
run: |
set -euo pipefail

BASE_SHA="${{ github.event.pull_request.base.sha }}"
HEAD_SHA="${{ github.event.pull_request.head.sha }}"
BASE_REF="${{ github.base_ref }}"
HEAD_REF="${{ github.head_ref }}"

if ! git diff --name-only "$BASE_SHA" "$HEAD_SHA" | \
grep -q '^CHANGELOG.md$'; then
echo "ERROR: CHANGELOG.md was not updated."
exit 1
fi

extract_unreleased() {
awk '
/^## \[Unreleased\]/ { in_section=1; next }
/^## \[/ { if (in_section) exit }
in_section { print }
'
}

count_entries() {
grep -E -c '^[[:space:]]*-[[:space:]]+' || true
}

BASE_UNRELEASED="$(git show "$BASE_SHA:CHANGELOG.md" | \
extract_unreleased)"
HEAD_UNRELEASED="$(git show "$HEAD_SHA:CHANGELOG.md" | \
extract_unreleased)"

BASE_COUNT="$(printf '%s\n' "$BASE_UNRELEASED" | count_entries)"
HEAD_COUNT="$(printf '%s\n' "$HEAD_UNRELEASED" | count_entries)"

if [ "$BASE_REF" = "develop" ]; then
# Feature/Bug/etc -> develop:
# PR must add at least one Unreleased entry.
if [ "$HEAD_COUNT" -le "$BASE_COUNT" ]; then
echo "ERROR: PR into develop must add an Unreleased entry."
echo "Base Unreleased entries: $BASE_COUNT"
echo "Head Unreleased entries: $HEAD_COUNT"
exit 1
fi

echo "OK: Unreleased entries increased ($BASE_COUNT -> $HEAD_COUNT)."
exit 0
fi

if [ "$BASE_REF" = "master" ] && [ "$HEAD_REF" = "develop" ]; then
# develop -> master:
# Unreleased must be empty and a new version section must be added.
if [ "$HEAD_COUNT" -ne 0 ]; then
echo "ERROR: develop -> master requires empty Unreleased section."
echo "Current Unreleased entries: $HEAD_COUNT"
exit 1
fi

if ! git diff "$BASE_SHA" "$HEAD_SHA" -- CHANGELOG.md | \
grep -E '^\+\#\# \[[0-9]+\.[0-9]+\.[0-9]+\] - '; then
echo "ERROR: No new version section found in CHANGELOG.md."
exit 1
fi

echo "OK: Release changelog structure is valid."
exit 0
fi

# For other PR routes, require changelog file change only.
echo "OK: CHANGELOG.md updated for this PR route."
Loading
Loading