 131868bdca
			
		
	
	131868bdca
	
	
	
		
			
			Major security, observability, and configuration improvements:
## Security Hardening
- Implemented configurable CORS (no more wildcards)
- Added comprehensive auth middleware for admin endpoints
- Enhanced webhook HMAC validation
- Added input validation and rate limiting
- Security headers and CSP policies
## Configuration Management
- Made N8N webhook URL configurable (WHOOSH_N8N_BASE_URL)
- Replaced all hardcoded endpoints with environment variables
- Added feature flags for LLM vs heuristic composition
- Gitea fetch hardening with EAGER_FILTER and FULL_RESCAN options
## API Completeness
- Implemented GetCouncilComposition function
- Added GET /api/v1/councils/{id} endpoint
- Council artifacts API (POST/GET /api/v1/councils/{id}/artifacts)
- /admin/health/details endpoint with component status
- Database lookup for repository URLs (no hardcoded fallbacks)
## Observability & Performance
- Added OpenTelemetry distributed tracing with goal/pulse correlation
- Performance optimization database indexes
- Comprehensive health monitoring
- Enhanced logging and error handling
## Infrastructure
- Production-ready P2P discovery (replaces mock implementation)
- Removed unused Redis configuration
- Enhanced Docker Swarm integration
- Added migration files for performance indexes
## Code Quality
- Comprehensive input validation
- Graceful error handling and failsafe fallbacks
- Backwards compatibility maintained
- Following security best practices
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
		
	
		
			
				
	
	
		
			26 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			26 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| The .words file is used by gospel (v1.2+), which wraps the Hunspell libraries
 | |
| but populates the dictionary with identifiers from the Go source.
 | |
| 
 | |
| <https://github.com/kortschak/gospel>
 | |
| 
 | |
| Alas, no comments are allowed in the .words file and newer versions of gospel
 | |
| error out on seeing them.  This is really a hunspell restriction.
 | |
| 
 | |
| We assume en_US hunspell dictionaries are installed and used.
 | |
| The /AFFIXRULES are defined in en_US.aff (eg: /usr/share/hunspell/en_US.aff)
 | |
| Invoke `hunspell -D` to see the actual locations.
 | |
| 
 | |
| Words which are in the base dictionary can't have extra affix rules added to
 | |
| them, so we have to start with the affixed variant we want to add.
 | |
| Thus `creds` rather than `cred/S` and so on.
 | |
| 
 | |
| So we can't use receive/DRSZGBU, adding 'U', to allow unreceive and variants,
 | |
| we have to use unreceive as the stem.
 | |
| 
 | |
| We can't define our own affix or compound rules,
 | |
| to capture rfc\d{3,} or 0x[0-9A-Fa-f]{2}
 | |
| 
 | |
| The spelling tokenizer doesn't take "permessage-deflate" as allowing for ...
 | |
| "permessage-deflate", which is an RFC7692 registered extension for websockets.
 | |
| We have to explicitly list "permessage".
 |