Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
274 commits
Select commit Hold shift + click to select a range
354b7a1
fix test environment
BionicCode Sep 13, 2024
d7c3303
cleanup
BionicCode Sep 14, 2024
b35b3e7
solution cleanup
BionicCode Sep 14, 2024
e06c271
improve reflection performance
BionicCode Sep 15, 2024
6136dcf
improve reflection performance
BionicCode Sep 15, 2024
85cba62
refactor: improve reflection performance of API
BionicCode Sep 16, 2024
cc274ea
refactor: refactor internal API to boost reflection performance
BionicCode Sep 16, 2024
27b95ca
feature: implement faster signature for Type and MethodInfo
BionicCode Sep 17, 2024
adbd16e
feature: implement signature for EventInfo and PropertyInfo
BionicCode Sep 17, 2024
c1ebddd
feature: implement signature for EventInfo and PropertyInfo
BionicCode Sep 17, 2024
3b47d30
feature: add support for ref structs and ref fields
BionicCode Sep 18, 2024
be0c3a4
feature: add ref struct, ref readonly return method value and readonl…
BionicCode Sep 18, 2024
90ca7cb
fix: fix bug in GetHashCode of dictionary key.
BionicCode Sep 20, 2024
fc70296
refactor: refactor API overloads (removed defaults) and symbol data s…
BionicCode Sep 20, 2024
6554af3
refactor: reflection data caching
BionicCode Sep 22, 2024
54d6b96
refactor: reflection info caching and consumption
BionicCode Sep 22, 2024
88a9828
refactor: adapt Profiler to new reflection API
BionicCode Sep 23, 2024
95f2fb2
refactor: AttributedProfiler API
BionicCode Sep 24, 2024
954b50e
refactor: Attributed profiling
BionicCode Sep 26, 2024
a34b48d
refactor: AttributeProfiler and data structures
BionicCode Sep 27, 2024
8bd3a9b
refactor: AttributeProfiler
BionicCode Sep 27, 2024
014308a
debug: fixing reflection errors
BionicCode Sep 28, 2024
a9aad9b
feature:: syntax highlight for signature
BionicCode Sep 29, 2024
8ab49d9
feature: implement syntax formatting for HTML signature presentation
BionicCode Sep 30, 2024
4f13fa8
implement generic type arguments and constraints for signatures com…
BionicCode Sep 30, 2024
fad6265
implement signature syntax highlighting
BionicCode Oct 1, 2024
f2abab2
HTML result page
BionicCode Oct 1, 2024
fb42a23
improve type and member signature component generation and HTML layout
BionicCode Oct 4, 2024
557fb43
refactor profiling argument passing
BionicCode Oct 5, 2024
734bea4
fix: display name and summary HTML page signature display (property s…
BionicCode Oct 6, 2024
043af49
feature: add auto discover profiler targets based on the 'ProfilerAut…
BionicCode Oct 7, 2024
0a44a0a
feature: add profile target auto discover
BionicCode Oct 8, 2024
a81500c
update time unnits and add length unit from other project
BionicCode Oct 9, 2024
b8d1176
refactor: unit type implementation and HTML
BionicCode Oct 10, 2024
86b19d4
feature: unit type auto conversion to get best unit for display
BionicCode Oct 10, 2024
0f319b5
improve: HTMl layout of profiler result
BionicCode Oct 11, 2024
c035b10
Update Nuget dependencies
BionicCode Oct 15, 2024
f565e53
fix: refactor and fix name generation bug
BionicCode Oct 15, 2024
4b17203
refactor: exception messsages for extension methods
BionicCode Oct 16, 2024
6d05f48
Merge pull request #15 from BionicCode/feature/improve-performance-ty…
BionicCode Oct 16, 2024
c697e69
fix spelling in XML comments
BionicCode Oct 16, 2024
0ea9936
test: implement Enum.ToString extension methods tests
BionicCode Oct 16, 2024
ed69e13
refactor and test collection extension methods
BionicCode Oct 22, 2024
7680dc2
refactor
BionicCode Oct 22, 2024
5ce63e1
implement collection extension method test (array)
BionicCode Oct 23, 2024
d927625
refactor AddRange TItem[] to improve performance based on tests
BionicCode Oct 24, 2024
67db667
refACTOR array hellpers for unit tests
BionicCode Oct 28, 2024
da06166
improve: array operation performance of extension methods is now more…
BionicCode Oct 29, 2024
8ff2bd4
refactor ArrayEx
BionicCode Oct 30, 2024
9d626c5
refactor CollectionHelperExtensions
BionicCode Oct 30, 2024
593554e
fix: unit tests
BionicCode Oct 30, 2024
eaf2887
fix: unit test
BionicCode Oct 30, 2024
bd1f1d6
refactor tests
BionicCode Oct 31, 2024
2a758c8
refactor unit tests for AsyncRelayCommand
BionicCode Nov 3, 2024
85d36b9
refactor AsyncRelayCommand unit test
BionicCode Nov 4, 2024
657a2e9
Adjust tests and refactor AsyncRelayCommand
BionicCode Nov 7, 2024
623f805
refactor tests
BionicCode Nov 10, 2024
896c66e
refactor tests
BionicCode Nov 11, 2024
851fed1
improve event aggregation
BionicCode Nov 12, 2024
154c79b
refactor
BionicCode Nov 12, 2024
7485444
refactor
BionicCode Nov 13, 2024
99a395a
refactor aggregator
BionicCode Nov 13, 2024
65cf5a4
refactor aggregator for test
BionicCode Nov 13, 2024
35c48d1
refactor eventaggregator
BionicCode Nov 14, 2024
c868914
refactor aggregator
BionicCode Nov 15, 2024
f10648e
refactor aggregator + weakeventmanager
BionicCode Nov 15, 2024
9d7588c
refactor weakeventmanager
BionicCode Nov 16, 2024
46e87e4
refactor WeakEventManager (complete)
BionicCode Nov 16, 2024
15f3dcc
refactor aggregator
BionicCode Nov 17, 2024
26c8dcf
done WeakEventAggregator and WeakEventManager
BionicCode Nov 17, 2024
3e5e6ad
remove dead code
BionicCode Nov 17, 2024
14edd0a
rename region
BionicCode Nov 17, 2024
658845b
refactor tests
BionicCode Nov 18, 2024
9e5493f
fix unit tests WeakeventManager
BionicCode Nov 19, 2024
27a5c17
reafctor tests
BionicCode Nov 20, 2024
8ac2a91
refactor : move WealEventManager<T> members to base class
BionicCode Nov 21, 2024
a9b2e03
refactor WeakEventManager
BionicCode Nov 21, 2024
e446d3f
fix test path
BionicCode Nov 23, 2024
7a8c8f4
fix almost all WeakEventManager tests
BionicCode Nov 24, 2024
ce05829
fix unit test WeakEventManager
BionicCode Nov 29, 2024
8b345a6
fix race condition in WeakEventManager to make test pass
BionicCode Nov 29, 2024
9662efc
fix threadsafety of WeakEventManager to make tests pass
BionicCode Nov 30, 2024
a6ffb58
fixing WeakEventManagertests
BionicCode Dec 4, 2024
067b1d4
refactor WeakEventMqnager end service
BionicCode Dec 7, 2024
e791256
fix WeakEVentManager instance management bug
BionicCode Dec 8, 2024
5d83bb1
fix and add WeakEventManager tests
BionicCode Dec 9, 2024
06a3686
implement weak reference test
BionicCode Dec 10, 2024
a7dc8c1
fix test for garbage collection of weak references held by the WeakEv…
BionicCode Dec 25, 2024
d3ac2e4
refactor RelayCommandCore synchronization and pending queue
BionicCode Dec 26, 2024
28a66b2
refactor AsyncRelayCommand and RelayCommand
BionicCode Dec 26, 2024
a6d5334
fix WeakEventManager SynchronizationContext (event marshaling) tests
BionicCode Dec 26, 2024
4301099
implement: WeakEventAggregator tests.
BionicCode Dec 29, 2024
2dd975e
fix unit test after refactoring dynamic delegate generation
BionicCode Jan 1, 2025
587137a
implement WeakEventAggregator listen to all events of a source type w…
BionicCode Jan 1, 2025
6a7378d
Add global event listening to WeakEventAggregator
BionicCode Jan 2, 2025
29c36df
implement WeakEventAggregator tests
BionicCode Jan 3, 2025
c7825bc
refactor: make WeakEventManager threadsafe
BionicCode Jan 7, 2025
2cced6f
refactor WeakEventManager
BionicCode Jan 10, 2025
8b4bb71
fix WeakEVentAggregator unit test and API comments
BionicCode Feb 11, 2025
65dac4b
Move profiler to own project and fix build errors
BionicCode Nov 18, 2025
15843cc
migrate SIUnits project
BionicCode Nov 20, 2025
6f4b597
fix indentation solution wide
BionicCode Nov 20, 2025
551ae71
fix merge errors
BionicCode Nov 20, 2025
0a02f5a
fix unit test
BionicCode Nov 20, 2025
8d10b17
remove NET Standard 2.0 support from ReflectionHelpersExtensions and…
BionicCode Nov 21, 2025
166d821
fix reflection extension methods unit tests
BionicCode Nov 21, 2025
aa55ce8
fix reflection extensions unit tests
BionicCode Nov 22, 2025
ba6a22b
fix runtime signature reflection API and comments
BionicCode Nov 23, 2025
46bb1c1
refactor ToSignature reflection API
BionicCode Nov 26, 2025
b410613
refactor ToSignature API
BionicCode Nov 28, 2025
df80eea
refactor reflection cache types
BionicCode Nov 29, 2025
d908cfa
fix hash generation (ParameterList.GetHashCode)
BionicCode Nov 29, 2025
30691e4
refactor reflection API
BionicCode Dec 2, 2025
dffcf5b
refactor signature builder
BionicCode Dec 4, 2025
4fd0e1b
refactor smybol data classes
BionicCode Dec 4, 2025
13eee58
refactor symbol signature generation
BionicCode Dec 9, 2025
fdb3ec5
implement 'ref readonly' parameter support in signatures
BionicCode Dec 9, 2025
708ca70
refactor symbol reflection cache
BionicCode Dec 11, 2025
68c1ae5
refactor symbol cache key generation
BionicCode Dec 11, 2025
d5db245
refactor reflection cache key generation
BionicCode Dec 11, 2025
48669e3
refactor reflection cache
BionicCode Dec 12, 2025
3a6d800
refqactot reflection cache
BionicCode Dec 12, 2025
2225353
refactor reflection cache
BionicCode Dec 13, 2025
30c02a2
refactor reflection cache
BionicCode Dec 13, 2025
9a0d6c6
refactor reföection cache
BionicCode Dec 13, 2025
bee9fbc
refactor reflection cache
BionicCode Dec 14, 2025
9810dc9
refactor reflection cache
BionicCode Dec 14, 2025
3df9976
Refactor XML docs: use 'targetType', improve Cast caching
BionicCode Dec 14, 2025
657ec8c
Refactor reflection invocation and generic method handling
BionicCode Dec 14, 2025
9ccada3
Refactor invocator fields, add IsParams extension
BionicCode Dec 15, 2025
ea22c29
Enhance generic method support and invocation caching
BionicCode Dec 16, 2025
dbd08c8
Refactor and extend generic/async method invocation
BionicCode Dec 16, 2025
1e7836d
Refactor reflection: add TypeList, improve method invocation
BionicCode Dec 19, 2025
704f815
Refactor: introduce strongly-typed metadata list classes
BionicCode Dec 19, 2025
cbee7fd
Refactor symbol metadata for performance and consistency
BionicCode Dec 20, 2025
a9eab27
Refactor method invocator logic to DelegateProvider
BionicCode Dec 26, 2025
05b7c05
Add member accessibility props & refactor invocator to invoker
BionicCode Dec 26, 2025
4734df0
Refactor field access: add type-safe getter/setter support
BionicCode Dec 26, 2025
2742ee3
Enhance reflection utils: type safety, setters, error msgs
BionicCode Dec 27, 2025
020bcac
Refactor event/property invocation and add validation helpers
BionicCode Dec 29, 2025
228aa9e
Refactor: Replace exception helpers, improve docs & validation
BionicCode Jan 1, 2026
71e5500
Enhance indexer support and argument validation
BionicCode Jan 1, 2026
07c9dba
Refactor naming and docs for clarity in delegate utilities
BionicCode Jan 2, 2026
ee65623
Refactor: unify member metadata via new MemberData base
BionicCode Jan 4, 2026
fae59ba
Create Visual Code workspace
BionicCode Jan 5, 2026
522e084
Add code style guidance based on Clean Code principles
BionicCode Jan 5, 2026
9ad6ff4
Enhance argument validation and property/indexer access
BionicCode Jan 5, 2026
cf03437
Enhance property/indexer getter APIs and type safety
BionicCode Jan 5, 2026
afab6cd
Refactor: Strongly-typed delegates for property/indexer access
BionicCode Jan 5, 2026
a6523b8
Improve property/indexer getter/setter validation & API
BionicCode Jan 6, 2026
afe1331
Improve reflection cache and delegate robustness
BionicCode Jan 7, 2026
e371506
Improve validation and error handling for reflection cache keys
BionicCode Jan 8, 2026
a446422
Improve error handling in SymbolReflectionInfoCache
BionicCode Jan 9, 2026
03bfb62
Refactor argument validation and symbol kind handling
BionicCode Jan 9, 2026
7650dcc
Add EventListBuilder for consistent event list creation
BionicCode Jan 9, 2026
f716574
Refactor symbol reflection and parameter handling APIs
BionicCode Jan 11, 2026
8c1d61d
Refactor enum utilities, spans, and list equality ops
BionicCode Jan 11, 2026
bf03dc9
Overhaul StringBuilder pooling and PooledStringBuilder API
BionicCode Jan 12, 2026
3d0f219
Refactor reflection utilities for type safety and caching
BionicCode Jan 12, 2026
cc8cc9e
Refactor enum validation and JoinToString extensions
BionicCode Jan 13, 2026
fa1e718
Improve type safety and error handling in symbol metadata
BionicCode Jan 13, 2026
dcfc925
Refactor SymbolInfoDataCacheKey property access logic
BionicCode Jan 13, 2026
235c9ab
Refactor API for .NET compatibility and consistency
BionicCode Jan 13, 2026
17159b2
Refactor API to use TypeList/ParameterList and spans
BionicCode Jan 14, 2026
e69f505
Refactor MethodData: strict sync/async separation, new APIs
BionicCode Jan 15, 2026
aa78775
Refactor: Strongly-typed invokers & profiler redesign
BionicCode Jan 15, 2026
460f7f6
Refactor generic method handling and error reporting
BionicCode Jan 15, 2026
bbd8a93
Add discard-result async method support for profiling
BionicCode Jan 16, 2026
eba364a
Refactor delegate cache keys for robust generic method support
BionicCode Jan 16, 2026
3d80960
Refactor method invoker caching and equality logic
BionicCode Jan 16, 2026
1d59cd8
Refactor: introduce ParameterizedMemberData abstraction
BionicCode Jan 17, 2026
7fd9c60
Refactor indexer/property accessor parameter handling
BionicCode Jan 18, 2026
48031d1
Refactor method role detection to MethodData with caching
BionicCode Jan 19, 2026
13b9153
Clarify property vs indexer accessor logic and docs
BionicCode Jan 20, 2026
c6e8cf0
Rename PropertySetMethodData to SetValueMethodData, relax accessor ma…
BionicCode Jan 20, 2026
cb87759
Update IsOptional XML docs for clarity and accuracy
BionicCode Jan 20, 2026
c4c81ab
Add fast "Like" accessor checks and improve reflection logic
BionicCode Jan 21, 2026
47db865
Refactor accessor detection and member association logic
BionicCode Jan 21, 2026
6f8ca04
Add CODEX guidelines for output format and definition of done
BionicCode Jan 21, 2026
e79cf1d
Merge branch 'develop' of https://github.com/BionicCode/BionicCode.Ne…
BionicCode Jan 21, 2026
c909961
Refactor TypeData method/ctor lookup and property filtering
BionicCode Jan 21, 2026
2e975a8
Refactor TypeData to use new ConcurrentHashSet<T> class
BionicCode Jan 22, 2026
a6b00d2
Refactor property cache retrieval to avoid temp list
BionicCode Jan 22, 2026
757fe64
Add binding flags guard to IsValidMember
BionicCode Jan 23, 2026
4ef6a57
Merge pull request #17 from BionicCode/codex/add-guard-for-bindingfla…
BionicCode Jan 23, 2026
0b54ddf
Refactor property caching and update XML docs
BionicCode Jan 23, 2026
7fd59bc
Add SymbolKind validation to cache entry creation methods
BionicCode Jan 23, 2026
f416b81
Refactor and enhance symbol list builder infrastructure
BionicCode Jan 23, 2026
27475d3
Refactor metadata lists for fast member lookup & API consistency
BionicCode Jan 23, 2026
da1e6fa
Add member data to type data member list in loop
BionicCode Jan 23, 2026
68d62af
Refactor member cache enumeration in TypeData
BionicCode Jan 23, 2026
e586fc8
Simplify BindingFlags checks using XOR operator
BionicCode Jan 24, 2026
5713fe2
Centralize reflection string constants and refactor usage
BionicCode Jan 24, 2026
c986d80
Refactor indexer parameter handling and cache validation
BionicCode Jan 25, 2026
d723ddb
Refactor parameter cache key system with new descriptors
BionicCode Jan 25, 2026
0ec531b
Refactor parameter/member descriptor and lookup logic
BionicCode Jan 25, 2026
1cce8f5
Change BindingFlags fields from static readonly to const
BionicCode Jan 25, 2026
ea6960f
Refactor parameter/member name handling in cache keys
BionicCode Jan 25, 2026
ce060a5
Refactor event/reflection handling and resolve merge issues
BionicCode Jan 25, 2026
d2b87b4
Improve indexer parameter disambiguation and error handling
BionicCode Jan 26, 2026
3d0d4a8
Refactor profiling: indexer args, result grouping, context
BionicCode Jan 26, 2026
02b30d2
Refactor symbol metadata handling and enhance docs
BionicCode Jan 27, 2026
f073333
Make logger delegates nullable in Profiler APIs
BionicCode Jan 27, 2026
5dc6011
Enhance parameter/member disambiguation and matching
BionicCode Jan 27, 2026
2e74dfb
Refactor: Rename SymbolInfoDataCacheKey to SymbolReflectionInfoCacheKey
BionicCode Jan 28, 2026
6b88e62
Refactor symbol cache for explicit interface support
BionicCode Jan 29, 2026
f73a739
Refactor: add well-known/anonymous symbol descriptors
BionicCode Jan 30, 2026
57938ae
Refactor property/event accessor handling and descriptors
BionicCode Jan 30, 2026
e1d0161
Refactor anonymous descriptors for explicit interface impls
BionicCode Jan 31, 2026
a1b5a5e
Refactor symbol descriptors and cache key infrastructure
BionicCode Feb 1, 2026
042c1b6
Refactor anonymous descriptor type handle semantics
BionicCode Feb 1, 2026
de71af2
Improve explicit interface method caching and assembly cleanup
BionicCode Feb 1, 2026
7385c2a
Add AssemblyMonitor for tracking collectible assemblies
BionicCode Feb 2, 2026
aeeb265
Refactor ALC monitoring and cache cleanup logic
BionicCode Feb 2, 2026
7768f0e
Add core symbol cache keys and signature generation infra
BionicCode Feb 4, 2026
3b0747d
Refactor reflection collection classes for consistency
BionicCode Feb 4, 2026
cdc8d38
Add reflection helper extensions and type descriptors
BionicCode Feb 5, 2026
ae49470
Add reflection helper API, enum extensions, and cleanup
BionicCode Feb 6, 2026
885427f
Add workflow to sync .editorconfig from canonical repo
BionicCode Feb 6, 2026
dca4af1
Update CANONICAL_RAW_URL in workflow file
BionicCode Feb 6, 2026
7d7bc1e
Fix URL for canonical raw editorconfig file
BionicCode Feb 6, 2026
b588e3d
Change folder structure
BionicCode Feb 6, 2026
b945eb8
Merge branch 'develop' of https://github.com/BionicCode/BionicCode.Ne…
BionicCode Feb 6, 2026
c179ee9
Update GitHub Actions workflow for editorconfig sync
BionicCode Feb 6, 2026
0916784
Refactor AnonymousConstructorDescriptor formatting & docs
BionicCode Feb 6, 2026
a8b1434
Update sync-editorconfig-on-push.yml
BionicCode Feb 6, 2026
7eb5d0a
Refactor and document AnonymousEventDescriptor struct
BionicCode Feb 6, 2026
7218551
Enhance sync-editorconfig workflow with debug info
BionicCode Feb 6, 2026
90cee09
Fix formatting for fallback PR step in workflow
BionicCode Feb 6, 2026
25892b3
chore(sync): update .editorconfig from canonical
github-actions[bot] Feb 6, 2026
738c435
Clean up .editorconfig by removing analyzer settings
BionicCode Feb 6, 2026
1d3b148
chore(sync): update .editorconfig from canonical
github-actions[bot] Feb 6, 2026
f9cbbcc
Add CODEOWNERS file for editorconfig ownership
BionicCode Feb 6, 2026
29471b8
Refactor AnonymousFieldDescriptor formatting and docs
BionicCode Feb 6, 2026
850a270
Merge branch 'develop' of https://github.com/BionicCode/BionicCode.Ne…
BionicCode Feb 6, 2026
c0d57b6
Refactor symbol reflection API, add signature comparer
BionicCode Feb 7, 2026
a7840d3
chore(sync): update .editorconfig from canonical
github-actions[bot] Feb 7, 2026
73eb8ab
Refactor MethodData to use direct MethodInfo property
BionicCode Feb 7, 2026
069068e
Merge branch 'develop' of https://github.com/BionicCode/BionicCode.Ne…
BionicCode Feb 7, 2026
51fcf26
Update GitHub Actions workflow for editorconfig sync
BionicCode Feb 7, 2026
50a830c
Remove obsolete explicit interface implementation checks
BionicCode Feb 7, 2026
fe03129
Update sync-editorconfig-on-push.yml
BionicCode Feb 7, 2026
03c1524
Correct XML doc typos and clarify overload references
BionicCode Feb 7, 2026
933ea42
Remove XML doc comment from MethodHandle property
BionicCode Feb 7, 2026
5dfeeaf
Refactor GitHub Actions workflow for editorconfig sync
BionicCode Feb 7, 2026
249cd7c
Update to file-scoped namespace in MethodParameterInfo.cs
BionicCode Feb 7, 2026
6ea08a7
Update sync-editorconfig-on-push.yml
BionicCode Feb 8, 2026
cb42154
Refactor: use _ prefix for private fields in ParameterData
BionicCode Feb 8, 2026
2a99e86
Update CANONICAL_RAW_URL for editorconfig sync
BionicCode Feb 8, 2026
bdc6a04
Refactor ParameterData constructor to use cache key only
BionicCode Feb 8, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
439 changes: 439 additions & 0 deletions .editorconfig

Large diffs are not rendered by default.

1 change: 1 addition & 0 deletions .github/CODEOWNERS
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
/.editorconfig @BionicCode
35 changes: 35 additions & 0 deletions .github/instructions/codestyle.instructions.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
# Code style guidance (Clean Code)

When proposing code changes, prefer applying Clean Code principles while adhering to existing repository standards.

## Priority order

1. Follow the repository's `.editorconfig` and established local conventions.
2. Prefer Clean Code principles where they improve clarity without causing unnecessary churn.

## Clean Code preferences (when appropriate)

- Favor clarity and maintainability over cleverness.
- Keep methods small and focused.
- Use meaningful names and consistent terminology.
- Minimize side effects and hidden behavior.
- Avoid unnecessary complexity and premature abstraction.

## General code style

- Use consistent indentation (4 spaces).
- Place `using` directives at the top of the file.
- Keep related code together and organize files logically.
- Use regions to group related code blocks.
- Follow naming conventions (e.g., PascalCase for public members, camelCase for private members).
- Write XML documentation comments for public APIs.
- Prefer expression-bodied members for simple properties and methods.
- Use string interpolation over concatenation.
- Use region name also for the closing endregion directive
- Prefer string.Equals for string equality test with specified StringComparison
- When generating a `object.GetHashCode()` override, define a `private readonly int _hashCode` field to store the hash code value and create a related `int ComputeHashCode()` method to compute the hash code value from the constructor of the current type. Goal: make hash code computation a one-time operation.

## Refactoring scope

- Do not perform broad renames or large structural refactors unless explicitly requested.
- If a large refactor would help, propose it as an option and explain the tradeoffs.
23 changes: 23 additions & 0 deletions .github/instructions/review.instructions.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
# Code review output requirements (call-tree coverage footer)

When performing a code review, always include a **Call-tree coverage footer** at the end of the review.

When reviewing, prefer a **Clean Code** lens (readability, naming, and complexity) **without** requesting changes that conflict with the repository’s `.editorconfig` or established local conventions. Avoid broad refactors unless explicitly requested.

## Call-tree coverage footer format

Include the following items:

- **Traversal completeness:** `Complete` or `Incomplete`.
- **Coverage depth:** the number of expanded call steps (e.g., `A -> B -> C` = depth 3).
- **Expanded symbols:** list the expanded call chain(s) (method names).
- **Stopped at (when incomplete):** the last method reviewed including `file path` and `line range`.
- **Unexpanded callees / reasons:** list any calls not expanded and why (e.g., definition not provided, reflection, dynamic dispatch, delegate/event, too many branches).
- **Files needed for complete coverage (when incomplete):** list of files and types needed to achieve complete coverage.
- **Review trigger:** the trigger for the review (e.g., AGENTS.md, Codex web, automatic review, GitHub PR @codex, GitHub automation etc.).
- **Notes:** any additional relevant information about the coverage.

## Definition of "Complete"

“Complete” means complete **with respect to the code that is available to the assistant in the current prompt/context**.
If additional files are required to increase coverage, the review must explicitly request them. But always give feedback which files and types are needed to complete coverage in form of a list.
102 changes: 102 additions & 0 deletions .github/workflows/sync-editorconfig-on-push.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,102 @@
name: Sync .editorconfig from canonical (PR-only)

on:
push:
branches-ignore:
- "chore/sync-editorconfig" # bot PR branch
pull_request:
workflow_dispatch:
# Optional polling safety net (recommended for dormant repos):
# schedule:
# - cron: "17 * * * *" # hourly at :17

permissions:
contents: write
pull-requests: write

env:
CANONICAL_RAW_URL: https://raw.githubusercontent.com/BionicCode/bioniccode-code-style/refs/heads/main/BionicCode.CodeStyle/BionicCode.CodeStyle/.editorconfig
SYNC_BRANCH: chore/sync-editorconfig

# Concurrency scoped per PR or per ref (prevents cross-branch cancellations)
concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true

jobs:
verify-on-pr:
if: github.event_name == 'pull_request'
runs-on: ubuntu-latest
steps:
- name: Checkout PR head
uses: actions/checkout@v4
with:
ref: ${{ github.head_ref }}

- name: Download canonical .editorconfig
run: |
set -euo pipefail
curl -fsSL "${CANONICAL_RAW_URL}" -o canonical.editorconfig

- name: Ensure exactly one tracked .editorconfig (strict)
run: |
set -euo pipefail
count=$(git ls-files '**/.editorconfig' | wc -l | tr -d ' ')
if [ "$count" -ne 1 ]; then
echo "::error::Expected exactly one tracked .editorconfig (repo root). Found: $count"
git ls-files '**/.editorconfig' || true
exit 1
fi

- name: Fail if branch .editorconfig is out of sync
run: |
set -euo pipefail
if cmp -s .editorconfig canonical.editorconfig; then
echo ".editorconfig is in sync with canonical."
else
echo "::error::.editorconfig is OUT OF SYNC with canonical. Merge the sync PR created by this workflow."
exit 1
fi

open-or-update-sync-pr:
# PR-only syncing: create/update a PR on default-branch pushes, or manual runs
if: >
github.event_name != 'pull_request' && github.actor != 'github-actions[bot]'
runs-on: ubuntu-latest
steps:
- name: Checkout default branch
uses: actions/checkout@v4
with:
ref: ${{ github.event.repository.default_branch }}

- name: Download canonical .editorconfig
run: |
set -euo pipefail
curl -fsSL "${CANONICAL_RAW_URL}" -o canonical.editorconfig

- name: Detect changes
id: diff
run: |
set -euo pipefail
if [ -f .editorconfig ] && cmp -s .editorconfig canonical.editorconfig; then
echo "changed=false" >> "$GITHUB_OUTPUT"
else
mv canonical.editorconfig .editorconfig
echo "changed=true" >> "$GITHUB_OUTPUT"
fi

- name: Create or update PR
if: steps.diff.outputs.changed == 'true'
uses: peter-evans/create-pull-request@v7
with:
branch: ${{ env.SYNC_BRANCH }}
base: ${{ github.event.repository.default_branch }}
title: "chore: sync .editorconfig from canonical"
commit-message: "chore(sync): update .editorconfig from canonical"
body: |
Automated sync of `.editorconfig` from the canonical repository.

Source: BionicCode/bioniccode-code-style (main)
add-paths: |
.editorconfig
labels: automation
30 changes: 30 additions & 0 deletions AGENTS.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
If user prompt only contains "<review>", consider it an instructions placeholder for the [REVIEW MISSION (default)](#review-mission-default) section which serves as the real task input:

# REVIEW MISSION (default)
Goal: Perform a deep, call-tree-based review focused on correctness of reflection identity/caching.
Default entry point(s):
- Start at: public API of SymbolReflectionInfoCache and SymbolReflectionInfoCacheKey
- Trace: Full call tree.

If the user prompt specifies a different entry point or path, follow the user prompt (user prompt overrides AGENTS.md).

# PRIMARY INVARIANTS (Definition of Done)
I should be able to trust that:
1) Indexer parameters normalize to a stable identity across retrieval paths
2) Parameter cache keys are consistent and won’t split/duplicate entries depending on acquisition path
3) TypeData caching makes the hot path reflection-free after warmup
4) Explicit interface accessors are handled correctly (no name-heuristic pitfalls)

