Commit graph

391 commits

Author SHA1 Message Date
Michael Dieringer
f120ca7960
Merge pull request #68 from Curabis/rule/source-organized-by-feature-not-object-type
[BCQuality] AL source organized by feature, not object type
2026-08-13 08:13:42 +02:00
Michael Dieringer
eda9bc1e67
Merge pull request #69 from Curabis/rule/upgrade-tag-logic-must-not-nest-deeply
[BCQuality] Upgrade tag logic must not nest more than 2 levels deep
2026-08-13 08:13:19 +02:00
Michael Dieringer
06f417b37e
Merge pull request #66 from Curabis/rule/testcase-must-fail-before-implementation-sharpen-fgwt
[BCQuality] Sharpen TDD rule: 1-to-n FGWT scenarios + reject test-on-request alternative
2026-08-13 08:13:05 +02:00
Michael Dieringer
7e703b93d5 Forslag: upgrade-tag-logic-must-not-nest-deeply 2026-08-13 08:11:54 +02:00
Michael Dieringer
603176f593 Forslag: source-organized-by-feature-not-object-type 2026-08-13 08:11:53 +02:00
Michael Dieringer
90eeb1991c Skaerp: 1-til-n FGWT scenarier + explicit afvisning af 'test kun paa anmodning' 2026-08-13 08:08:30 +02:00
Michael Dieringer
0c148a16a6
Merge pull request #65 from Curabis/rule/setup-page-onopenpage-must-instantiate-singleton
[BCQuality] Sharpen: Setup-page OnOpenPage must instantiate the singleton record
2026-08-13 07:39:23 +02:00
Michael Dieringer
16f3cd0aee Sharpen: Setup-page OnOpenPage must instantiate the singleton record 2026-08-13 07:38:53 +02:00
Michael Dieringer
14ac4485c8
Merge pull request #64 from Curabis/rule/al-comments-must-not-restate-what-code-already-shows
Forslag: AL-kommentarer maa ikke bare genfortaelle koden
2026-08-13 07:19:09 +02:00
Michael Dieringer
3df1d630d4 Forslag: AL-kommentarer maa ikke bare genfortaelle koden 2026-08-13 07:18:15 +02:00
Michael Dieringer
46fcd29f3a
Merge pull request #63 from Curabis/rule/given-blocks-must-cover-full-precondition-chain
[BCQuality] GIVEN blocks must cover the full precondition chain for posting/report tests
2026-08-13 07:17:29 +02:00
Michael Dieringer
a74b8e35f3 Forslag: GIVEN-blokke skal daekke hele precondition-kaeden for posting/rapporter 2026-08-13 07:14:01 +02:00
Michael Dieringer
13c7d4e198
Merge pull request #61 from Curabis/rule/file-datatype-direct-io-is-onprem-only
[BCQuality] File data type's direct I/O methods are OnPrem-only
2026-08-13 07:02:24 +02:00
Michael Dieringer
31d1c6d10b
Merge pull request #62 from Curabis/rule/prefer-email-module-over-codeunit-mail-397
[BCQuality] New email-sending code should use the Email module, not Codeunit Mail (397)
2026-08-13 07:02:02 +02:00
Michael Dieringer
860f2db01b Forslag: prefer-email-module-over-codeunit-mail-397 2026-08-13 06:56:40 +02:00
Michael Dieringer
10af99bb22 Forslag: file-datatype-direct-io-is-onprem-only 2026-08-13 06:56:39 +02:00
Michael Dieringer
6874adb4e9
Merge pull request #60 from Curabis/rule/dimension-support-must-follow-dimensionmanagement-wiring-pattern
[BCQuality] Dimension support must follow the DimensionManagement wiring pattern
2026-08-13 06:32:48 +02:00
Michael Dieringer
0d578e9f3d Forslag: dimension-support skal foelge DimensionManagement-wiring-moensteret 2026-08-13 06:31:46 +02:00
Michael Dieringer
2f575ced25
Merge pull request #59 from Curabis/rule/posting-routines-must-follow-check-post-line-batch-pattern
[BCQuality] Posting routines must follow the Check Line/Post Line/Post Batch pattern
2026-08-13 06:27:55 +02:00
Michael Dieringer
7e70c4aa5d Forslag: posting-rutiner skal foelge Check Line/Post Line/Post Batch-moensteret 2026-08-13 06:25:20 +02:00
Michael Dieringer
4bb14fb821
Merge pull request #48 from Curabis/rule/table-design-must-match-bc-table-type-conventions
[BCQuality] BC table-type conventions (naming, primary key, pages)
2026-08-13 06:09:42 +02:00
Michael Dieringer
10ff2449f6
Merge pull request #49 from Curabis/rule/page-design-must-match-bc-page-type-conventions
[BCQuality] BC page-type conventions (naming, structure, links)
2026-08-13 06:09:26 +02:00
Michael Dieringer
fba0ff2a26
Merge pull request #50 from Curabis/rule/intrinsic-al-functions-must-use-modern-casing
[BCQuality] Intrinsic AL function calls use modern casing, not ALL-CAPS
2026-08-13 06:09:02 +02:00
Michael Dieringer
d7001e0e23
Merge pull request #51 from Curabis/rule/binary-choice-must-be-boolean
[BCQuality] Binary yes/no choices must be Boolean, not Option/Integer
2026-08-13 06:08:37 +02:00
Michael Dieringer
9d4126ac34
Merge pull request #52 from Curabis/rule/fixed-choice-set-must-use-enum-not-integer
[BCQuality] Fixed choice sets must use Enum, not raw Integer
2026-08-13 06:08:10 +02:00
Michael Dieringer
87c7b6aaa2
Merge pull request #53 from Curabis/rule/variable-names-must-be-semantically-descriptive
[BCQuality] Variable names must be semantically descriptive, not type+number
2026-08-13 06:07:44 +02:00
Michael Dieringer
be75cf8e70
Merge pull request #54 from Curabis/rule/var-parameters-require-an-addressable-variable
[BCQuality] var parameters require an addressable variable, not a literal
2026-08-13 06:07:16 +02:00
Michael Dieringer
336fca3d10
Merge pull request #55 from Curabis/rule/code-must-not-change-workdate
[BCQuality] Application code must not change the WorkDate
2026-08-13 06:06:57 +02:00
Michael Dieringer
c79908a695
Merge pull request #56 from Curabis/rule/ambiguous-record-failure-handling-must-be-clarified
[BCQuality] Ambiguous record-failure handling must be clarified, not guessed
2026-08-13 06:06:28 +02:00
Michael Dieringer
5e55e5b197
Merge pull request #57 from Curabis/rule/document-reports-should-default-to-word-layout
[BCQuality] Document reports should default to Word layout, not RDLC
2026-08-13 06:05:56 +02:00
Michael Dieringer
2767d0a8c3
Merge pull request #58 from Curabis/rule/pictures-must-use-media-not-blob
[BCQuality] Pictures must use Media/MediaSet, not BLOB
2026-08-13 06:05:40 +02:00
Michael Dieringer
c14a7189c8 Forslag: billeder skal gemmes i Media/MediaSet, ikke BLOB 2026-08-12 23:02:31 +02:00
Michael Dieringer
f4a1108209 Forslag: dokumentrapporter skal defaulte til Word layout, ikke RDLC 2026-08-12 22:57:57 +02:00
Michael Dieringer
e61c3db041 Forslag: ambiguous-record-failure-handling-must-be-clarified 2026-08-12 22:51:15 +02:00
Michael Dieringer
f2d6674391 Forslag: code-must-not-change-workdate 2026-08-12 22:51:14 +02:00
Michael Dieringer
bed13b9b60 Forslag: var-parametre kraever en adresserbar variabel, ikke literal/udtryk 2026-08-12 22:44:57 +02:00
Michael Dieringer
35c29f6af3 Udvid undtagelse: s/c i Dialog/Window progress-idiom er ogsaa accepteret 2026-08-12 22:37:28 +02:00
Michael Dieringer
c06effd01e Forslag: variable-names-must-be-semantically-descriptive 2026-08-12 22:30:50 +02:00
Michael Dieringer
e7f9d9f87a Forslag: fixed-choice-set-must-use-enum-not-integer 2026-08-12 22:30:48 +02:00
Michael Dieringer
a06b684e87 Forslag: binary-choice-must-be-boolean 2026-08-12 22:30:47 +02:00
Michael Dieringer
943d1ac6ee Forslag: intrinsic AL-funktionskald skal bruge moderne casing, ikke ALL-CAPS 2026-08-12 22:17:42 +02:00
Michael Dieringer
19e3bb7c72 Ret: tilfoej Design Pages Best Practices (s.112) + fjern duplikeret afsnit 2026-08-12 22:09:24 +02:00
Michael Dieringer
8ef8209cce Forslag: BC page-type conventions (naming, structure, links) 2026-08-12 22:04:51 +02:00
Michael Dieringer
052288bc9b Forslag: BC table-type conventions (naming, PK, pages) 2026-08-12 21:58:50 +02:00
Michael Dieringer
02f0d49654
Merge pull request #47 from Curabis/rule/al-mcp-build-publish-projectpath-must-be-absolute
[BCQuality] al MCP build/publish require absolute projectPath
2026-08-10 11:46:22 +02:00
Michael Dieringer
d1fec64533 Foreslå regel: al MCP build/publish kræver absolut projectPath 2026-08-10 11:41:26 +02:00
Michael Dieringer
4c225c4ac3 EXPERIMENTAL, UNTESTED: explicit session close (DELETE) before reinitializing
Neither of the bridge's two "clear sessionId and reinitialize" paths ever
told BC the old session was actually done - they just drop the local
sessionId variable and let a fresh session get issued on the next call.
The MCP Streamable HTTP transport spec defines an explicit way to end a
session: an HTTP DELETE to the endpoint carrying the session's
Mcp-Session-Id. The bridge has never called it.

