Skip to content

Commit 55ec903

Browse files
committed
chore: automated sync of local changes
1 parent 4640c26 commit 55ec903

28 files changed

Lines changed: 2845 additions & 4675 deletions

.github/workflows/dogfood-gate.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ jobs:
3838
3939
- name: Validate A2ML manifests
4040
if: steps.detect.outputs.count > 0
41-
uses: hyperpolymath/a2ml-validate-action@main
41+
uses: hyperpolymath/a2ml-validate-action@cb3c1e298169dc5ac2b42e257068b0fb5920cd5e
4242
with:
4343
path: '.'
4444
strict: 'false'
@@ -86,7 +86,7 @@ jobs:
8686
8787
- name: Validate K9 contracts
8888
if: steps.detect.outputs.k9_count > 0
89-
uses: hyperpolymath/k9-validate-action@main
89+
uses: hyperpolymath/k9-validate-action@236f0035cc159051c8dd5dc7cd8af1e8cf961462
9090
with:
9191
path: '.'
9292
strict: 'false'

.github/workflows/instant-sync.yml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,4 +30,6 @@ jobs:
3030
}
3131
3232
- name: Confirm
33-
run: echo "::notice::Propagation triggered for ${{ github.event.repository.name }}"
33+
env:
34+
REPO_NAME: ${{ github.event.repository.name }}
35+
run: echo "::notice::Propagation triggered for ${REPO_NAME}"

.github/workflows/security-scan.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,6 @@ permissions:
1414

1515
jobs:
1616
scan:
17-
uses: hyperpolymath/panic-attacker/.github/workflows/scan-and-report.yml@main
17+
uses: hyperpolymath/panic-attacker/.github/workflows/scan-and-report.yml@21fc3f00a088c954912936f4a68970621b82c2e6
1818
secrets:
1919
VERISIMDB_PAT: ${{ secrets.VERISIMDB_PAT }}

.gitignore

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,8 @@ Thumbs.db
1616
/build/
1717
/dist/
1818
/out/
19+
/connectors/clients/zig/.zig-cache/
20+
/connectors/clients/zig/zig-out/
1921

2022
# Dependencies
2123
/node_modules/
@@ -113,3 +115,44 @@ ai-cli-crash-capture/
113115

