 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>
		
	
		
			
				
	
	
		
			69 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			ArmAsm
		
	
	
	
	
	
			
		
		
	
	
			69 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			ArmAsm
		
	
	
	
	
	
| // Copied from S2 implementation.
 | |
| 
 | |
| //go:build !appengine && !noasm && gc && !noasm
 | |
| 
 | |
| #include "textflag.h"
 | |
| 
 | |
| // func matchLen(a []byte, b []byte) int
 | |
| // Requires: BMI
 | |
| TEXT ·matchLen(SB), NOSPLIT, $0-56
 | |
| 	MOVQ a_base+0(FP), AX
 | |
| 	MOVQ b_base+24(FP), CX
 | |
| 	MOVQ a_len+8(FP), DX
 | |
| 
 | |
| 	// matchLen
 | |
| 	XORL SI, SI
 | |
| 	CMPL DX, $0x08
 | |
| 	JB   matchlen_match4_standalone
 | |
| 
 | |
| matchlen_loopback_standalone:
 | |
| 	MOVQ  (AX)(SI*1), BX
 | |
| 	XORQ  (CX)(SI*1), BX
 | |
| 	TESTQ BX, BX
 | |
| 	JZ    matchlen_loop_standalone
 | |
| 
 | |
| #ifdef GOAMD64_v3
 | |
| 	TZCNTQ BX, BX
 | |
| #else
 | |
| 	BSFQ BX, BX
 | |
| #endif
 | |
| 	SARQ $0x03, BX
 | |
| 	LEAL (SI)(BX*1), SI
 | |
| 	JMP  gen_match_len_end
 | |
| 
 | |
| matchlen_loop_standalone:
 | |
| 	LEAL -8(DX), DX
 | |
| 	LEAL 8(SI), SI
 | |
| 	CMPL DX, $0x08
 | |
| 	JAE  matchlen_loopback_standalone
 | |
| 
 | |
| matchlen_match4_standalone:
 | |
| 	CMPL DX, $0x04
 | |
| 	JB   matchlen_match2_standalone
 | |
| 	MOVL (AX)(SI*1), BX
 | |
| 	CMPL (CX)(SI*1), BX
 | |
| 	JNE  matchlen_match2_standalone
 | |
| 	LEAL -4(DX), DX
 | |
| 	LEAL 4(SI), SI
 | |
| 
 | |
| matchlen_match2_standalone:
 | |
| 	CMPL DX, $0x02
 | |
| 	JB   matchlen_match1_standalone
 | |
| 	MOVW (AX)(SI*1), BX
 | |
| 	CMPW (CX)(SI*1), BX
 | |
| 	JNE  matchlen_match1_standalone
 | |
| 	LEAL -2(DX), DX
 | |
| 	LEAL 2(SI), SI
 | |
| 
 | |
| matchlen_match1_standalone:
 | |
| 	CMPL DX, $0x01
 | |
| 	JB   gen_match_len_end
 | |
| 	MOVB (AX)(SI*1), BL
 | |
| 	CMPB (CX)(SI*1), BL
 | |
| 	JNE  gen_match_len_end
 | |
| 	INCL SI
 | |
| 
 | |
| gen_match_len_end:
 | |
| 	MOVQ SI, ret+48(FP)
 | |
| 	RET
 |