Trying this as a candidate fix for the recurring Internal_CompanyNotFound
pattern documented in bc-mcp-company-header-must-match-exact-company-name.md:
a client-side session reset (clear sessionId + reinitialize) does NOT clear
the error, but a manual save on the BC-side MCP Server Configuration record
does. If BC's server-side session state is what's actually stuck, an
explicit close might do the same job the manual config-save has been doing
by accident.

Committed before live-testing (not after) specifically so it survives the
next sync-bcquality-knowledge.ps1 run instead of being silently overwritten
from the old source - this is a durability commit, not a confirmed-fix
commit. Best-effort and silent on failure: if BC responds 404/405 (DELETE
not implemented), that's evidence for the MS support escalation, not a bug
here. Update this commit's status (confirmed working / confirmed no effect
/ reverted) once tested against a live recurrence.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-07 21:42:08 +02:00
Michael Dieringer
2ce2697010 Record candidate workaround: MCP Server Configuration save correlates with recovery
New follow-up section, distinct from the 2026-08-03 "ruled out" static
verification (Aktiv/Standard confirmed on, unchanged). This is about the
save/toggle *action* on CURABIS_DEV's MCP Server Configuration page, not
its resting state - not previously tested.

Observed 2026-08-07 (MID): Internal_CompanyNotFound recurred. VS Code
restart + retry failed (consistent with the already-falsified restart
theory). Toggling the Standard field on CURABIS_DEV and saving, then
retrying, worked immediately. MID reports having seen this same pattern -
restart-retry fails, config-touch-retry succeeds - on prior occasions.