114116
# ClickHouse backup dumps
115117
backup/
118+
119+
# ============================================
120+
# BINARY ARTIFACTS - Scorecard Security Fix
121+
# ============================================
122+
123+
# Zig build artifacts (resolves Scorecard alerts #10-11)
124+
/zig-out/
125+
**/zig-out/
126+
*.a
127+
*.so
128+
129+
# Rust build artifacts (resolves Scorecard alerts #12-13)
130+
*.rlib
131+
*.dylib
132+
133+
# Elixir NIF binaries
134+
priv/*.so
135+
priv/*.dll
136+
priv/*.exe
137+
138+
# Windows binaries
139+
*.exe
140+
*.dll
141+
142+
# macOS binaries
143+
*.dylib
144+
145+
# JIT compilation
146+
.jit/
147+
148+
# Pre-built binaries from any source
149+
*.prebuilt
150+
*.binary
151+
152+
# Build cache directories
153+
.cargo/
154+
**/.cargo/
155+
156+
# ============================================
157+
# END: Binary Artifacts Section
158+
# ============================================
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
= Contractiles Template Set
2+
:toc:
3+
:sectnums:
4+
5+
This directory contains the generalized contractiles templates. Copy the `.machine_readable/contractiles/` directory into a new repo to establish a consistent operational, validation, trust, recovery, and intent framework.
6+
7+
== Fill-In Instructions
8+
9+
1. Update the Mustfile to reflect your real invariants (paths, schema versions, ports).
10+
2. Replace Trustfile.hs placeholders with your actual key paths and verification commands.
11+
3. Adjust Dustfile handlers to match your rollback and recovery tooling.
12+
4. Update Intentfile to mirror the roadmap you want the system to evolve toward.
13+
14+
== Contents
15+
16+
* `must/Mustfile` - required invariants and validations.
17+
* `trust/Trustfile.hs` - cryptographic verification steps.
18+
* `dust/Dustfile` - rollback and recovery semantics.
19+
* `lust/Intentfile` - future intent and roadmap direction.
Lines changed: 211 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,211 @@
1+
# SPDX-License-Identifier: PMPL-1.0-or-later
2+
# Adjustfile — Accessibility Contract for Burble
3+
# Author: Jonathan D.A. Jewell <j.d.a.jewell@open.ac.uk>
4+
#
5+
# Accessibility requirements and compliance for Burble.
6+
# Voice-first design must be inclusive for all users.
7+
#
8+
# Run with: adjust check
9+
# Fix with: adjust fix (where deterministic fix exists)
10+
11+
@abstract:
12+
Accessibility requirements and compliance for the Burble voice-first communications platform.
13+
These requirements ensure Burble is usable by everyone, regardless of ability.
14+
@end
15+
16+
## Keyboard Accessibility
17+
18+
### keyboard-navigation
19+
- description: All features accessible via keyboard
20+
- status: partial
21+
- probe: test -f server/lib/burble/accessibility/keyboard.ex
22+
- compliance: WCAG 2.1 AA
23+
- notes: Basic navigation implemented. Full keyboard-only flow needed.
24+
- fix: Port PanLL's comprehensive keyboard navigation system
25+
26+
### custom-keybindings
27+
- description: User-configurable keybindings
28+
- status: implemented
29+
- probe: test -f server/lib/burble/accessibility/keyboard.ex
30+
- compliance: WCAG 2.1 AAA
31+
- notes: Users can remap PTT, mute, deafen, volume, and room navigation keys
32+
33+
### keyboard-shortcuts-discoverable
34+
- description: Keyboard shortcuts are documented and discoverable
35+
- status: missing
36+
- compliance: WCAG 2.1 A
37+
- fix: Add keyboard shortcuts help modal in web client
38+
39+
## Visual Accessibility
40+
41+
### high-contrast-mode
42+
- description: High contrast UI theme
43+
- status: missing
44+
- compliance: WCAG 2.1 AA
45+
- fix: Port PanLL's high-contrast theme system
46+
- target: CSS variables for contrast ratios >= 4.5:1
47+
48+
### colorblind-support
49+
- description: Colorblind-friendly color schemes
50+
- status: missing
51+
- compliance: WCAG 2.1 AA
52+
- fix: Implement deuteranopia, protanopia, and tritanopia palettes
53+
- reference: PanLL's palette system
54+
55+
### font-size-adjustment
56+
- description: Resizable UI fonts (4 levels: 14-20px)
57+
- status: missing
58+
- compliance: WCAG 2.1 AA
59+
- fix: Port PanLL's font size adjustment system
60+
- target: User preference persists across sessions
61+
62+
### theme-switching
63+
- description: Dark/Light/System theme support
64+
- status: missing
65+
- compliance: WCAG 2.1 AA
66+
- fix: Port PanLL's theme system
67+
- target: Respects OS preference, user override
68+
69+
## Auditory Accessibility
70+
71+
### screen-reader-support
72+
- description: Full screen reader compatibility
73+
- status: partial
74+
- probe: test -f server/lib/burble/accessibility/screen_reader.ex
75+
- compliance: WCAG 2.1 AA
76+
- notes: Basic announcements implemented. Needs ARIA attributes and live regions.
77+
- fix: Complete ARIA implementation in web client
78+
79+
### closed-captions
80+
- description: Real-time captioning for voice chat
81+
- status: missing
82+
- compliance: WCAG 2.1 AA
83+
- notes: Requires Web Speech API or external STT integration
84+
- target: 90%+ accuracy for English, configurable display
85+
86+
### visual-notifications
87+
- description: Visual indicators for audio events
88+
- status: missing
89+
- compliance: WCAG 2.1 A
90+
- notes: Speaking indicators, mute status, connection status
91+
- fix: Add visual cues that duplicate audio information
92+
93+
### volume-normalization
94+
- description: Consistent volume levels across users
95+
- status: missing
96+
- compliance: WCAG 2.1 AA
97+
- notes: Prevents sudden loud sounds for sensitive users
98+
- target: -23 LUFS normalization per EBU R128
99+
100+
## Motor Accessibility
101+
102+
### voice-commands
103+
- description: Voice-controlled interface
104+
- status: missing
105+
- compliance: WCAG 2.1 AAA
106+
- notes: "Mute", "Deafen", "Join room X", "Volume up/down"
107+
- target: Web Speech API with fallback to keyboard
108+
109+
### reduced-motion
110+
- description: Reduced animation options
111+
- status: missing
112+
- compliance: WCAG 2.1 AA
113+
- fix: Port PanLL's animation control (on/reduced/off)
114+
- target: Respects prefers-reduced-motion media query
115+
116+
### hover-alternatives
117+
- description: All hover interactions have click alternatives
118+
- status: partial
119+
- compliance: WCAG 2.1 AA
120+
- notes: Some hover tooltips need click-to-show option
121+
- fix: Audit and add click alternatives
122+
123+
## Cognitive Accessibility
124+
125+
### clear-language
126+
- description: Simple, consistent terminology
127+
- status: partial
128+
- compliance: WCAG 2.1 AAA
129+
- notes: Technical terms need plain language explanations
130+
- fix: Add tooltips/glossary for jargon
131+
132+
### predictable-navigation
133+
- description: Consistent navigation patterns
134+
- status: partial
135+
- compliance: WCAG 2.1 AA
136+
- notes: Navigation structure varies between pages
137+
- fix: Standardize navigation layout
138+
139+
### error-prevention
140+
- description: Confirmation for destructive actions
141+
- status: partial
142+
- compliance: WCAG 2.1 AA
143+
- notes: Room deletion has confirmation, others may not
144+
- fix: Audit all destructive actions
145+
146+
### help-availability
147+
- description: Context-sensitive help always available
148+
- status: missing
149+
- compliance: WCAG 2.1 AAA
150+
- notes: No persistent help system
151+
- fix: Add help button with contextual guidance
152+
153+
## Compliance Targets
154+
155+
### wcag-2.1-aa
156+
- description: WCAG 2.1 AA compliance
157+
- status: partial
158+
- target: Full compliance by Q4 2026
159+
- tracking: https://github.com/hyperpolymath/burble/issues/XXX
160+
161+
### section-508
162+
- description: U.S. Section 508 compliance
163+
- status: partial
164+
- target: Full compliance by Q4 2026
165+
- notes: Aligns with WCAG 2.1 AA for most requirements
166+
167+
### en-301-549
168+
- description: EU EN 301 549 compliance
169+
- status: partial
170+
- target: Full compliance by Q4 2026
171+
- notes: EU public sector procurement requirement
172+
173+
## Integration Requirements
174+
175+
### panll-accessibility-port
176+
- description: Port PanLL's accessibility engine to Burble
177+
- status: planned
178+
- reference: /var/mnt/eclipse/repos/panll/tests/accessibility_engine_test.js
179+
- target: Q2 2026
180+
181+
### k9-accessibility-validator
182+
- description: Integrate K9 accessibility validator
183+
- status: planned
184+
- reference: /var/mnt/eclipse/repos/panll/contractiles/k9/validators/accessibility-baseline.k9.ncl
185+
- target: Q2 2026
186+
187+
### accessibility-testing
188+
- description: Add accessibility tests to CI/CD
189+
- status: planned
190+
- target: pa11y or axe-core integration
191+
- compliance: Automated WCAG testing
192+
193+
## Documentation Requirements
194+
195+
### accessibility-guide
196+
- description: User-facing accessibility guide
197+
- status: missing
198+
- target: docs/accessibility/USER-GUIDE.adoc
199+
- notes: Keyboard shortcuts, screen reader setup, theme switching
200+
201+
### developer-accessibility
202+
- description: Developer accessibility guidelines
203+
- status: missing
204+
- target: docs/accessibility/DEVELOPER.adoc
205+
- notes: Coding standards, testing requirements, compliance checklist
206+
207+
### compliance-report
208+
- description: Accessibility compliance report
209+
- status: missing
210+
- target: docs/compliance/ACCESSIBILITY.adoc
211+
- notes: VPAT (Voluntary Product Accessibility Template)
Lines changed: 78 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,78 @@
1+
# SPDX-License-Identifier: PMPL-1.0-or-later
2+
# Dustfile — Cleanup and hygiene contract for Burble
3+
# Author: Jonathan D.A. Jewell <j.d.a.jewell@open.ac.uk>
4+
#
5+
# What should be cleaned up. Housekeeping, not blockers.
6+
# Run with: dust status
7+
# Roll back with: dust rollback <name>
8+
9+
@abstract:
10+
Cleanup and hygiene items for the Burble voice platform.
11+
These are maintenance tasks — not blocking, but should be addressed.
12+
@end
13+
14+
## Stale Files
15+
16+
### no-stale-snapshots
17+
- description: No dated status/completion files in root
18+
- run: test -z "$(ls *-STATUS-*.md *-COMPLETION-*.md 2>/dev/null)"
19+
- severity: info
20+
21+
### no-ai-djot
22+
- description: AI.djot is superseded by 0-AI-MANIFEST.a2ml
23+
- run: test ! -f AI.djot
24+
- severity: warning
25+
26+
### no-next-steps
27+
- description: NEXT_STEPS.md superseded by ROADMAP
28+
- run: test ! -f NEXT_STEPS.md
29+
- severity: info
30+
31+
## Build Artifacts
32+
33+
### no-tracked-elixir-build
34+
- description: No Elixir build artifacts tracked in git
35+
- run: test -z "$(git ls-files server/_build/ server/deps/ 2>/dev/null)"
36+
- severity: warning
37+
38+
### no-tracked-rescript-build
39+
- description: No ReScript build artifacts tracked in git
40+
- run: test -z "$(git ls-files 'client/web/src/**/*.res.mjs' client/web/lib/ 2>/dev/null)"
41+
- severity: warning
42+
43+
## Burble-Specific Cleanup
44+
45+
### stale-room-processes
46+
- description: Room processes should auto-terminate after idle timeout
47+
- verification: Burble.Rooms.Room uses @idle_timeout_ms (5 minutes)
48+
- severity: info
49+
- notes: Not a file check — design verification that idle rooms are cleaned up
50+
51+
### expired-invite-tokens
52+
- description: Expired invite tokens should be purged periodically
53+
- verification: Scheduled task purges tokens past expires_at
54+
- severity: info
55+
- notes: Planned — not yet implemented
56+
57+
### orphaned-turn-credentials
58+
- description: TURN credentials expire after 1 hour
59+
- verification: Burble.Media.Privacy.generate_turn_credential sets TTL
60+
- severity: info
61+
62+
### template-example-trustfile
63+
- description: Remove the example Trustfile (keep only the real one)
64+
- run: test ! -f .machine_readable/contractiles/trust/Trustfile_just_an_example.a2ml
65+
- severity: info
66+
- rollback: git checkout HEAD -- .machine_readable/contractiles/trust/Trustfile_just_an_example.a2ml
67+
68+
## Format Duplicates
69+
70+
### no-duplicate-contributing
71+
- description: Only one CONTRIBUTING format
72+
- run: test -z "$(test -f CONTRIBUTING.md && test -f CONTRIBUTING.adoc && echo dup)"
73+
- severity: warning
74+
75+
### no-duplicate-readme
76+
- description: Only one README format
77+
- run: test ! -f README.md || test ! -f README.adoc
78+
- severity: warning

0 commit comments

Comments
 (0)