# OUTPUT FORMAT I WANT
- Organize by file headers.
- Use filename + 1-based line references like [L123].
- Findings tagged: [ERROR]/[BUG]/[SECURITY]/[PERF]/[DESIGN]/[API]/[DOCS]/[TEST]/[STYLE]/[RISK].
- After findings: “Coverage / Call-tree traversal depth” (which paths you traced, and where you had to stop due to missing context).

# REVIEW DEPTH RULES
- Always include a short “Call-tree” section showing the traced chain (at least: method A -> method B -> method C).
- If you cannot fully trace due to missing files/context, stop and explicitly say where you stopped.

# OPTIONAL: COMMANDS / EXECUTION
- Do not run build/tests unless explicitly requested by the user.
- Prefer static reasoning + code inspection.
8 changes: 8 additions & 0 deletions BionicCode.Net.code-workspace
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
{
"folders": [
{
"path": "."
}
],
"settings": {}
}
43 changes: 43 additions & 0 deletions BionicCode.Net.slnx
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
<Solution>
<Configurations>
<Platform Name="Any CPU" />
<Platform Name="ARM" />
<Platform Name="ARM64" />
<Platform Name="x64" />
<Platform Name="x86" />
</Configurations>
<Folder Name="/Controls/">
<Project Path="src/BionicCode.Controls.Net.Wpf/BionicCode.Controls.Net.Wpf.csproj">
<Build Solution="Debug|Any CPU" Project="false" />
</Project>
</Folder>
<Folder Name="/Test/">
<Project Path="tests/BionicCode.Controls.Net.Wpf.Ui.Test/BionicCode.Controls.Net.Wpf.Ui.Test.csproj">
<Build Solution="Debug|Any CPU" Project="false" />
</Project>
<Project Path="tests/BionicCode.Net.Framework.Wpf.BionicCharts.Ui.Test/BionicCode.Net.Framework.Wpf.BionicCharts.Ui.Test.csproj" Id="83fdac1f-7bcd-4a38-9b13-b778024c50b2">
<Build Solution="Debug|Any CPU" Project="false" />
</Project>
<Project Path="tests/BionicCode.Utilities.UnitTest.Net/BionicCode.Utilities.Net.UnitTest.csproj">
<Build Solution="Release|Any CPU" Project="false" />
</Project>
</Folder>
<Folder Name="/Utilities/">
<Project Path="src/BionicCode.Utilities.Net.Common/BionicCode.Utilities.Net.Common.csproj" />
<Project Path="src/BionicCode.Utilities.Net.Wpf/BionicCode.Utilities.Net.Wpf.csproj" />
<Project Path="src/BionicCode.Utilities.Net/BionicCode.Utilities.Net.csproj" />
<Project Path="src/BionicCode.Utilities.Reflection/BionicCode.Utilities.Net.Reflection.csproj" Id="7078924e-729e-4dd9-8d4a-3b360c507d15" />
<Project Path="src/BionicCode.Utilities.Net.Profiling/BionicCode.Utilities.Net.Profiling.csproj" Id="6e13f596-7ab1-4df7-b9b4-afb4bd4001b9">
<BuildDependency Project="src/BionicCode.Utilities.Net.Common/BionicCode.Utilities.Net.Common.csproj" />
</Project>
<Project Path="src/BionicCode.Utilities.Net.Common.Isolation.Net6/BionicCode.Utilities.Net.Common.Isolation.Net6.csproj" />
</Folder>
<Project Path="src/BionicCode.SIUnits.Core/BionicCode.SIUnits.Core.csproj" />
<Project Path="Documentation/Documentation.csproj">
<BuildDependency Project="src/BionicCode.Utilities.Net.Common/BionicCode.Utilities.Net.Common.csproj" />
<BuildDependency Project="src/BionicCode.Utilities.Net.Profiling/BionicCode.Utilities.Net.Profiling.csproj" />
<BuildDependency Project="src/BionicCode.Utilities.Net.Wpf/BionicCode.Utilities.Net.Wpf.csproj" />
<BuildDependency Project="src/BionicCode.Utilities.Net/BionicCode.Utilities.Net.csproj" />
<Build Solution="Debug|Any CPU" Project="false" />
</Project>
</Solution>
Loading
Loading