Commit 1506d9f
Release/v2.0.0 (#14)
* fix: Lazy initialization for graph/session modules and DDL execution
- Add ensureIntegrations() calls to all graph and session legacy tool
implementations to prevent null reference errors
- Add executeDDL() function in dbClient for CREATE/INSERT/UPDATE/DELETE
operations (schema management not exposed to user queries)
- Update knowledgeGraph.js to use executeDDL for table creation
- Update sessionStore.js to use executeDDL for schema and DML operations
- Fix setup-claude-code.js: init() -> initDB()
Resolves "Cannot read properties of null" errors when calling graph_*
or session_* tools before module initialization.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* feat(cli): Zero CLI with verification layer and micro-libraries
Implements the Zero CLI - a bleeding-edge agentic intelligence system with:
Core Features:
- bin/zero executable with 9 commands (research, search, graph, session, verify, config, status, help, version)
- Zero external dependencies for core CLI using custom micro-libraries
- Timeout-protected initialization with graceful fallbacks
Micro-Libraries (src/cli/lib/):
- micro-args.js: Zero-dependency argument parser with aliases, booleans, camelCase
- micro-term.js: ANSI terminal control, colors, cursor management
- micro-progress.js: Animated spinner and progress bar
- micro-prompt.js: Interactive input, password masking, selection
- micro-crypt.js: AES-256-GCM encryption, scrypt key derivation, hash chains
Verification Layer (src/cli/verification/):
- consensusGate.js: Multi-model agreement checking to prevent hallucinations
- Extracts factual claims (existence, capability, temporal, negation)
- Calculates agreement ratios across model responses
- Flags high-severity disputed claims (like "X doesn't exist")
- sourceVerifier.js: Citation/URL validation with reliability tracking
- Verifies source accessibility
- Tracks domain trust scores
- Cross-references against knowledge graph
- factTracker.js: Accuracy metrics and feedback integration
- Persists verification results to database
- Tracks model accuracy over time
- Supports user corrections
- index.js: VerificationPipeline unifying all components
This addresses the critical Qwen3-Omni research failure by implementing
multi-stage verification to catch factually incorrect claims before output.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* fix: Align database schema - rename reports to research_reports
Root cause: The table was created as `reports` in dbClient.js but
handlers referenced `research_reports`. This mismatch caused SQL
queries to fail with "relation does not exist" errors.
Changes:
- dbClient.js: Renamed all `reports` table references to `research_reports`
- kb.js: Fixed getReport to use getReportById, updated column names
(query → original_query), extract params from JSONB
- graph.js: Updated all SQL to use original_query column
The handlers were also referencing non-existent columns (query, rating,
cost_preference as direct columns). Fixed to use actual schema:
- original_query instead of query
- parameters JSONB for costPreference/audienceLevel
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* docs(v1.9.0): Documentation overhaul, CI/CD automation, MCP compliance
Documentation:
- README restructured: concise, scannable format with collapsible sections
- Fixed all outdated GitHub URLs (wheattoast11 → terminals-tech)
- Updated MCP spec URL from 2025-03-26 to 2025-06-18 stable spec
- Documented SEP-990 (Enterprise Auth) and SEP-991 (Client Metadata)
- Added ENV-REFERENCE.md with complete environment variable reference
CI/CD:
- Added npm test script (53 unit tests for core/shared/config)
- Added prepublishOnly hook for validation before publish
- Created .release-please.json for semantic versioning automation
- Expanded files array to include README.md, LICENSE, CHANGELOG.md
Infrastructure (from previous commits):
- Core abstractions: Signal protocol, parameter normalization, schema registry
- Handler utilities: context validation, capability detection, legacy wrappers
- Config system: Zod validation, constants, env coercion
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* fix(transport): STDIO default, EADDRINUSE handling, XDG paths
BREAKING CHANGE: STDIO is now the default transport per MCP spec.
Use --http flag explicitly for HTTP mode.
Changes:
- Transport: STDIO default, --http flag for HTTP mode
- Port conflicts: Clean EADDRINUSE error with actionable suggestions
- Data paths: XDG_DATA_HOME > TMPDIR (AppImage) > ~/.local/share
- Filesystem: Proactive read-only detection for sandboxed envs
- README: Multi-client setup guide (Jan AI, Claude Desktop, etc.)
Fixes Jan AI initialization errors in AppImage environments.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* feat(mcp): MCP 2025-11-25 draft spec compliance verification
- Verified all 8 SEPs with line-by-line code exploration
- Added SEP verification table to MCP-COMPLIANCE-REPORT.md
- Added MCP 2025-11-25 Draft compliance badge to README
- Updated mcpSpec.features in config.js with all 7 SEPs
Phase 0 Compliance Fixes:
- taskAdapter.js: notifications/progress format, result structure
- sampling.js: content array type, JSON.parse error handling
- elicitation.js: cleanup race condition fix
- clientMetadata.js: HTTPS enforcement in production
- enterpriseAuth.js: RFC 7662 introspection credentials
- config.js: Signal, RoleShift, Core handlers enabled by default
- tools.js: consolidated normalization via core/normalize.js
SEPs Verified:
- SEP-1686 (Task Protocol)
- SEP-1577 (Sampling with Tools)
- SEP-1036 (URL Mode Elicitation)
- SEP-1865 (MCP Apps)
- SEP-990 (Enterprise Auth)
- SEP-991 (Client Metadata)
- SEP-1649 (Server Discovery)
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* test(integration): Add "Mic Drop" orchestration integration test
Comprehensive integration test demonstrating Agent Zero's full parallel
research orchestration capabilities through microplastics-cancer investigation.
Test phases:
- Phase A: Parallel batch_research dispatch (sync/async modes)
- Phase B: Signal Protocol consensus calculation
- Phase C: Knowledge synthesis with cross-query correlation
- Phase D: Session time-travel with checkpoints and forking
- Phase E: Knowledge graph integration (PageRank, traversal)
Test modes:
- DRY_RUN=true: Structural validation without API calls
- Live: Full orchestration with real research queries
Files:
- tests/integration/orchestration/mic-drop.test.js: Main test suite
- tests/integration/orchestration/fixtures/microplastics-queries.json: 10 parallel queries
- tests/integration/orchestration/helpers/timer.js: Performance instrumentation
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* fix: Resolve dbClient.query and React dependency errors
- Export `query` as alias for `executeQuery` in dbClient for handler compatibility
- Import EventStore directly from core module to avoid React adapter dependency
- Add fallback to main module import if direct path fails
Fixes handler errors calling dbClient.query() which didn't exist.
Prevents 'Cannot find module react' error in @terminals-tech/core.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* feat(ux): Parameter normalization, semantic errors, and progress notifications
This release adds three major UX improvements:
1. Parameter Normalization (Phase 1)
- Unified alias system: taskId → job_id, q → query, etc.
- MCP Task Protocol backward compatibility
- Single normalize() function replaces 10+ scattered normalizers
2. Semantic Borrow Checker (Phase 2)
- Rust-style error diagnostics with actionable suggestions
- Detects ID type confusion (job_id vs reportId)
- Tree-formatted error messages with hints and fixes
3. Server→Client Push Notifications (Phase 3)
- ProgressNotifier for real-time job updates
- Phase tracking: planning → researching → synthesizing → complete
- MCP 2025-11-25 notifications/progress compliance
4. Token-Efficient Slash Commands (Phase 4)
- Streamlined .claude/commands/*.md
- New /mcp-job-to-report workflow command
Bug Fixes:
- task_result now correctly returns results for 'succeeded' jobs
- Terminal state detection: succeeded, failed, canceled, complete
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* chore(release): Bump version to 1.9.1
- package.json: 1.9.0 → 1.9.1
- README.md: Updated What's New section for v1.9.1
- CLAUDE.md: Updated Server Version reference
- docs/CHANGELOG.md: Added v1.9.1 release notes
- docs/TESTING-GUIDE.md: Updated all version references
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* feat(signal-protocol): wire ensemble signals into research flow
- Add Signal creation in ResearchAgent with confidence scoring
- Collect signals in conductResearch, persist to DB
- Fix aggregatedResults bug in factCheck call
- CLI retrieves stored signals for verification
- Add health warning debounce in job worker
- Update CHANGELOG.md and CLAUDE.md documentation
Fixes: undefined aggregatedResults, CLI report ID extraction
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* fix(job-handler): use correct dbClient.cancelJob function
Changed updateJobStatus (non-existent) to cancelJob in cancel handler.
Fixes job cancellation failing with 'dbClient.updateJobStatus is not a function'.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* feat: Agent Zero + Security Hardening + CLI Auth
## Agent Zero
- Add emergent persona research orchestrator (zeroAgent.js)
- Implement lambda calculus combinators in Signal protocol
- Add semantic router for query classification
- Create Zero endpoint handlers
## Security Fixes (6 vulnerabilities)
- Fix command injection in session.js/pane.js (HIGH)
- Fix code injection in calc tool (MEDIUM)
- Fix timing attack in API key comparison (MEDIUM)
- Fix OAuth state bypass for Supabase (MEDIUM)
- Fix JWT header parsing (LOW)
## CLI Authentication
- Add OAuth PKCE flow for terminals.tech
- Add device code flow for headless environments
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* feat(secret-sauce): Add Supabase OAuth and consilience enhancement plan
Secret Sauce Branch Additions:
- Add Supabase OAuth integration (Google/GitHub via terminals.tech)
- Add comprehensive enhancement plan (PLAN.md) with 7 enhancement vectors
- Update research outputs from recent batch research sessions
- Exclude cloudflared binary (use package manager instead)
Enhancement Plan Highlights:
- PGlite extensions: pg_trgm, fuzzystrmatch, unaccent for better search
- HTTP proxy support for web research (bypass 403/IP restrictions)
- BrowserResearchAgent for JavaScript-heavy sites
- WebSocket transport (SEP-1288 forward compatibility)
- Live queries for reactive knowledge base subscriptions
- New ui://browser/research MCP App resource
All enhancements designed with ZERO REGRESSION principle.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* feat(ux): Stage 3 - Noob-friendly user journeys
User Journey Improvements:
- CLI wizard with step-by-step setup (src/cli/wizard/)
- Post-wizard success message shows research command templates
- CLI research output shows next steps (show, verify, search)
- Extension onboarding flow on first install
- Plain English extension buttons (Test Connection, Show Interface, etc.)
- Fixed extension status indicator bug
Documentation:
- docs/GETTING-STARTED.md - First 5 minutes guide
- docs/CONCEPTS.md - Plain English terminology
- docs/ARCHITECTURE.md - Codebase structure with STABLE/BETA/VISION markers
- docs/COMMAND-COOKBOOK.md - "I want to..." quick reference
- docs/TROUBLESHOOTING.md - Common errors with fixes
- src/core/README.md - Module status and integration roadmap
- README.md - Documentation links table
The fixed point of documentation: docs describe what users observe.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* feat(zero): Zero Protocol v1.10.0 - Self-referential MCP architecture
The fixed point of client-server duality: f(x) = x → Zero
- Interaction Combinators (γ/δ/ε) based on Lafont nets
- DualRoleNode: Client + Server in one entity
- Protocol Adapter: Unified MCP/ACP/LSP/A2A/ANP abstraction
- zero:// URI scheme for self-referential addressing
- SelfConnection handler for zero://self fixed point
- Zero node initialization with automatic self-connection
- New tools: zero_status, zero_connect, zero_handshake
- PGlite extensions: pg_trgm, fuzzystrmatch, unaccent
- Removed legacy shared handlers (consolidated)
- Chrome MV3 extension scaffold
- window.Zero API via postMessage bridge
- Page context extraction and overlay UI
- RFP Workflow using interaction combinators
- Thermodynamic router for attractor-based routing
- .mcp.minimal.json / .mcp.optimized.json profiles
- MCP configuration guide and comparison docs
- ZERO.md specification + ZERO.json schema
Breaking: Removed src/server/handlers/shared/* (1,453 LOC)
Version: 1.9.1 → 1.10.0
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* feat: Resonant Knowledge Mesh Integration
- Refactored robustWebScraper.js into Signal-native UnifiedSearchMesh (1P first)
- Evolved xmlParser.js into SignalParser for protocol alignment
- Implemented KnowledgePipeline in core/rail/knowledge.js
- Unified auth architecture with Supabase OAuth 2.1 PKCE
- Fixed searchWeb and fetchUrl errors across tools and agents
- Updated unit tests to match new dynamic provider configuration
* feat: PGlite 0.3.14 upgrade with 16 extensions + payload optimization + model updates
- Upgraded @electric-sql/pglite to 0.3.14 with full extension support
- Enabled 16 extensions: vector, pgtap, pg_uuidv7, pg_ivm, bloom, cube, seg, tcn, tsm_system_time, ltree, lo, tablefunc, uuid_ossp, fuzzystrmatch, citext, hstore
- Fixed TCN trigger setup (split multi-command prepared statements)
- Added graceful database shutdown to prevent mutex lock errors
- Implemented synthesis payload truncation to prevent 413 errors
- Updated model IDs to latest: gpt-5-nano, gemini-3-flash-preview, claude-haiku-4.5
- Added ZeroReplay temporal analysis, StickyCluster agent grouping
- Added MultimodalStorage for binary data, HierarchicalRoute for ltree routing
- Added comprehensive extension tests and EXTENSIONS.md documentation
* chore(release): bump version to 1.11.0 with updated README and CHANGELOG
* fix: robust XML parsing with fallback and improved graceful shutdown
- Add fallback extraction in xmlParser.js for non-XML LLM responses
(handles numbered lists, bullet points, and question patterns)
- Improve graceful shutdown in bin/zero with:
- Shutdown state flag to prevent multiple attempts
- Timeout race for stuck WASM instances
- SIGINT/SIGTERM handlers
- Post-close delay for WASM cleanup
* v1.11.1: finalize mesh integration and core agentic logic
* fix: remove .env.zero from repo and update .gitignore
* feat: v1.12.0 - Graceful Degradation & Provider Telemetry
- Implements multi-key rotation and cooldowns for OpenRouter
- Adds streaming synthesis fallback for resilience
- Introduces ProviderManager abstraction for future SDK alignment
- Adds 'get_provider_health' tool and CLI status integration
- Adds Operator's Handbook (UAT Guide)
* feat(core): Isomorphic SDK Alignment - Code Review Fixes
High Priority (H1-H3):
- H1: SDK-compatible ok/err/isOk/isErr Result types in rail.js
- H2: Layer addressing (L3:{type}:{id}) on Signal, Token, Rail
- H3: Signal → AgentSignal rename with backward-compat alias
Medium Priority (M2-M5):
- M2: explain() introspection methods on core primitives
- M3: Logger integration in skillLoader.js (replaces console.warn)
- M4: toSDKMessage() adapter on AgentSignal
- M5: Provider detection consolidated to ProviderRegistry
Nitpick (N1-N5):
- N1: ShapeHash already correct (deterministicStringify handles it)
- N2: Model names from config.models.highCost/lowCost
- N3: Critical degradation fallback implemented
- N4: JSDoc with examples on coerceTypes
- N5: getCognitiveRouter() factory with _resetInstance()
All 47 tests passing. M1 (file naming) deferred as breaking change.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* security: Critical fixes for XSS, code injection, and timing attacks
CRITICAL:
- Fix DOM XSS via innerHTML - replaced with textContent/createElement
- Add escapeHtml helper to mcpBridge for client-side escaping
- Escape OAuth callback URL parameters (error, accessToken)
HIGH:
- Replace unsafe Function() constructor with safe recursive descent parser
- Safe math evaluator: +, -, *, /, %, ^/**, parentheses, unary operators
- Fix Signal.fromJSON to use AgentSignal class (not deprecated alias)
MEDIUM:
- Add timing-safe API key comparison using crypto.timingSafeEqual
- Prevents timing attacks on authentication
All 47 tests passing.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* fix(core): Resurrect dbClient with unified L1-L5 architecture
## Summary
- Rebuilt src/utils/dbClient.js from corrupted state
- Unified PGLite infrastructure + Jobs API + HVM Signal (computeShapeHash)
- Fixed duplicate batchResearchSchema/batchResearchTool in tools.js
- Added null-safety for convergence.errorBreakdown
## Changes
- dbClient.js: Complete rewrite with clean exports, proper async handling
- tools.js: Removed duplicate definitions, fixed undefined slice error
- db-jobs.test.js: Unit tests for Jobs API contract
## Verified
- All 47 unit tests pass (core: 23, config: 14, auth: 10)
- CLI loads and runs (help, status commands work)
- Server components initialize correctly
- Jobs API: createJob, appendJobEvent, getJobStatus all functional
Part of Project Lazarus - L5 Protocol Bridge restoration
* chore: remove CLI and private experiments for public release
* chore: release v1.15.0
* feat(routing): Add embedding-based model routing with @terminals-tech packages
Replace LLM-based query classification with local embedding similarity:
- Add EmbeddingRouter for domain/complexity classification using seed phrase centroids
- Wire SignalRouter into handlers for intent classification (chat/research/action)
- ResearchAgent uses embedding-first with LLM fallback when confidence < 0.6
- Add ROUTING config section with embedding routing flags
- Fix NaN validation in dbClient to prevent PGLite vector errors
- Use @terminals-tech/embeddings for real transformer embeddings
- Use @terminals-tech/graph for knowledge graph operations
- Fix tokenizer dead code where ** was unreachable after * match
Perf: Local embeddings avoid LLM round-trips for query classification
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* fix: resolve db schema, api types, and security config
* chore: release v1.16.0 — SDK upgrade, model roster, duplicate purge
- Upgrade @modelcontextprotocol/sdk from ^1.21.1 to ^1.26.0 (ReDoS fix, shared transport security)
- Update MCP_SPEC.STABLE to 2025-11-25 (AAIF governance), add SEP-990/SEP-991
- Add anthropic/claude-opus-4.6, openai/gpt-5.3-codex, deepseek/deepseek-v3.2 to model roster
- Remove 80+ macOS Finder duplicate artifacts (git clean)
- Remove dead thermodynamicRouter.ts (canonical JS at src/routing/index.js)
- Add .gitignore patterns to prevent future duplicate artifacts
- Simplify package.json files array to use docs/ directory glob
- Add CHANGELOG entries for v1.13.0–v1.16.0
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* feat: v2.0.0 — MCP SDK upgrade, Zod 4, Express 5, circuit breakers
BREAKING CHANGES (internal):
- MCP SDK 1.26.0 → 1.27.1 with registerTool/registerPrompt/registerResource APIs
- Zod 3.22.4 → 4.3.6 (z.record() syntax, config schema pipe pattern)
- Express 4.18.2 → 5.2.1 (async error handling, deprecated method removal)
- SSE transport deprecated → Streamable HTTP is primary
NEW:
- Circuit breaker state machine (CLOSED/OPEN/HALF_OPEN) on API/DB/embedder
- Exponential backoff with jitter via withRetry()
- Model tier fallback on circuit trip
- Prompts migrated to server.registerPrompt() (3 prompts)
- Resources migrated to server.registerResource() (9 resources)
- z.object() auto-wrapping in tool registration
FIXED:
- PGlite multi-statement SQL in DB fallback path (job_events, tool_observations, graph_nodes, graph_edges)
- Corrupted ~/.zero/db recovery
- npm audit critical/high vulnerabilities (fast-xml-parser, axios, tar)
- Zod 4 z.record() single-arg breaking change
- Zod 4 .default({}) nested schema resolution via pipe pattern
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* fix: replace npm ci with npm install in workflows and include latest updates
---------
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
Co-authored-by: Claude <wheattoast11@users.noreply.github.com>1 parent e8e6660 commit 1506d9f
229 files changed
Lines changed: 52544 additions & 4659 deletions
File tree
- .claude
- commands
- .github/workflows
- .opencode/agent
- bin
- docs
- plans
- extension
- icons
- harnesses/music-workflow
- private
- experiments
- attention-shaping
- continuous-process
- cross-model
- research_outputs
- scripts
- skills
- src
- adapters
- claude-code
- opencode
- agents
- config
- core
- errors
- execution
- hooks
- interactions
- middleware
- providers
- rail
- rewards
- routing
- sandbox
- schemas
- sdk
- stabilization
- transport
- routing
- server
- auth
- handlers
- utils
- workflows
- templates
- tests
- database
- integration
- orchestration
- fixtures
- helpers
- mocks
- unit
- hooks
Some content is hidden
Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
| 70 | + | |
| 71 | + | |
| 72 | + | |
| 73 | + | |
| 74 | + | |
| 75 | + | |
| 76 | + | |
| 77 | + | |
| 78 | + | |
| 79 | + | |
| 80 | + | |
| 81 | + | |
| 82 | + | |
| 83 | + | |
| 84 | + | |
| 85 | + | |
| 86 | + | |
| 87 | + | |
| 88 | + | |
| 89 | + | |
| 90 | + | |
| 91 | + | |
| 92 | + | |
| 93 | + | |
| 94 | + | |
| 95 | + | |
| 96 | + | |
| 97 | + | |
| 98 | + | |
| 99 | + | |
| 100 | + | |
| 101 | + | |
| 102 | + | |
| 103 | + | |
| 104 | + | |
| 105 | + | |
| 106 | + | |
| 107 | + | |
| 108 | + | |
| 109 | + | |
| 110 | + | |
| 111 | + | |
| 112 | + | |
| 113 | + | |
| 114 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | | - | |
| 1 | + | |
2 | 2 | | |
3 | | - | |
| 3 | + | |
4 | 4 | | |
5 | | - | |
| 5 | + | |
6 | 6 | | |
7 | | - | |
8 | | - | |
9 | | - | |
10 | | - | |
11 | | - | |
12 | | - | |
13 | | - | |
14 | | - | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
15 | 11 | | |
16 | | - | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
17 | 20 | | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | 2 | | |
3 | | - | |
| 3 | + | |
4 | 4 | | |
5 | | - | |
| 5 | + | |
6 | 6 | | |
7 | | - | |
8 | | - | |
9 | | - | |
10 | | - | |
11 | | - | |
12 | | - | |
13 | | - | |
14 | | - | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
15 | 12 | | |
16 | | - | |
| 13 | + | |
17 | 14 | | |
18 | | - | |
19 | | - | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
20 | 20 | | |
21 | | - | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
22 | 27 | | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | 2 | | |
3 | | - | |
| 3 | + | |
4 | 4 | | |
5 | | - | |
| 5 | + | |
6 | 6 | | |
7 | | - | |
8 | | - | |
9 | | - | |
10 | | - | |
11 | | - | |
12 | | - | |
| 7 | + | |
| 8 | + | |
13 | 9 | | |
14 | | - | |
15 | | - | |
16 | | - | |
17 | | - | |
| 10 | + | |
18 | 11 | | |
19 | | - | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
20 | 24 | | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | | - | |
| 1 | + | |
2 | 2 | | |
3 | | - | |
| 3 | + | |
4 | 4 | | |
5 | | - | |
| 5 | + | |
6 | 6 | | |
7 | | - | |
8 | | - | |
9 | | - | |
10 | | - | |
11 | | - | |
12 | | - | |
13 | | - | |
14 | | - | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
15 | 11 | | |
16 | | - | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
17 | 21 | | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | | - | |
| 1 | + | |
2 | 2 | | |
3 | | - | |
| 3 | + | |
4 | 4 | | |
5 | | - | |
| 5 | + | |
6 | 6 | | |
7 | | - | |
8 | | - | |
9 | | - | |
10 | | - | |
11 | | - | |
12 | | - | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
13 | 10 | | |
14 | | - | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
15 | 20 | | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | | - | |
| 1 | + | |
2 | 2 | | |
3 | | - | |
| 3 | + | |
4 | 4 | | |
5 | | - | |
| 5 | + | |
6 | 6 | | |
7 | | - | |
8 | | - | |
9 | | - | |
10 | | - | |
11 | | - | |
12 | | - | |
13 | | - | |
14 | | - | |
15 | | - | |
16 | | - | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | 2 | | |
3 | | - | |
4 | | - | |
5 | | - | |
6 | | - | |
7 | | - | |
8 | | - | |
9 | | - | |
10 | | - | |
11 | | - | |
12 | | - | |
13 | | - | |
14 | | - | |
15 | | - | |
16 | | - | |
17 | | - | |
18 | | - | |
19 | | - | |
20 | | - | |
| 3 | + | |
21 | 4 | | |
22 | 5 | | |
23 | 6 | | |
0 commit comments