Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
313 commits
Select commit Hold shift + click to select a range
8a712f0
rename
mcocdaa May 13, 2026
addb854
202605140659
mcocdaa May 13, 2026
4816665
202605151304
mcocdaa May 15, 2026
3c3e79f
202605151451
mcocdaa May 15, 2026
6be917f
202605151541
mcocdaa May 15, 2026
b8eefdf
202605152059
mcocdaa May 15, 2026
54dcd06
202605161216
mcocdaa May 16, 2026
69d60dc
202605162052
mcocdaa May 16, 2026
9e78579
202605170810
mcocdaa May 17, 2026
aed8545
202605170858
mcocdaa May 17, 2026
349ab4a
202605171349
mcocdaa May 17, 2026
f6984e5
202605180750
mcocdaa May 17, 2026
33210bb
20260519
mcocdaa May 19, 2026
67d3b74
202605201901
mcocdaa May 20, 2026
8a5c7e8
202605211607
mcocdaa May 21, 2026
c5fe854
202605222225
mcocdaa May 22, 2026
e8b08cc
202605271503
mcocdaa May 27, 2026
a44dc35
feat(controllability): add mode switch Gizmo to CompPawnAgent
mcocdaa May 27, 2026
2c85a0b
feat(controllability): add player notification on mode switch
mcocdaa May 27, 2026
c8ef02e
feat(observability): add CurrentModeId, PerceptionBuffer, LastThinkTi…
mcocdaa May 27, 2026
fc63e4b
feat(O-1): migrate Presentation/Agent layer from Verse.Log to ILogSink
mcocdaa May 27, 2026
bc914af
202605272322
mcocdaa May 27, 2026
c95fa2e
refactor: extract pure OpenAIRequestSerializer for testability
mcocdaa May 29, 2026
721d734
feat: agent mode architecture overhaul
mcocdaa May 29, 2026
6684c01
test: reproduce Decision envelope invalid-schema serialization throw
mcocdaa May 29, 2026
32894b2
fix: skip response_format for non-JSON schema sentinels (Decision <Ac…
mcocdaa May 29, 2026
2757957
test: add golden snapshot and quality invariants for Decision LLM req…
mcocdaa May 29, 2026
581f4d2
test: fix snapshot trailing-newline to survive end-of-file-fixer hook
mcocdaa May 29, 2026
ea0609e
test: capture LastEnvelope in MockAIClient for request inspection
mcocdaa May 29, 2026
2bfc7e0
fix: serialize OpenAI tool/tool_call fields with lowercase keys
mcocdaa May 29, 2026
c6e3cd5
fix: place few-shot examples before the live conversation turn
mcocdaa May 29, 2026
3ae9bf0
feat(core): add manual tool dispatch mode
mcocdaa May 29, 2026
cc2d6ae
fix(core): make tool dispatch mode immutable
mcocdaa May 29, 2026
8d34d7a
202606011129
mcocdaa Jun 1, 2026
856bebf
202606041800
mcocdaa Jun 4, 2026
3ad73cd
fix
mcocdaa Jun 6, 2026
3042296
202606111020
mcocdaa Jun 11, 2026
0e5c252
202606111052
mcocdaa Jun 11, 2026
45d9c5c
feat(core): show full ai request trace details
mcocdaa Jun 12, 2026
0aec04a
fix
mcocdaa Jun 13, 2026
808426c
update
mcocdaa Jun 13, 2026
117b815
update
mcocdaa Jun 14, 2026
b4a8a79
update
mcocdaa Jun 18, 2026
cbdc1f2
feat(core): add agent extensibility architecture guards
mcocdaa Jun 19, 2026
d35485e
update
mcocdaa Jun 19, 2026
6a2a9dc
test(core): drop H2 shell-guard tests for removed Actions dead code
mcocdaa Jun 19, 2026
e6cb35c
chore(core): move orphaned Tests/PhaseH2ArchTests.cs to _backup
mcocdaa Jun 20, 2026
f81e56d
202607021942
mcocdaa Jul 2, 2026
5829029
test(core): migrate MechanismRiskTests from Actions to Core.Tests
mcocdaa Jul 2, 2026
3d1bd7f
test(core): migrate RiskLevel/RimMindErrorCode/StructuredTool tests f…
mcocdaa Jul 2, 2026
b946918
test(core): add 3 missing RimMindError tests (record equality + optio…
mcocdaa Jul 3, 2026
176f512
feat(core-ui): add LayoutConflict record types for layout detector
mcocdaa Jul 3, 2026
232cf7b
feat(core-ui): add LayoutTraceRecorder with overlap/overflow/negative…
mcocdaa Jul 3, 2026
fad8d9e
test(core-ui): add zero-size + skip-logic tests for LayoutTraceRecorder
mcocdaa Jul 3, 2026
b5497b4
feat(core-ui): add LayoutConflictStore static per-window cache
mcocdaa Jul 3, 2026
0d6cf66
feat(core-ui): add RimMindLayoutScope disposable frame scope with aut…
mcocdaa Jul 3, 2026
43eb238
feat(core-ui): add LayoutTraceRecorder overloads to RimMindUI draw pr…
mcocdaa Jul 6, 2026
341f4e5
feat(core-ui): add RimMindWindowBase/ITabBase/MainTabWindowBase with …
mcocdaa Jul 6, 2026
7dc1574
feat(ui): add layout conflict debug actions (dump + toggle overlay)
mcocdaa Jul 6, 2026
658d64b
refactor(core-ui): migrate 5 simple windows to RimMindWindowBase + scope
mcocdaa Jul 6, 2026
3198a77
feat(ui): migrate 5 agent windows to RimMindWindowBase (Task 9)
mcocdaa Jul 6, 2026
e14ad62
refactor(core-ui): migrate ITab_Pawn_Agent + Window_RimMindHub + draw…
mcocdaa Jul 6, 2026
f927f79
refactor(core-ui): migrate settings window + 4 tab drawers to scope (…
mcocdaa Jul 6, 2026
1d51aad
refactor(core-ui): split ApiTabDrawer.DrawRequestSection into 3 subse…
mcocdaa Jul 6, 2026
eddb8b0
test(core-ui): add R_N7 ArchTest enforcing UI base class + layout sco…
mcocdaa Jul 6, 2026
30bd7ae
test(core-ui): add Autotests action to smoke-test UI layout conflict …
mcocdaa Jul 6, 2026
3203c76
refactor(core-ui): pass layout scope through debug center pages
mcocdaa Jul 6, 2026
ae8f2f0
fix(core-ui): record debug center tool grid layout
mcocdaa Jul 6, 2026
e2d0d58
fix(core-ui): record settings window layout body
mcocdaa Jul 6, 2026
358912f
fix(core-ui): ignore contained layout trace overlaps
mcocdaa Jul 6, 2026
56d0df8
test(core-ui): add agent page view model
mcocdaa Jul 6, 2026
7d5d8a9
test(core-ui): add agent page internal layout model
mcocdaa Jul 6, 2026
dcd9c45
refactor(core-ui): split agent debug page drawers
mcocdaa Jul 6, 2026
7c5e89e
feat(core-ui): show agent request trace rows
mcocdaa Jul 6, 2026
7bd2a46
fix(core-ui): route agent trace rows through activity panel
mcocdaa Jul 6, 2026
772c594
fix(core-ui): populate agent activity from request trace log
mcocdaa Jul 6, 2026
b1b8497
test(core-ui): guard debug center layout regressions
mcocdaa Jul 6, 2026
8def3ea
fix(core-ui): isolate layout regression tests
mcocdaa Jul 6, 2026
5854bcf
fix(core-ui): move layout tracing into presentation
mcocdaa Jul 7, 2026
723d6bc
feat(core-ui): add pure ui metrics and rect helpers
mcocdaa Jul 7, 2026
fa56a23
fix(core-ui): clamp degenerate ui rect splits
mcocdaa Jul 7, 2026
077c5dd
feat(core-ui): add shared tabbed page layout
mcocdaa Jul 7, 2026
9926647
fix(core-ui): clamp tabbed layout degenerate sizes
mcocdaa Jul 7, 2026
cb86a2b
test(core-ui): add standalone ui snapshot writers
mcocdaa Jul 7, 2026
cb5c6ea
fix(core-ui): add default table row snapshot factory
mcocdaa Jul 7, 2026
d069960
fix(core-ui): expose snapshot factories for table headers and status …
mcocdaa Jul 7, 2026
560b0cf
refactor(core-ui): unify settings and debug center tab layout
mcocdaa Jul 7, 2026
60af143
feat(core-ui): add shared page layout models
mcocdaa Jul 7, 2026
29afa7b
refactor(core-ui): port agent page to shared layout framework
mcocdaa Jul 7, 2026
32ba903
refactor(core-ui): route settings tabs through shared form layout
mcocdaa Jul 7, 2026
5aa841e
refactor(core-ui): standardize debug tables
mcocdaa Jul 7, 2026
f22bcc5
test(core-ui): add text fit guardrails
mcocdaa Jul 7, 2026
8935b1b
test(core-ui): generate standalone ui snapshots
mcocdaa Jul 7, 2026
20d38ee
test(core-ui): enforce ui framework architecture
mcocdaa Jul 7, 2026
2fe5117
refactor(core-ui): remove legacy layout math
mcocdaa Jul 7, 2026
2e016bc
feat(core-api): add GetModCooldownTicksLeft to read mod cooldown tick…
mcocdaa Jul 8, 2026
f6e392e
fix: rename AgentBusEvent.EventType to BusEventType to eliminate new …
mcocdaa Jul 8, 2026
ebcab9e
test: clarify SocialEventProposedEvent uses existing social event type
mcocdaa Jul 8, 2026
e304166
test(Core): update P6 ArchTests for removed player_dialogue_task prov…
mcocdaa Jul 8, 2026
23beaaf
fix: 5 events now call base constructor to preserve Timestamp and Npc…
mcocdaa Jul 8, 2026
07a0075
fix: AgentBusImpl.Unsubscribe(Action) now throws NotSupportedExceptio…
mcocdaa Jul 8, 2026
6e836d7
feat(core): add IBridgeModule interface for bridge mod contract
mcocdaa Jul 8, 2026
4135b23
fix: mark action-based unsubscribe obsolete on interface
mcocdaa Jul 8, 2026
5282d91
refactor: migrate EmbedCache from Domain/ValueObjects to Infrastructu…
mcocdaa Jul 8, 2026
1fc5acb
test: align StubAgentBus action unsubscribe with production behavior
mcocdaa Jul 8, 2026
acce815
chore: archive 14 legacy backup files from Source/backup to Refs/backup
mcocdaa Jul 8, 2026
23e1f3e
chore: remove dead MiddlewareOrder constants (LayerBuild, Retry, NpcC…
mcocdaa Jul 8, 2026
ce1af12
chore: move code_quality_report.json from Source to Refs/backup (anal…
mcocdaa Jul 8, 2026
3c61e61
refactor: unify Null* object usage to Instance singleton (was mixed n…
mcocdaa Jul 8, 2026
fccd4d2
fix: ProviderRegistry now uses ConcurrentDictionary for thread-safe p…
mcocdaa Jul 8, 2026
d06be36
fix: AgentBusImpl.EventTypeMap now uses ConcurrentDictionary for thre…
mcocdaa Jul 8, 2026
524bc19
fix: OutputGuardrailMiddleware now uses constants for Order and Owner…
mcocdaa Jul 8, 2026
b77894a
fix: ContextCacheManager.SetL1BlockCache now uses lock consistent wit…
mcocdaa Jul 8, 2026
3b76c3b
test: align ArchTests with completed Task 6 and Task 8 changes
mcocdaa Jul 8, 2026
45d391c
feat: add ConcurrentRegistryBase<TKey,TValue> to eliminate 7 Registry…
mcocdaa Jul 8, 2026
42b1728
feat: add MiddlewareBase<TContext> abstract base class to eliminate m…
mcocdaa Jul 9, 2026
a3c9bbc
feat: Result<TValue,TError> implements IEquatable with == and != oper…
mcocdaa Jul 9, 2026
5544729
refactor: merge ToolRiskLevel enum into RiskLevel (eliminate duplicate)
mcocdaa Jul 9, 2026
586432c
test: add contract verification for RimMindAPI.AddMiddleware<TContext…
mcocdaa Jul 9, 2026
b57fefb
docs: update AGENTS.md with r10 cleanup records and mark resolved kno…
mcocdaa Jul 9, 2026
609f883
feat(core-ui): make debug center overview default
mcocdaa Jul 9, 2026
c8ea029
feat(core-ui): add debug center overview snapshot
mcocdaa Jul 9, 2026
4d1df29
feat(core-ui): model agent workbench lifecycle events
mcocdaa Jul 9, 2026
6d2c58d
refactor(core-ui): lay out agent workbench panes
mcocdaa Jul 9, 2026
abaccb7
feat(core-ui): add shared debug table models
mcocdaa Jul 9, 2026
509cff3
test(core-ui): add mixed debug table snapshots
mcocdaa Jul 9, 2026
3ffc90b
refactor(core-ui): route debug pages through table models
mcocdaa Jul 9, 2026
d07adf3
test(core-ui): enforce debug center optimization coverage
mcocdaa Jul 9, 2026
1d762c6
refactor(core-ui): centralize debug center page metadata
mcocdaa Jul 9, 2026
07c1c04
test(core-ui): align debug center shell tests with registry metadata
mcocdaa Jul 9, 2026
51ed2d8
test(core-ui): harden debug center registry assertions
mcocdaa Jul 9, 2026
507530d
refactor(core-ui): make debug tables own row selection
mcocdaa Jul 9, 2026
89ef186
test(core-ui): align table layout arch tests with selectable drawer
mcocdaa Jul 9, 2026
d75f466
refactor(core-ui): harden selectable debug table rows
mcocdaa Jul 10, 2026
c885237
refactor(core-ui): build debug tables from runtime trace models
mcocdaa Jul 10, 2026
ef1e7f3
fix(core-ui): stabilize debug table trace snapshots
mcocdaa Jul 10, 2026
43aecec
fix(core-ui): finish toolcalls table builder migration
mcocdaa Jul 10, 2026
c1aa017
feat(core-ui): show runtime debug data in table pages
mcocdaa Jul 10, 2026
02f535c
fix(core-ui): localize debug table registry metadata
mcocdaa Jul 10, 2026
5db5cfc
refactor(core-ui): base debug table pages on shared drawer
mcocdaa Jul 10, 2026
88a9276
refactor(core-ui): route overview actions inside debug center
mcocdaa Jul 10, 2026
5453c74
refactor(core-ui): remove dead debug center agent layout
mcocdaa Jul 10, 2026
ab99f4d
test(core-ui): align debug center cleanup source gates
mcocdaa Jul 10, 2026
556bae7
fix(core-ui): harden debug center tables
mcocdaa Jul 10, 2026
0f05f71
fix(core): unify runtime request lifecycle and visibility
mcocdaa Jul 14, 2026
3101569
fix(core-ui): unify traces and async context previews
mcocdaa Jul 14, 2026
05ef87b
test(core-ui): verify debug center page registrations
mcocdaa Jul 14, 2026
c8ac0a3
refactor(core): extract layout autotest runner
mcocdaa Jul 14, 2026
d1d7af0
refactor(core): isolate async context layer outcomes
mcocdaa Jul 14, 2026
d7dc817
fix(core): expose cached provider faults to layer diagnostics
mcocdaa Jul 14, 2026
08ff3c1
test(core): exercise cached provider fault diagnostics
mcocdaa Jul 14, 2026
8ba5e2a
test(core): assert cached provider fault behavior
mcocdaa Jul 15, 2026
f4f38ef
refactor(core-ui): extract agent context preview coordinator
mcocdaa Jul 15, 2026
555566d
refactor(core-ui): coordinate flow lab async operations
mcocdaa Jul 15, 2026
1ca9d1e
fix(core-ui): isolate stale flow lab executions
mcocdaa Jul 15, 2026
c411a24
refactor(core): remove legacy client debug log wiring
mcocdaa Jul 15, 2026
66c0408
test(core): stabilize paused queue execution test
mcocdaa Jul 16, 2026
1e957ad
feat(core): add unified agent loop scheduler
mcocdaa Jul 16, 2026
9f54bdd
fix(core): serialize agent loop execution
mcocdaa Jul 16, 2026
9620db5
refactor(core): schedule scoped agents through runtime loop
mcocdaa Jul 16, 2026
0eb297e
fix(core): make scoped lifecycle exception safe
mcocdaa Jul 16, 2026
f81d206
fix(core): clean up failed scoped registrations
mcocdaa Jul 16, 2026
b11850c
refactor(core): register pawn agents with runtime scheduler
mcocdaa Jul 16, 2026
82c9bb7
fix(core): reconcile pawn agent loop ownership
mcocdaa Jul 16, 2026
76badad
refactor(core): make runtime component sole agent loop host
mcocdaa Jul 16, 2026
0bff5b1
fix(core): reset agent loop epochs safely
mcocdaa Jul 16, 2026
12b087e
fix(core): stop stale agent loop epochs
mcocdaa Jul 16, 2026
a4ab6d0
refactor(core): give agent bus a single flush owner
mcocdaa Jul 16, 2026
3335714
fix(core): order bus flush before queue callbacks
mcocdaa Jul 16, 2026
c8f6f4d
fix(core): reconcile agent bus tick ownership
mcocdaa Jul 16, 2026
42f9139
test(core): wait for queued request callbacks
mcocdaa Jul 16, 2026
8562a7d
feat(core): expose agent loop ownership diagnostics
mcocdaa Jul 16, 2026
75a695f
test(core): guard agent loop diagnostics wiring
mcocdaa Jul 16, 2026
1b81943
fix(core): localize agent loop diagnostics
mcocdaa Jul 16, 2026
8da26f2
fix(core): preserve new epoch pending ticks
mcocdaa Jul 16, 2026
ef2116d
fix(core): dispose replaced agent bus subscriptions
mcocdaa Jul 16, 2026
7bdabcd
chore(core): tighten quality gates and test compatibility
mcocdaa Jul 16, 2026
7d78796
refactor(core): harden request lifecycle and test visibility
mcocdaa Jul 19, 2026
fb19f56
fix(core): separate request lifetime from deadline
mcocdaa Jul 22, 2026
be72d51
feat: add lifecycle service foundation
mcocdaa Jul 22, 2026
6ab60b2
feat: complete lifecycle-aware runtime hard cut
mcocdaa Jul 26, 2026
8bd234f
test: cut over to compact core contracts
mcocdaa Jul 30, 2026
e096f46
refactor: complete lifecycle event and registry boundaries
mcocdaa Jul 30, 2026
6fb1d3a
refactor: finish generation-aware settings adapters
mcocdaa Jul 30, 2026
5e65cef
refactor: rebind agent windows by runtime generation
mcocdaa Jul 30, 2026
e2b05ca
refactor: make request and debug operations generation coherent
mcocdaa Jul 30, 2026
452b567
fix: keep settings and overlay operations generation coherent
mcocdaa Jul 30, 2026
fd3206d
test: remove approved retired tests
mcocdaa Jul 30, 2026
1ab200a
feat: default to DeepSeek V4 Flash
mcocdaa Jul 31, 2026
c5f8187
refactor: harden Core provider and runtime lifecycle
mcocdaa Jul 31, 2026
a83e379
fix: defer scenario translation until language load
mcocdaa Aug 1, 2026
28a800b
fix: stabilize NPC pipeline and debug center
mcocdaa Aug 1, 2026
856a3f3
fix: harden debug UI geometry and state
mcocdaa Aug 11, 2026
a17ad61
fix: measure debug overview content
mcocdaa Aug 11, 2026
31c3c9b
fix: show stable debug table empty states
mcocdaa Aug 11, 2026
67ea6f4
refactor: introduce request submission boundary
mcocdaa Aug 27, 2026
0cb0848
refactor: make request API a thin facade
mcocdaa Aug 27, 2026
3f1255f
refactor: consolidate request queue slice
mcocdaa Aug 27, 2026
1494d39
refactor: isolate request completion inbox
mcocdaa Aug 27, 2026
525423d
docs: map Core request slice
mcocdaa Aug 27, 2026
bfaa417
test: align queue source contract
mcocdaa Aug 27, 2026
7c8499d
refactor: organize Agent Flow Lab responsibilities
mcocdaa Aug 29, 2026
ac5722d
docs: map Agent Flow Lab responsibilities
mcocdaa Aug 29, 2026
16a2a84
refactor: organize Core debug actions
mcocdaa Aug 31, 2026
3044c42
docs: map Core debug action responsibilities
mcocdaa Aug 31, 2026
d60d2af
feat: expose owned provider registration
mcocdaa Sep 2, 2026
c1b2fa2
test: lock provider registration forwarding
mcocdaa Sep 2, 2026
a80c325
refactor: retire unused provider and context paths
mcocdaa Sep 14, 2026
111d1a8
docs: alias Claude instructions to AGENTS
mcocdaa Sep 16, 2026
91ea37b
fix(ui): repair drawing coordinates and implement in-game UI capture
mcocdaa Sep 20, 2026
9817979
feat(core): add behavior autotest runner, faction safety fixes and co…
mcocdaa Sep 20, 2026
36f3c68
feat(core): add RimMindSubmodBase, BehaviorAutotestSuiteBase, RimMind…
mcocdaa Sep 20, 2026
aa5b61a
feat(core): add context payload inspector, overlay settings, and opti…
mcocdaa Sep 21, 2026
1155bef
fix(core): add missing namespaces to ContextPayloadInspector and sepa…
mcocdaa Sep 21, 2026
20c87fc
fix(core): separate hub and loop generation check in CompPawnAgent an…
mcocdaa Sep 21, 2026
1201e88
feat(ui): overhaul tab layout, request overlay mini-pill, categorized…
mcocdaa Sep 21, 2026
acbda73
feat(core): enhance tabbed layout, settings presets, throttled reques…
mcocdaa Sep 21, 2026
2fff923
test(ui): add contract tests for tabbed layout bounds, overlay clampi…
mcocdaa Sep 21, 2026
34e97f4
feat(ui): add in-game UI interaction and click verification suite to …
mcocdaa Sep 21, 2026
2f5e78d
feat(ui): add real UI interaction driver, request overlay layout eval…
mcocdaa Sep 21, 2026
ad1d746
feat(ui): implement 11-step in-game UI interaction verification, mini…
mcocdaa Sep 21, 2026
4ab53e1
feat(network): support automatic x-opencode-session header for OpenCo…
mcocdaa Sep 21, 2026
149990c
revert(network): keep RimMind-Core provider-agnostic, delegate subscr…
mcocdaa Sep 21, 2026
fa9a02d
fix(settings): add backward-compatibility shim for RimMind.Core.Setti…
mcocdaa Sep 21, 2026
27bdcb7
fix(ui): restore native RimWorld button style and yellow highlight fo…
mcocdaa Sep 21, 2026
dce1bef
feat(ui): add provider presets, OpenCode Go quick setup, and ModelSer…
mcocdaa Sep 21, 2026
cdf5556
refactor(ui): convert static settings explanations to hover tooltips
mcocdaa Sep 21, 2026
bfe4513
fix(ui): resolve custom prompt editing, fix textarea height, and enfo…
mcocdaa Sep 21, 2026
20be0ae
fix(ui): center restore defaults button and remove dark floating back…
mcocdaa Sep 21, 2026
b67fa77
feat(debug): add Test Live AI Request alias for Payload Inspector in …
mcocdaa Sep 21, 2026
c48dbca
feat(ui): unify settings styling, native pressed buttons, streamlined…
mcocdaa Sep 22, 2026
d50bc72
fix(ui): polish header text padding, slider value badges, and masked …
mcocdaa Sep 22, 2026
9d819c5
fix(ui): eliminate dynamic status text and standardize native button …
mcocdaa Sep 22, 2026
0ac3be3
fix(ui): eliminate text clipping and ghosting in Agents and Overview …
mcocdaa Sep 22, 2026
7e9e03a
fix(client): automatically attach x-opencode-session header for OpenC…
mcocdaa Sep 22, 2026
5914849
feat(core): decouple provider presets and delegate extended service p…
mcocdaa Sep 22, 2026
1e30849
fix(core): repair ProviderRegistryContracts syntax and UiLifecycleCon…
mcocdaa Sep 22, 2026
408a47e
fix(core): thread-safe pawn lookup caching and remove double trace ro…
mcocdaa Sep 22, 2026
96b8798
feat(ui): format activity stream trace rows and add rich structured t…
mcocdaa Sep 22, 2026
3b9ee36
feat(core): support nested toolcall deserialization and express_dialo…
mcocdaa Sep 23, 2026
7b591ed
fix(trace): refine express_dialogue formatting and idempotent tool tr…
mcocdaa Sep 23, 2026
ab2617f
feat(context): implement 4-zone prompt caching architecture and deter…
mcocdaa Sep 23, 2026
857a2c5
feat(autotest): add TenDayPlaythroughRunner for live 10-day simulatio…
mcocdaa Sep 23, 2026
05ba89f
feat(core): implement unified activity frequency scale slider and API…
mcocdaa Sep 24, 2026
486ca4c
fix(runner,ui): improve playthrough robustness, agent decision loop, …
mcocdaa Sep 24, 2026
cef641c
feat(agent,hub): support auto-activating colonist agents, one-click a…
mcocdaa Sep 24, 2026
1ef28f5
fix(ui): eliminate duplicate primary state button in agent detail panel
mcocdaa Sep 24, 2026
bff35a5
merge: resolve conflicts with origin/main (runtime-safe test & releas…
mcocdaa Sep 24, 2026
e3938b9
docs(steam): modernize INTRODUCTION.txt with concise bilingual Steam …
mcocdaa Sep 24, 2026
45a83b2
ci: add Dependabot configuration for GitHub Actions dependency updates
mcocdaa Sep 24, 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
  •  
  •  
  •  
2 changes: 1 addition & 1 deletion .coderabbit.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -63,4 +63,4 @@ knowledge_base:
issues:
scope: local
pull_requests:
scope: local
scope: local
10 changes: 10 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
# Dependabot configuration for GitHub Actions
version: 2
updates:
- package-ecosystem: "github-actions"
directory: "/"
schedule:
interval: "monthly"
commit-message:
prefix: "ci(deps)"
open-pull-requests-limit: 5
4 changes: 2 additions & 2 deletions .github/scripts/analyze_release.py
Original file line number Diff line number Diff line change
Expand Up @@ -107,7 +107,7 @@ def generate_fallback_notes(prs: list, commits: str) -> tuple:
lines = [f"- {pr.get('title', '无标题')}" for pr in prs]
if not lines:
lines = ["- 常规代码更新与维护"]

notes_zh = "### 变更内容\n" + "\n".join(lines)
notes_en = "### Changes\n" + "\n".join(lines)
return notes_zh, notes_en
Expand Down Expand Up @@ -171,4 +171,4 @@ def main():
f.write(combined_notes)

if __name__ == "__main__":
main()
main()
1 change: 0 additions & 1 deletion .github/workflows/pr-review.yml
Original file line number Diff line number Diff line change
@@ -1 +0,0 @@

8 changes: 8 additions & 0 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
default_stages: [pre-commit]

repos:
# - repo: https://github.com/pre-commit/pre-commit-hooks
- repo: https://gitlab.cern.ch/pre-commit-hook-mirrors/pre-commit/pre-commit-hooks
Expand All @@ -10,6 +12,12 @@ repos:
- id: check-yaml
- id: debug-statements
- id: end-of-file-fixer
# Windows represents Git symlinks as target text; a newline changes the target.
exclude: '(^|/)CLAUDE\.md$'
- id: mixed-line-ending
- id: requirements-txt-fixer
- id: trailing-whitespace
- repo: https://github.com/mcocdaa/ai-commit.git
rev: v1.0.2
hooks:
- id: ai-commit
887 changes: 51 additions & 836 deletions AGENTS.md

Large diffs are not rendered by default.

36 changes: 18 additions & 18 deletions About/About.xml
Original file line number Diff line number Diff line change
@@ -1,21 +1,21 @@
<?xml version="1.0" encoding="utf-8"?>
<ModMetaData>
<name>RimMind - Core</name>
<author>mcocdaa</author>
<packageId>mcocdaa.RimMindCore</packageId>
<modVersion>0.0.1</modVersion>
<supportedVersions>
<li>1.6</li>
</supportedVersions>
<description>Infrastructure for AI-powered RimWorld mods. Provides LLM client, async request queue, game context builders, and debug tooling. Required by all RimMind suite components.</description>
<modDependencies>
<li>
<packageId>brrainz.harmony</packageId>
<displayName>Harmony</displayName>
<steamWorkshopUrl>steam://url/CommunityFilePage/2009463077</steamWorkshopUrl>
</li>
</modDependencies>
<loadAfter>
<li>brrainz.harmony</li>
</loadAfter>
<name>RimMind - Core</name>
<author>mcocdaa</author>
<packageId>mcocdaa.RimMindCore</packageId>
<modVersion>2.0.0</modVersion>
<supportedVersions>
<li>1.6</li>
</supportedVersions>
<description>Infrastructure for AI-powered RimWorld mods. Provides LLM client, async request queue, game context builders, and debug tooling. Required by all RimMind suite components. v2.0 uses a three-DLL loading architecture (0_RimMindDomain, 1_RimMindApplication, 2_RimMindCore) for modular assembly loading. [v2.0 BREAKING CHANGES] Save games from v1.x are NOT compatible with v2.0.</description>
<modDependencies>
<li>
<packageId>brrainz.harmony</packageId>
<displayName>Harmony</displayName>
<steamWorkshopUrl>steam://url/CommunityFilePage/2009463077</steamWorkshopUrl>
</li>
</modDependencies>
<loadAfter>
<li>brrainz.harmony</li>
</loadAfter>
</ModMetaData>
2 changes: 1 addition & 1 deletion About/PublishedFileId.txt
Original file line number Diff line number Diff line change
@@ -1 +1 @@
3707741395
3707741395
171 changes: 171 additions & 0 deletions ArchTests/ArchTestExtensions.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,171 @@
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Reflection;
using System.Reflection.Metadata;
using System.Reflection.PortableExecutable;
using System.Xml.Linq;
using NetArchTest.Rules;

namespace RimMind.Core.ArchTests
{
public static class ArchTestExtensions
{
public static string FormatFailingTypes(this TestResult result)
{
if (result.IsSuccessful)
return string.Empty;

var names = result.FailingTypes?
.Select(t => t.FullName ?? t.Name)
.OrderBy(n => n)
?? Enumerable.Empty<string>();

return string.Join("\n ", names);
}

public static string FormatFailingTypes(this IEnumerable<Type> types)
{
var names = types
.Select(t => t.FullName ?? t.Name)
.OrderBy(n => n);

return string.Join("\n ", names);
}

public static string FindSourceDirectory()
{
var dir = Path.GetDirectoryName(typeof(ArchTestExtensions).Assembly.Location);
while (dir != null)
{
var candidate = Path.Combine(dir, "RimMind-Core", "Source");
if (Directory.Exists(candidate)) return candidate;

candidate = Path.Combine(dir, "Source");
if (Directory.Exists(candidate)) return candidate;

dir = Directory.GetParent(dir)?.FullName;
}
return "";
}

public static string LocateAssembly(string fileName)
{
var sourceDir = FindSourceDirectory();
var gameVersion = "1.6";

var candidates = new List<string>();

if (!string.IsNullOrEmpty(sourceDir))
{
candidates.Add(Path.Combine(sourceDir, "..", gameVersion, "Assemblies", fileName));
candidates.Add(Path.Combine(sourceDir, "..", "Assemblies", fileName));
}

candidates.Add(Path.Combine(AppContext.BaseDirectory, fileName));

foreach (var candidate in candidates)
{
var full = Path.GetFullPath(candidate);
if (File.Exists(full))
return full;
}

throw new FileNotFoundException(
$"R-D: 找不到 {fileName}。搜索路径:\n {string.Join("\n ", candidates.Select(Path.GetFullPath))}\n" +
"请先构建三个源码项目: dotnet build RimMind-Core/Source/Domain/RimMindCore.Domain.csproj 等");
}

public static bool TryLocateAssembly(string fileName, out string? path)
{
path = null;
try
{
path = LocateAssembly(fileName);
return true;
}
catch (FileNotFoundException)
{
return false;
}
}

public static HashSet<string> GetAssemblyReferences(string assemblyPath)
{
var refs = new HashSet<string>(StringComparer.OrdinalIgnoreCase);

using var stream = File.OpenRead(assemblyPath);
using var peReader = new PEReader(stream);
var metadataReader = peReader.GetMetadataReader();

foreach (var handle in metadataReader.AssemblyReferences)
{
var asmRef = metadataReader.GetAssemblyReference(handle);
var name = metadataReader.GetString(asmRef.Name);
refs.Add(name);
}

return refs;
}

public static CsprojAnalysis AnalyzeCsproj(string csprojPath)
{
if (!File.Exists(csprojPath))
throw new FileNotFoundException($"csproj not found: {csprojPath}");

var doc = XDocument.Load(csprojPath);
var ns = doc.Root?.Name.Namespace ?? XNamespace.None;

var packageRefs = doc.Descendants(ns + "PackageReference")
.Select(el => new PackageRef
{
Include = el.Attribute("Include")?.Value ?? "",
Version = el.Attribute("Version")?.Value ?? el.Element(ns + "Version")?.Value ?? ""
})
.ToList();

var projectRefs = doc.Descendants(ns + "ProjectReference")
.Select(el => el.Attribute("Include")?.Value ?? "")
.ToList();

var assemblyName = doc.Descendants(ns + "AssemblyName")
.Select(el => el.Value)
.FirstOrDefault() ?? Path.GetFileNameWithoutExtension(csprojPath);

var targetFramework = doc.Descendants(ns + "TargetFramework")
.Select(el => el.Value)
.FirstOrDefault() ?? "";

return new CsprojAnalysis
{
Path = csprojPath,
AssemblyName = assemblyName,
TargetFramework = targetFramework,
PackageReferences = packageRefs,
ProjectReferences = projectRefs
};
}
}

public class CsprojAnalysis
{
public string Path { get; set; } = "";
public string AssemblyName { get; set; } = "";
public string TargetFramework { get; set; } = "";
public List<PackageRef> PackageReferences { get; set; } = new();
public List<string> ProjectReferences { get; set; } = new();

public bool HasPackageRef(string name) =>
PackageReferences.Any(pr => string.Equals(pr.Include, name, StringComparison.OrdinalIgnoreCase));

public bool HasProjectRef(string name) =>
ProjectReferences.Any(pr => pr.Contains(name, StringComparison.OrdinalIgnoreCase));
}

public class PackageRef
{
public string Include { get; set; } = "";
public string Version { get; set; } = "";
}
}
Loading