Framed explicitly as a candidate, not a confirmed fix: n>=2 informal
observations, toggle direction untested (MID's own read is that direction
is probably irrelevant, pointing at the save/republish action busting a
server-side cache rather than at the field's value), and no baseline
established against the error's already-documented intermittency. Does
not override the Microsoft-support-escalation guidance - if anything it's
supporting evidence for that escalation, since a CURABIS-side config touch
masking a BC-side symptom points at BC's MCP session/cache layer.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-07 14:06:31 +02:00
Michael Dieringer
b5e81a82fe Merge remote-tracking branch 'origin/stable' 2026-08-07 12:58:44 +02:00
Michael Dieringer
aaf80dd286 Fix: restore retraction content lost in bad merge resolution
PR #36 (merge dd4dc4e) merged 'stable' into the fix branch before merging
back, and that intermediate merge silently resolved the conflict in favor
of stable's older content instead of the fix branch's. Result: 8e85976's
retraction (drop the falsified "restart Claude Code" theory, confirm
MS-support escalation) is reachable in history but never actually landed
in stable's tree - the blob at 3142ce8 was byte-identical to 73e5a01
(pre-fix). Discovered live while troubleshooting a real Internal_CompanyNotFound
recurrence on 2026-08-07: the mirrored knowledge file still told the
developer to restart Claude Code, the exact theory 8e85976 falsified.

Restores the file to 8e85976's blob content directly - no merge needed,
just the correct final state.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-07 12:45:48 +02:00