sync SVN r18140

This commit is contained in:
2026-09-16 14:33:43 +03:00
parent f9e195c9e3
commit edbcfcd63f
8 changed files with 331 additions and 13 deletions

View File

@@ -12,6 +12,8 @@
<style><![CDATA[]]> <style><![CDATA[]]>
<expr><![CDATA[ORIENTATION=1 <expr><![CDATA[ORIENTATION=1
PAPERSIZE=9 PAPERSIZE=9
PAPERLENGTH=2794
PAPERWIDTH=2159
COLOR=2 COLOR=2
]]> ]]>
<supexpr><![CDATA[]]> <supexpr><![CDATA[]]>
@@ -1099,7 +1101,7 @@ COLOR=2
<user><![CDATA[]]> <user><![CDATA[]]>
</Reportes> </Reportes>
<Reportes <Reportes
platform="WINDOWS " uniqueid="" timestamp="0" objtype="8" objcode="0" name="" vpos="15625.000" hpos="1875.000" height="3333.333" width="108229.170" order="" unique=".F." environ=".F." boxchar=" " fillchar="C" pengreen="0" penblue="0" fillred="255" fillgreen="255" fillblue="255" pensize="0" penpat="0" fillpat="0" fontface="Arial Narrow" fontstyle="0" fontsize="8" mode="1" ruler="0" rulerlines="0" grid=".F." gridv="0" gridh="0" float=".F." stretch=".F." stretchtop=".F." top=".T." bottom=".F." suptype="0" suprest="0" norepeat=".F." resetrpt="0" pagebreak=".F." colbreak=".F." resetpage=".F." general="0" spacing="2" double=".T." swapheader=".F." swapfooter=".F." ejectbefor=".F." ejectafter=".F." plain=".F." summary=".F." addalias=".F." offset="0" topmargin="0" botmargin="0" totaltype="0" resettotal="1" resoid="1" curpos=".T." supalways=".T." supovflow=".F." suprpcol="0" supgroup="0" supvalchng=".F." platform="WINDOWS " uniqueid="" timestamp="0" objtype="8" objcode="0" name="" vpos="15625.000" hpos="1875.000" height="3333.333" width="108229.170" order="" unique=".F." environ=".F." boxchar=" " fillchar="C" pengreen="0" penblue="0" fillred="255" fillgreen="255" fillblue="255" pensize="0" penpat="0" fillpat="0" fontface="Arial Narrow" fontstyle="0" fontsize="8" mode="1" ruler="0" rulerlines="0" grid=".F." gridv="0" gridh="0" float=".F." stretch=".F." stretchtop=".F." top=".T." bottom=".F." suptype="0" suprest="0" norepeat=".F." resetrpt="0" pagebreak=".F." colbreak=".F." resetpage=".F." general="0" spacing="2" double=".T." swapheader=".F." swapfooter=".F." ejectbefor=".F." ejectafter=".F." plain=".F." summary=".F." addalias=".F." offset="0" topmargin="0" botmargin="0" totaltype="0" resettotal="1" resoid="1" curpos=".F." supalways=".T." supovflow=".F." suprpcol="0" supgroup="0" supvalchng=".F."
<picture><![CDATA[]]> <picture><![CDATA[]]>
<tag><![CDATA[]]> <tag><![CDATA[]]>
<tag2><![CDATA[]]> <tag2><![CDATA[]]>
@@ -1279,7 +1281,7 @@ COLOR=2
<user><![CDATA[]]> <user><![CDATA[]]>
</Reportes> </Reportes>
<Reportes <Reportes
platform="WINDOWS " uniqueid="" timestamp="0" objtype="18" objcode="0" name="wincasari" vpos="0.000" hpos="0.000" height="0.000" width="0.000" order="" unique=".T." environ=".F." boxchar=" " fillchar=" " pengreen="0" penblue="0" fillred="0" fillgreen="0" fillblue="0" pensize="0" penpat="0" fillpat="0" fontface="" fontstyle="0" fontsize="0" mode="0" ruler="0" rulerlines="0" grid=".F." gridv="0" gridh="0" float=".F." stretch=".F." stretchtop=".F." top=".F." bottom=".F." suptype="0" suprest="0" norepeat=".F." resetrpt="0" pagebreak=".F." colbreak=".F." resetpage=".F." general="0" spacing="0" double=".F." swapheader=".F." swapfooter=".F." ejectbefor=".F." ejectafter=".F." plain=".F." summary=".F." addalias=".F." offset="0" topmargin="0" botmargin="0" totaltype="2" resettotal="6" resoid="0" curpos=".F." supalways=".F." supovflow=".F." suprpcol="0" supgroup="0" supvalchng=".F." platform="WINDOWS " uniqueid="" timestamp="0" objtype="18" objcode="0" name="wincasari" vpos="0.000" hpos="0.000" height="0.000" width="0.000" order="" unique=".T." environ=".F." boxchar=" " fillchar=" " pengreen="0" penblue="0" fillred="0" fillgreen="0" fillblue="0" pensize="0" penpat="0" fillpat="0" fontface="" fontstyle="0" fontsize="0" mode="0" ruler="0" rulerlines="0" grid=".F." gridv="0" gridh="0" float=".F." stretch=".F." stretchtop=".F." top=".F." bottom=".F." suptype="0" suprest="0" norepeat=".F." resetrpt="0" pagebreak=".F." colbreak=".F." resetpage=".F." general="0" spacing="0" double=".F." swapheader=".F." swapfooter=".F." ejectbefor=".F." ejectafter=".F." plain=".F." summary=".F." addalias=".F." offset="0" topmargin="0" botmargin="0" totaltype="2" resettotal="7" resoid="0" curpos=".F." supalways=".F." supovflow=".F." suprpcol="0" supgroup="0" supvalchng=".F."
<picture><![CDATA[]]> <picture><![CDATA[]]>
<tag><![CDATA[0]]> <tag><![CDATA[0]]>
<tag2><![CDATA[]]> <tag2><![CDATA[]]>
@@ -1291,7 +1293,7 @@ COLOR=2
<user><![CDATA[]]> <user><![CDATA[]]>
</Reportes> </Reportes>
<Reportes <Reportes
platform="WINDOWS " uniqueid="" timestamp="0" objtype="18" objcode="0" name="wplati" vpos="0.000" hpos="0.000" height="0.000" width="0.000" order="" unique=".T." environ=".F." boxchar=" " fillchar=" " pengreen="0" penblue="0" fillred="0" fillgreen="0" fillblue="0" pensize="0" penpat="0" fillpat="0" fontface="" fontstyle="0" fontsize="0" mode="0" ruler="0" rulerlines="0" grid=".F." gridv="0" gridh="0" float=".F." stretch=".F." stretchtop=".F." top=".F." bottom=".F." suptype="0" suprest="0" norepeat=".F." resetrpt="0" pagebreak=".F." colbreak=".F." resetpage=".F." general="0" spacing="0" double=".F." swapheader=".F." swapfooter=".F." ejectbefor=".F." ejectafter=".F." plain=".F." summary=".F." addalias=".F." offset="0" topmargin="0" botmargin="0" totaltype="2" resettotal="6" resoid="0" curpos=".F." supalways=".F." supovflow=".F." suprpcol="0" supgroup="0" supvalchng=".F." platform="WINDOWS " uniqueid="" timestamp="0" objtype="18" objcode="0" name="wplati" vpos="0.000" hpos="0.000" height="0.000" width="0.000" order="" unique=".T." environ=".F." boxchar=" " fillchar=" " pengreen="0" penblue="0" fillred="0" fillgreen="0" fillblue="0" pensize="0" penpat="0" fillpat="0" fontface="" fontstyle="0" fontsize="0" mode="0" ruler="0" rulerlines="0" grid=".F." gridv="0" gridh="0" float=".F." stretch=".F." stretchtop=".F." top=".F." bottom=".F." suptype="0" suprest="0" norepeat=".F." resetrpt="0" pagebreak=".F." colbreak=".F." resetpage=".F." general="0" spacing="0" double=".F." swapheader=".F." swapfooter=".F." ejectbefor=".F." ejectafter=".F." plain=".F." summary=".F." addalias=".F." offset="0" topmargin="0" botmargin="0" totaltype="2" resettotal="7" resoid="0" curpos=".F." supalways=".F." supovflow=".F." suprpcol="0" supgroup="0" supvalchng=".F."
<picture><![CDATA[]]> <picture><![CDATA[]]>
<tag><![CDATA[0]]> <tag><![CDATA[0]]>
<tag2><![CDATA[]]> <tag2><![CDATA[]]>
@@ -1303,7 +1305,7 @@ COLOR=2
<user><![CDATA[]]> <user><![CDATA[]]>
</Reportes> </Reportes>
<Reportes <Reportes
platform="WINDOWS " uniqueid="" timestamp="0" objtype="18" objcode="0" name="tincasari" vpos="0.000" hpos="0.000" height="0.000" width="0.000" order="" unique=".T." environ=".F." boxchar=" " fillchar=" " pengreen="0" penblue="0" fillred="0" fillgreen="0" fillblue="0" pensize="0" penpat="0" fillpat="0" fontface="" fontstyle="0" fontsize="0" mode="0" ruler="0" rulerlines="0" grid=".F." gridv="0" gridh="0" float=".F." stretch=".F." stretchtop=".F." top=".F." bottom=".F." suptype="0" suprest="0" norepeat=".F." resetrpt="0" pagebreak=".F." colbreak=".F." resetpage=".F." general="0" spacing="0" double=".F." swapheader=".F." swapfooter=".F." ejectbefor=".F." ejectafter=".F." plain=".F." summary=".F." addalias=".F." offset="0" topmargin="0" botmargin="0" totaltype="2" resettotal="1" resoid="0" curpos=".F." supalways=".F." supovflow=".F." suprpcol="0" supgroup="0" supvalchng=".F." platform="WINDOWS " uniqueid="" timestamp="0" objtype="18" objcode="0" name="tincasari" vpos="0.000" hpos="0.000" height="0.000" width="0.000" order="" unique=".T." environ=".F." boxchar=" " fillchar=" " pengreen="0" penblue="0" fillred="0" fillgreen="0" fillblue="0" pensize="0" penpat="0" fillpat="0" fontface="" fontstyle="0" fontsize="0" mode="0" ruler="0" rulerlines="0" grid=".F." gridv="0" gridh="0" float=".F." stretch=".F." stretchtop=".F." top=".F." bottom=".F." suptype="0" suprest="0" norepeat=".F." resetrpt="0" pagebreak=".F." colbreak=".F." resetpage=".F." general="0" spacing="0" double=".F." swapheader=".F." swapfooter=".F." ejectbefor=".F." ejectafter=".F." plain=".F." summary=".F." addalias=".F." offset="0" topmargin="0" botmargin="0" totaltype="2" resettotal="6" resoid="0" curpos=".F." supalways=".F." supovflow=".F." suprpcol="0" supgroup="0" supvalchng=".F."
<picture><![CDATA[]]> <picture><![CDATA[]]>
<tag><![CDATA[pnprecdeb]]> <tag><![CDATA[pnprecdeb]]>
<tag2><![CDATA[]]> <tag2><![CDATA[]]>
@@ -1315,7 +1317,7 @@ COLOR=2
<user><![CDATA[]]> <user><![CDATA[]]>
</Reportes> </Reportes>
<Reportes <Reportes
platform="WINDOWS " uniqueid="" timestamp="0" objtype="18" objcode="0" name="tplati" vpos="0.000" hpos="0.000" height="0.000" width="0.000" order="" unique=".T." environ=".F." boxchar=" " fillchar=" " pengreen="0" penblue="0" fillred="0" fillgreen="0" fillblue="0" pensize="0" penpat="0" fillpat="0" fontface="" fontstyle="0" fontsize="0" mode="0" ruler="0" rulerlines="0" grid=".F." gridv="0" gridh="0" float=".F." stretch=".F." stretchtop=".F." top=".F." bottom=".F." suptype="0" suprest="0" norepeat=".F." resetrpt="0" pagebreak=".F." colbreak=".F." resetpage=".F." general="0" spacing="0" double=".F." swapheader=".F." swapfooter=".F." ejectbefor=".F." ejectafter=".F." plain=".F." summary=".F." addalias=".F." offset="0" topmargin="0" botmargin="0" totaltype="2" resettotal="1" resoid="0" curpos=".F." supalways=".F." supovflow=".F." suprpcol="0" supgroup="0" supvalchng=".F." platform="WINDOWS " uniqueid="" timestamp="0" objtype="18" objcode="0" name="tplati" vpos="0.000" hpos="0.000" height="0.000" width="0.000" order="" unique=".T." environ=".F." boxchar=" " fillchar=" " pengreen="0" penblue="0" fillred="0" fillgreen="0" fillblue="0" pensize="0" penpat="0" fillpat="0" fontface="" fontstyle="0" fontsize="0" mode="0" ruler="0" rulerlines="0" grid=".F." gridv="0" gridh="0" float=".F." stretch=".F." stretchtop=".F." top=".F." bottom=".F." suptype="0" suprest="0" norepeat=".F." resetrpt="0" pagebreak=".F." colbreak=".F." resetpage=".F." general="0" spacing="0" double=".F." swapheader=".F." swapfooter=".F." ejectbefor=".F." ejectafter=".F." plain=".F." summary=".F." addalias=".F." offset="0" topmargin="0" botmargin="0" totaltype="2" resettotal="6" resoid="0" curpos=".F." supalways=".F." supovflow=".F." suprpcol="0" supgroup="0" supvalchng=".F."
<picture><![CDATA[]]> <picture><![CDATA[]]>
<tag><![CDATA[pnpreccred]]> <tag><![CDATA[pnpreccred]]>
<tag2><![CDATA[]]> <tag2><![CDATA[]]>
@@ -1327,7 +1329,7 @@ COLOR=2
<user><![CDATA[]]> <user><![CDATA[]]>
</Reportes> </Reportes>
<Reportes <Reportes
platform="WINDOWS " uniqueid="" timestamp="0" objtype="18" objcode="0" name="wicasval" vpos="0.000" hpos="0.000" height="0.000" width="0.000" order="" unique=".T." environ=".F." boxchar=" " fillchar=" " pengreen="0" penblue="0" fillred="0" fillgreen="0" fillblue="0" pensize="0" penpat="0" fillpat="0" fontface="" fontstyle="0" fontsize="0" mode="0" ruler="0" rulerlines="0" grid=".F." gridv="0" gridh="0" float=".F." stretch=".F." stretchtop=".F." top=".F." bottom=".F." suptype="0" suprest="0" norepeat=".F." resetrpt="0" pagebreak=".F." colbreak=".F." resetpage=".F." general="0" spacing="0" double=".F." swapheader=".F." swapfooter=".F." ejectbefor=".F." ejectafter=".F." plain=".F." summary=".F." addalias=".F." offset="0" topmargin="0" botmargin="0" totaltype="2" resettotal="6" resoid="0" curpos=".F." supalways=".F." supovflow=".F." suprpcol="0" supgroup="0" supvalchng=".F." platform="WINDOWS " uniqueid="" timestamp="0" objtype="18" objcode="0" name="wicasval" vpos="0.000" hpos="0.000" height="0.000" width="0.000" order="" unique=".T." environ=".F." boxchar=" " fillchar=" " pengreen="0" penblue="0" fillred="0" fillgreen="0" fillblue="0" pensize="0" penpat="0" fillpat="0" fontface="" fontstyle="0" fontsize="0" mode="0" ruler="0" rulerlines="0" grid=".F." gridv="0" gridh="0" float=".F." stretch=".F." stretchtop=".F." top=".F." bottom=".F." suptype="0" suprest="0" norepeat=".F." resetrpt="0" pagebreak=".F." colbreak=".F." resetpage=".F." general="0" spacing="0" double=".F." swapheader=".F." swapfooter=".F." ejectbefor=".F." ejectafter=".F." plain=".F." summary=".F." addalias=".F." offset="0" topmargin="0" botmargin="0" totaltype="2" resettotal="7" resoid="0" curpos=".F." supalways=".F." supovflow=".F." suprpcol="0" supgroup="0" supvalchng=".F."
<picture><![CDATA[]]> <picture><![CDATA[]]>
<tag><![CDATA[0]]> <tag><![CDATA[0]]>
<tag2><![CDATA[]]> <tag2><![CDATA[]]>
@@ -1339,7 +1341,7 @@ COLOR=2
<user><![CDATA[]]> <user><![CDATA[]]>
</Reportes> </Reportes>
<Reportes <Reportes
platform="WINDOWS " uniqueid="" timestamp="0" objtype="18" objcode="0" name="wplatival" vpos="0.000" hpos="0.000" height="0.000" width="0.000" order="" unique=".T." environ=".F." boxchar=" " fillchar=" " pengreen="0" penblue="0" fillred="0" fillgreen="0" fillblue="0" pensize="0" penpat="0" fillpat="0" fontface="" fontstyle="0" fontsize="0" mode="0" ruler="0" rulerlines="0" grid=".F." gridv="0" gridh="0" float=".F." stretch=".F." stretchtop=".F." top=".F." bottom=".F." suptype="0" suprest="0" norepeat=".F." resetrpt="0" pagebreak=".F." colbreak=".F." resetpage=".F." general="0" spacing="0" double=".F." swapheader=".F." swapfooter=".F." ejectbefor=".F." ejectafter=".F." plain=".F." summary=".F." addalias=".F." offset="0" topmargin="0" botmargin="0" totaltype="2" resettotal="6" resoid="0" curpos=".F." supalways=".F." supovflow=".F." suprpcol="0" supgroup="0" supvalchng=".F." platform="WINDOWS " uniqueid="" timestamp="0" objtype="18" objcode="0" name="wplatival" vpos="0.000" hpos="0.000" height="0.000" width="0.000" order="" unique=".T." environ=".F." boxchar=" " fillchar=" " pengreen="0" penblue="0" fillred="0" fillgreen="0" fillblue="0" pensize="0" penpat="0" fillpat="0" fontface="" fontstyle="0" fontsize="0" mode="0" ruler="0" rulerlines="0" grid=".F." gridv="0" gridh="0" float=".F." stretch=".F." stretchtop=".F." top=".F." bottom=".F." suptype="0" suprest="0" norepeat=".F." resetrpt="0" pagebreak=".F." colbreak=".F." resetpage=".F." general="0" spacing="0" double=".F." swapheader=".F." swapfooter=".F." ejectbefor=".F." ejectafter=".F." plain=".F." summary=".F." addalias=".F." offset="0" topmargin="0" botmargin="0" totaltype="2" resettotal="7" resoid="0" curpos=".F." supalways=".F." supovflow=".F." suprpcol="0" supgroup="0" supvalchng=".F."
<picture><![CDATA[]]> <picture><![CDATA[]]>
<tag><![CDATA[0]]> <tag><![CDATA[0]]>
<tag2><![CDATA[]]> <tag2><![CDATA[]]>
@@ -1351,7 +1353,7 @@ COLOR=2
<user><![CDATA[]]> <user><![CDATA[]]>
</Reportes> </Reportes>
<Reportes <Reportes
platform="WINDOWS " uniqueid="" timestamp="0" objtype="18" objcode="0" name="tincasval" vpos="0.000" hpos="0.000" height="0.000" width="0.000" order="" unique=".T." environ=".F." boxchar=" " fillchar=" " pengreen="0" penblue="0" fillred="0" fillgreen="0" fillblue="0" pensize="0" penpat="0" fillpat="0" fontface="" fontstyle="0" fontsize="0" mode="0" ruler="0" rulerlines="0" grid=".F." gridv="0" gridh="0" float=".F." stretch=".F." stretchtop=".F." top=".F." bottom=".F." suptype="0" suprest="0" norepeat=".F." resetrpt="0" pagebreak=".F." colbreak=".F." resetpage=".F." general="0" spacing="0" double=".F." swapheader=".F." swapfooter=".F." ejectbefor=".F." ejectafter=".F." plain=".F." summary=".F." addalias=".F." offset="0" topmargin="0" botmargin="0" totaltype="2" resettotal="1" resoid="0" curpos=".F." supalways=".F." supovflow=".F." suprpcol="0" supgroup="0" supvalchng=".F." platform="WINDOWS " uniqueid="" timestamp="0" objtype="18" objcode="0" name="tincasval" vpos="0.000" hpos="0.000" height="0.000" width="0.000" order="" unique=".T." environ=".F." boxchar=" " fillchar=" " pengreen="0" penblue="0" fillred="0" fillgreen="0" fillblue="0" pensize="0" penpat="0" fillpat="0" fontface="" fontstyle="0" fontsize="0" mode="0" ruler="0" rulerlines="0" grid=".F." gridv="0" gridh="0" float=".F." stretch=".F." stretchtop=".F." top=".F." bottom=".F." suptype="0" suprest="0" norepeat=".F." resetrpt="0" pagebreak=".F." colbreak=".F." resetpage=".F." general="0" spacing="0" double=".F." swapheader=".F." swapfooter=".F." ejectbefor=".F." ejectafter=".F." plain=".F." summary=".F." addalias=".F." offset="0" topmargin="0" botmargin="0" totaltype="2" resettotal="6" resoid="0" curpos=".F." supalways=".F." supovflow=".F." suprpcol="0" supgroup="0" supvalchng=".F."
<picture><![CDATA[]]> <picture><![CDATA[]]>
<tag><![CDATA[pnprecdebval]]> <tag><![CDATA[pnprecdebval]]>
<tag2><![CDATA[]]> <tag2><![CDATA[]]>
@@ -1363,7 +1365,7 @@ COLOR=2
<user><![CDATA[]]> <user><![CDATA[]]>
</Reportes> </Reportes>
<Reportes <Reportes
platform="WINDOWS " uniqueid="" timestamp="0" objtype="18" objcode="0" name="tplatival" vpos="0.000" hpos="0.000" height="0.000" width="0.000" order="" unique=".T." environ=".F." boxchar=" " fillchar=" " pengreen="0" penblue="0" fillred="0" fillgreen="0" fillblue="0" pensize="0" penpat="0" fillpat="0" fontface="" fontstyle="0" fontsize="0" mode="0" ruler="0" rulerlines="0" grid=".F." gridv="0" gridh="0" float=".F." stretch=".F." stretchtop=".F." top=".F." bottom=".F." suptype="0" suprest="0" norepeat=".F." resetrpt="0" pagebreak=".F." colbreak=".F." resetpage=".F." general="0" spacing="0" double=".F." swapheader=".F." swapfooter=".F." ejectbefor=".F." ejectafter=".F." plain=".F." summary=".F." addalias=".F." offset="0" topmargin="0" botmargin="0" totaltype="2" resettotal="1" resoid="0" curpos=".F." supalways=".F." supovflow=".F." suprpcol="0" supgroup="0" supvalchng=".F." platform="WINDOWS " uniqueid="" timestamp="0" objtype="18" objcode="0" name="tplatival" vpos="0.000" hpos="0.000" height="0.000" width="0.000" order="" unique=".T." environ=".F." boxchar=" " fillchar=" " pengreen="0" penblue="0" fillred="0" fillgreen="0" fillblue="0" pensize="0" penpat="0" fillpat="0" fontface="" fontstyle="0" fontsize="0" mode="0" ruler="0" rulerlines="0" grid=".F." gridv="0" gridh="0" float=".F." stretch=".F." stretchtop=".F." top=".F." bottom=".F." suptype="0" suprest="0" norepeat=".F." resetrpt="0" pagebreak=".F." colbreak=".F." resetpage=".F." general="0" spacing="0" double=".F." swapheader=".F." swapfooter=".F." ejectbefor=".F." ejectafter=".F." plain=".F." summary=".F." addalias=".F." offset="0" topmargin="0" botmargin="0" totaltype="2" resettotal="6" resoid="0" curpos=".F." supalways=".F." supovflow=".F." suprpcol="0" supgroup="0" supvalchng=".F."
<picture><![CDATA[]]> <picture><![CDATA[]]>
<tag><![CDATA[pnpreccredval]]> <tag><![CDATA[pnpreccredval]]>
<tag2><![CDATA[]]> <tag2><![CDATA[]]>

View File

@@ -47,7 +47,7 @@ atingi zona X, citeste fisierul Y"). Restul se deschid doar la declansator.
| `email-thunderbird.md` | citirea mailurilor de pe conturile romfast | | `email-thunderbird.md` | citirea mailurilor de pe conturile romfast |
`onboarding\` — proceduri rulate o singura data per proiect (inrolare in fluxul git-text, `onboarding\` — proceduri rulate o singura data per proiect (inrolare in fluxul git-text,
prompturi de configurare). Nu se citesc in sesiunile de lucru. prompturi de configurare) -> skill `roa-onboarding` pentru executie. Nu se citesc in sesiunile de lucru.
`*.pck` — exporturi de referinta ale pachetelor PL/SQL, pentru grep tintit; nu se citesc intregi. `*.pck` — exporturi de referinta ale pachetelor PL/SQL, pentru grep tintit; nu se citesc intregi.
`cercetare\` — note de cercetare pe subiecte incheiate. `cercetare\` — note de cercetare pe subiecte incheiate.

View File

@@ -1,6 +1,6 @@
# rec_skills - skill-uri de agent pentru suita ROA # rec_skills - skill-uri de agent pentru suita ROA
Data: 2026-09-16. Status: aplicat (9 skill-uri create, rutare + backstop puse in docs). Data: 2026-09-16. Status: aplicat (10 skill-uri create, rutare + backstop puse in docs).
## Decizie ## Decizie
@@ -32,6 +32,7 @@ Data: 2026-09-16. Status: aplicat (9 skill-uri create, rutare + backstop puse in
| `roa-vfp-null-guards` | garzi pe valori NULL din Oracle in VFP | | `roa-vfp-null-guards` | garzi pe valori NULL din Oracle in VFP |
| `roa-vfp-go-recno` | `GO` pe un `Recno()` capturat sau primit ca parametru | | `roa-vfp-go-recno` | `GO` pe un `Recno()` capturat sau primit ca parametru |
| `roa-oracle-sqlexec-no-data` | procedura PL/SQL cu `SELECT ... INTO` apelata din VFP (randuri pierdute tacut) | | `roa-oracle-sqlexec-no-data` | procedura PL/SQL cu `SELECT ... INTO` apelata din VFP (randuri pierdute tacut) |
| `roa-onboarding` | inrolezi un calculator nou / un proiect nou in fluxul git-text; expui skill-urile + backstop |
## Cum se adauga un skill nou ## Cum se adauga un skill nou
@@ -46,7 +47,7 @@ Data: 2026-09-16. Status: aplicat (9 skill-uri create, rutare + backstop puse in
## Verificari la data aplicarii ## Verificari la data aplicarii
- 9/9 skill-uri: ASCII pur, fara BOM, `name` = folder, descriere <= 1024, exact 1 bullet sub - 10/10 skill-uri: ASCII pur, fara BOM, `name` = folder, descriere <= 1024, exact 1 bullet sub
`## Referinta (doar la nevoie)`. `## Referinta (doar la nevoie)`.
- 0 rute reziduale zona -> doc in `CLAUDE.md`, `AGENTS.md`, `reguli_lucru.md`, `README.md`. - 0 rute reziduale zona -> doc in `CLAUDE.md`, `AGENTS.md`, `reguli_lucru.md`, `README.md`.
- `leaga_skills.ps1`: 4 create apoi idempotent (0 create, 9 ok); director real cu acelasi nume - `leaga_skills.ps1`: 4 create apoi idempotent (0 create, 9 ok); director real cu acelasi nume

View File

@@ -15,6 +15,9 @@ temporar in `DMPDIR`). Foloseste-l intai; sectiunile de mai jos explica ce cites
Cand cauza e spatiul (tablespace plin, audit/loguri Oracle care umplu discul), continua cu Cand cauza e spatiul (tablespace plin, audit/loguri Oracle care umplu discul), continua cu
`depanare-spatiu-oracle.md` si `COMUN\utile\diag_spatiu.ps1`. `depanare-spatiu-oracle.md` si `COMUN\utile\diag_spatiu.ps1`.
Cand eroarea e de retea/HTTP (`ORA-29273` / `ORA-29024` / descarcare esuata), cauza e aproape sigur
pe serverul de actualizari, nu pe client: continua cu `depanare-server-update-roa.md`.
## Unde te uiti, in ordine ## Unde te uiti, in ordine
| Ce | Unde | | Ce | Unde |

View File

@@ -0,0 +1,177 @@
# Depanare serverul de actualizari ROA (ROACENTRAL / contafinupdate)
Completeaza `depanare-pack-update.md`: acolo e vorba de ce se intampla **pe baza clientului**, aici
de ce se intampla **pe serverul care livreaza actualizarile**. Foloseste documentul asta cand
`PACK_UPDATE` esueaza cu erori de retea / HTTP, adica atunci cand clientul e in regula dar nu
primeste fisierele.
## Lantul complet, de la eroare la cauza
```
job UPDATEROA_ZILNIC -> PACK_UPDATE.UpdateROA
-> PACK_UTILS.URL2Clob / URL2Blob
daca SERVER_INFO.POWERSHELLDOWNLOAD = 1:
-> PACK_UTILS.DownloadFileOS -> scrie C:\DMPDIR\download_file.ps1
-> sys.ExecuteScriptOS -> powershell -> curl.exe -k -o <tmp> <url>
-> asteapta max SERVER_INFO.POWERSHELLTIMEOUT secunde sa apara <tmp>
daca fisierul NU apare (sau POWERSHELLDOWNLOAD <> 1):
-> cade pe HTTPURITYPE.createuri(url).getclob()/getblob()
```
**Consecinta cea mai importanta:** pe un URL `https`, ramura de rezerva `HTTPURITYPE` **nu poate
functiona** - Oracle nu are wallet cu CA-urile, deci da mereu:
```
ORA-29273: nu s-a reusit solicitarea HTTP
ORA-29024: Validarea certificatului a esuat
ORA-06512: la "CONTAFIN_ORACLE.PACK_UTILS", linia 304 <- HTTPURITYPE
ORA-06512: la "CONTAFIN_ORACLE.PACK_UPDATE", linia 321 <- URL2Clob(roa_app.xml); 750 = roa_database.xml
```
**ORA-29024 NU inseamna ca e o problema de certificat.** Inseamna ca descarcarea cu `curl` a
esuat si s-a ajuns pe ramura moarta. Cauza reala e ca **serverul de actualizari nu a raspuns**.
Nu pierde timp cu wallet-uri si certificate pana nu ai verificat serverul.
Al doilea capcan: `UPD_ISTORIC` poate arata `stare=4` (incheiat) chiar si pentru rulari care au
esuat, iar `UPD_LOG` se goleste la fiecare rulare noua. Sursa de adevar pentru esec e
`user_scheduler_job_run_details` / `dba_scheduler_job_run_details` (`status`, `additional_info`).
## Primul lucru de verificat: chiar nu raspunde serverul?
De pe masina clientului (nu de pe statia ta - firewall-ul serverului filtreaza pe IP):
```
curl.exe -k -s -o NUL --max-time 20 -w "HTTP=%{http_code} t=%{time_total}" "https://roa.romfast.ro/contafinupdate/default.aspx/updroa/download/<CUSTOMERID>/roa_app.xml"
```
`HTTP=000` cu `t` egal cu `--max-time` = blocat (nu refuzat). `exit=28` = timeout.
Ultima comanda reala rulata de Oracle e in **`C:\DMPDIR\download_file.ps1`** pe serverul clientului
- contine URL-ul exact si numele fisierului tinta. Daca `.tmp`-ul corespunzator nu exista, stii
sigur ca descarcarea a picat.
`CUSTOMERID` si URL-urile efective le iei din baza clientului:
```sql
select varname, varvalue from optiuni where varname like 'UPD_URL%';
select name, value from server_info
where name in ('POWERSHELLDOWNLOAD','POWERSHELLPATH','POWERSHELLTIMEOUT','DMPDIR','NAME');
```
Daca `OPTIUNI.UPD_URL_*` sunt completate, ele bat default-urile din `PACK_UPDATE`
(`http://10.0.20.122:81/...` intern / `http://83.103.197.79:3002/...` extern).
## Serverul: ROACENTRAL, 10.0.20.122
| Ce | Unde |
|---|---|
| acces | `ssh romfast@10.0.20.122` (OpenSSH for Windows, shell implicit **PowerShell**) |
| aplicatie | ActiveVFP, `D:\APPUPDATESERVERAVFP` (sit IIS "Default Web Site", pool `DefaultAppPool`) |
| cod rute updroa | `D:\APPUPDATESERVERAVFP\prg\rest\controllers\updroa.prg` (+ `.FXP`) |
| **log aplicatie** | `D:\APPUPDATESERVERAVFP\prg\rest\controllers\log.txt` |
| config | `D:\APPUPDATESERVERAVFP\appupdateserver.ini` (DSN, user, parole, caile de download) |
| fisiere livrate | `D:\ROAUPDATE\_UPDATE\` (si `ROA_APP_<id>.xml` / `ROASTART_APP_<id>.xml` per client) |
| loguri IIS | `C:\inetpub\logs\LogFiles\W3SVC1\u_ex<YYMMDD>.log` |
Testeaza **local pe server**, ocolind proxy-ul (roa.romfast.ro trece prin 10.0.20.36):
```powershell
curl.exe -k -s -o NUL --max-time 15 --resolve roa.romfast.ro:443:127.0.0.1 -w "HTTP=%{http_code} t=%{time_total} sz=%{size_download}" "https://roa.romfast.ro/contafinupdate/default.aspx/updroa/download/18/roa_app.xml"
```
Daca se reproduce asa, proxy-ul si reteaua sunt nevinovate.
**Testeaza mai multi clienti.** Daca unii merg si altii nu, nu e nici situl, nici pool-ul:
parcurge `17,18,19,29,105,118,121` pe aceeasi ruta si compara timpii.
Capcane de mediu, ca sa nu tragi concluzii gresite:
- portul **81** e filtrat de firewall pentru alte masini, desi `netstat` arata `0.0.0.0:81 LISTENING`.
"Inchis de pe LAN" nu inseamna "sit oprit".
- pe portul 80 fara `Host:` corect primesti **404 de la `Microsoft-HTTPAPI/2.0`** (http.sys), pentru
ca niciun sit nu prinde cererea. Nu inseamna ca IIS e picat.
- `Get-WebRequest` / `appcmd list requests` nu sunt instalate (`Not implemented`).
- `Get-Service` esueaza pentru contul `romfast` (drepturi), dar `Get-Website` / `Get-WebAppPoolState`
merg.
- daca pool-ul ramane in starea `Stopping`, procesele `w3wp` blocate nu ies singure; le identifici
cu `C:\Windows\System32\inetsrv\appcmd.exe list wp` si le opresti cu `Stop-Process -Id <pid> -Force`.
## Cauza gasita pe 16.09.2026: sesiune Oracle agatata pe db link
Simptom: **doar un client** (id 18, conpress) primea timeout la orice ruta; toti ceilalti erau
serviti in 0.2s. In `log.txt` cererile clientului blocat se opreau exact dupa
`GetCustomer <id>` (`updroa.prg:635`), fara linia `GetCustomer sql ...` (`updroa.prg:703`).
`GetCustomer` interogheaza `SOFT_SERII.VGEN_CONTRACTESUPORTTEHNIC` pe **ROA_CENTRAL
(10.0.20.121:1521/ROA)**, iar view-ul ia `data_inceput / data_sfarsit / incetat / suspendat`
peste **db link `DBL_ROMFAST2` -> `ROMFAST.CONTRACTE` pe 10.0.20.36**.
Diagnostic (de pe orice statie, nu e nevoie de tunel):
```
set TNS_ADMIN=D:\ROA\instantclient_19_18
D:\ROA\instantclient_19_18\sqlplus.exe -S -L soft_serii/<parola>@ROA_CENTRAL
```
```sql
select sid, username, program, machine, status, event, seconds_in_wait, blocking_session
from v$session where username is not null and type='USER'
order by status, seconds_in_wait desc;
```
Ce a iesit:
```
SID 199 SOFT_SERII w3wp.exe ACTIVE single-task message 51770 (blocanta)
SID 148 SOFT_SERII w3wp.exe ACTIVE cursor: pin S wait on X 69 blocked by 199
SID 246 SOFT_SERII w3wp.exe ACTIVE cursor: pin S wait on X 66 blocked by 199
```
- `single-task message` = sesiunea asteapta un apel remote pe db link care nu se mai intoarce.
- Sesiunea agatata **tine pinul X pe cursorul SQL-ului ei**, deci orice cerere noua cu **exact
acelasi text SQL** asteapta `cursor: pin S wait on X`.
- `updroa.prg` pune literalul in SQL (`... where id_client = 18`), nu bind variable. De aceea
**blocajul afecteaza exact un client** si pare "problema doar la el". Cu bind variables ar fi
blocat toti clientii deodata - mai vizibil, dar aceeasi cauza.
Detalii despre sesiunea vinovata:
```sql
select s.sid, s.serial#, to_char(s.logon_time,'DD.MM.YYYY HH24:MI:SS'), s.sql_id, s.event,
s.seconds_in_wait
from v$session s where s.sid = <SID>;
select sql_id, substr(sql_text,1,200) from v$sql
where sql_id in (select sql_id from v$session where sid=<SID>);
```
`logon_time` da momentul exact in care s-au rupt lucrurile (aici 15.09.2026 20:30:25 UTC = 23:30
local, adica fix rularea jobului de actualizare al clientului).
**Deblocare** (ca SYS pe ROA_CENTRAL):
```sql
alter system kill session '<SID>,<SERIAL#>' immediate;
```
Dupa kill, totul revine imediat - nu e nevoie de restart de sit sau de recycle de pool.
### Ce NU rezolva, desi pare (verificat, s-a pierdut timp pe ele)
- restart sit IIS / `Restart-WebAppPool` - sesiunea blocata e pe serverul Oracle si supravietuieste
omorarii lui `w3wp`;
- restart Windows pe serverul de update - acelasi motiv;
- wallet / certificate pe clientul Oracle - ORA-29024 e simptom, nu cauza;
- stergerea cache-ului local `D:\APPUPDATESERVERAVFP\data\contracte.dbf` + `.CDX` (e recreat singur
de `updroa.prg:683-688`, deci e un test ieftin si reversibil, dar in cazul asta a fost negativ).
## Lista scurta de verificare
1. `user_scheduler_job_run_details` pe clientul afectat: care e eroarea reala si **din ce zi**.
2. `C:\DMPDIR\download_file.ps1` pe client: URL-ul exact; exista `.tmp`-ul?
3. `curl` de pe client pe acel URL: raspunde sau timeout?
4. Pe ROACENTRAL, `curl` local cu `--resolve`, pentru mai multi clienti: e global sau doar unul?
5. `log.txt` al aplicatiei: pana la ce linie ajunge cererea blocata.
6. `v$session` pe ROA_CENTRAL: `single-task message` / `cursor: pin S wait on X` /
`blocking_session`. Cauta `seconds_in_wait` mare si compara `logon_time` cu ziua din pasul 1.
7. `alter system kill session` pe sesiunea blocanta; reverifica pasii 3-4.
De urmarit daca se repeta: de ce se agata linkul `DBL_ROMFAST2` spre 10.0.20.36 (timeout de retea
fara detectie - merita un `SQLNET.EXPIRE_TIME` / `outbound_connect_timeout` pe link-ul respectiv).

View File

@@ -132,7 +132,8 @@
- procedura PL/SQL cu `SELECT ... INTO` chemata din VFP (linii pierdute tacut) -> skill roa-oracle-sqlexec-no-data (el detine procedura; criteriile lui blocheaza "gata"); - procedura PL/SQL cu `SELECT ... INTO` chemata din VFP (linii pierdute tacut) -> skill roa-oracle-sqlexec-no-data (el detine procedura; criteriile lui blocheaza "gata");
- export date din Oracle -> skill roa-oracle-migration (reexportul sursei de pachet e in procedura lui; criteriile lui blocheaza "gata"); - export date din Oracle -> skill roa-oracle-migration (reexportul sursei de pachet e in procedura lui; criteriile lui blocheaza "gata");
- actualizarea ROA nu se finalizeaza (job update, PACK_UPDATE) -> skill roa-oracle-diagnostic (acopera si spatiul plin; criteriile lui blocheaza "gata"); - actualizarea ROA nu se finalizeaza (job update, PACK_UPDATE) -> skill roa-oracle-diagnostic (acopera si spatiul plin; criteriile lui blocheaza "gata");
- modifici schema Oracle (tabele/view-uri/pachete) -> skill roa-oracle-migration (scriere + publicare scripturi; criteriile lui blocheaza "gata"). - modifici schema Oracle (tabele/view-uri/pachete) -> skill roa-oracle-migration (scriere + publicare scripturi; criteriile lui blocheaza "gata");
- inrolezi un calculator nou sau un proiect nou in fluxul git-text, expui skill-urile pe masina sau aplici backstop-ul de rutare -> skill roa-onboarding (el detine procedura; criteriile lui blocheaza "gata").
8. Eroare raportata de utilizator: nu analiza statica indelungata — scrie intai un test care o 8. Eroare raportata de utilizator: nu analiza statica indelungata — scrie intai un test care o
reproduce pe fluxul real; el da cauza si confirma remedierea. Analiza statica doar cat sa stii reproduce pe fluxul real; el da cauza si confirma remedierea. Analiza statica doar cat sa stii
ce sa pui in test. ce sa pui in test.

View File

@@ -0,0 +1,133 @@
---
name: roa-onboarding
description: Inroleaza un calculator nou sau un proiect nou ROA in fluxul SVN + git-text FoxBin2Prg - cheie SSH Gitea (+ host/port 222), global-ignores SVN, clone foxbin2prg, clone git per proiect si COMUN, conversie initiala, roa_sync.bat, expunerea skill-urilor (leaga_skills.ps1) si backstop-ul de rutare (scrie_backstop_skills.ps1). Foloseste-l cand utilizatorul spune "inroleaza proiectul", "adauga proiectul in fluxul git-text", "pregateste un calculator nou", "cloneaza proiectul pe masina asta", "expune skill-urile", "aplica backstop-ul", sau cand un proiect nu are inca .git / COMUN.git / roa_sync.bat. Nu acopera editarea de text VFP (skill roa-vfp-text-edit) si nu face commit-uri SVN.
---
# Inrolarea unui calculator nou sau a unui proiect nou ROA (SVN + git-text FoxBin2Prg)
Doar PowerShell (NU Bash - `bash.exe` crapa pe aceste masini si lasa stackdump-uri). Niciun
`svn commit`, nicio modificare de binare VFP in acest flux. Nu forta (`--force`, `reset --hard`)
fara sa arati intai utilizatorului ce s-ar pierde.
## Cand se foloseste
- **Calculator nou**: nu are cheie SSH la Gitea, nu are `D:\ROA\UTIL\foxbin2prg`, nu are clonele
git ale proiectelor (repo-urile Gitea EXISTA deja si doar se cloneaza).
- **Proiect nou in fluxul git-text**: repo-ul Gitea inca nu exista sau proiectul nu are `.git`,
`COMUN\.git`, `roa_sync.bat` (nu are inca fluxul in care git urmareste textele `.??2`).
- "expune skill-urile pe masina asta" (`leaga_skills.ps1`), "aplica backstop-ul de rutare"
(`scrie_backstop_skills.ps1`).
Nu acopera: editarea `.vc2`/`.sc2` (skill `roa-vfp-text-edit`), commit/sync curent (skill
`roa-git-svn-commit`).
## Pasi
### A. Preconditii pe masina
1. VFP9 IDE instalat (pentru `.frx`/`.mnx`/`.lbx`/`.pjx`/`.dbc`, care nu au write-back text).
2. Client SVN spre `http://svnroa:3001/svn/ROA`; Git for Windows (aduce `git`, `ssh`,
`ssh-keygen`); PowerShell 5.1+.
3. Cheie SSH + host Gitea:
- `ssh-keygen -t ed25519 -C "<user>@<masina>"`; porneste agentul (`Start-Service ssh-agent`),
`ssh-add` cheia; adauga cheia `.pub` in Gitea (profil -> Settings -> SSH Keys).
- `%USERPROFILE%\.ssh\config`: Gitea raspunde pe portul **222**, iar DNS-ul
`gitea.romfast.ro` poate lipsi, deci adauga explicit:
```
Host gitea.romfast.ro
HostName 10.0.20.165
User git
Port 222
```
- Verificare: `ssh -T git@gitea.romfast.ro` reuseste (nu "Permission denied").
4. `%APPDATA%\Subversion\config`, `[miscellany]`: adauga la `global-ignores`
`*.vc2 *.sc2 *.fr2 *.mn2 *.lb2 *.pj2 *.dc2 *.db2 *.dbf.cfg` (altfel textele FoxBin2Prg apar
ca `?` in `svn status` si risca `svn add` accidental).
5. Utilitarul: `git clone git@gitea.romfast.ro:romfast/foxbin2prg.git D:\ROA\UTIL\foxbin2prg`
(branch `romfast`; `git remote -v` sa arate fork-ul romfast, nu upstream-ul github).
### B. Proiect nou in fluxul git-text
6. Inventar INAINTE de orice stergere: exista `.git`? (`git remote -v`, branch). Exista
`COMUN\.git`? Pe un repo vechi, `git ls-files *.dbf` arata tabelele urmarite ca binare -
candidate la `.db2`.
7. Conversie completa: `& D:\ROA\UTIL\foxbin2prg\git_sync.ps1 -ProjectRoot D:\ROA\<PROIECT>`.
Esecurile se investigheaza fiecare: meniuri pre-VFP9 raman binare (exceptie `!` in
`.gitignore`); clase FFC/third-party cu roundtrip fals-negativ -> `-RoundtripExempt`; un binar
care nu poate fi nici macar CITIT (memo invalid) se repara (perechea `.vcx`+`.vct` valida
dintr-o alta clona COMUN). Nu se trece mai departe cu esecuri neexplicate (exit nenul).
8. `.gitignore` (model `D:\ROA\ROACONT\.gitignore`: fiecare `.dbf` care are `.db2` se ignora
INDIVIDUAL; nu se ignora `*.??2`) + `.gitattributes` cu `* -text` (SVN ramane autoritatea EOL).
9. Repo proiect: `git init -b main`; `git remote add origin
git@gitea.romfast.ro:romfast/<proiect-lowercase>.git`; `git add -A`. VERIFICARE obligatorie
inainte de commit: 0 binare convertibile urmarite (cu exceptiile `!` justificate), textele
`.??2` prezente, 0 fisiere din `COMUN/`. Commit `Initial: flux text FoxBin2Prg ...`; apoi
`git push -u origin main`.
10. COMUN: `git init -b main` in `<PROIECT>\COMUN`; `git remote add origin
git@gitea.romfast.ro:romfast/comun.git`; `git fetch origin`; `git reset origin/main` (mixed,
pastreaza discul); `git checkout origin/main -- .gitignore`. Diferentele ramase in
`git status` = revizii SVN diferite (normal). Nu comite in `comun.git` dintr-o clona decalata.
11. `roa_sync.bat`: copiaza `D:\ROA\ROAFACTURARE\roa_sync.bat` in radacina proiectului (generic,
foloseste `%~dp0` si cheama `COMUN\scripts\roa_sync.ps1`) si include-l in commit.
12. Verificari finale: acoperire (fiecare binar convertibil din arbore, inclusiv COMUN, are text
`.??2` langa el, mai putin exceptiile `!`); `svn status` fara binare M si fara `.??2` adaugat;
`git ls-remote origin main` = HEAD-ul local. Raport: numar texte per tip, esecuri/scutiri,
commit hash, push status.
### C. Skill-uri de agent pe masina
13. Expune (o singura data per masina): `powershell -ExecutionPolicy Bypass -File
D:\ROA\<PROIECT>\COMUN\utile\leaga_skills.ps1` (intai `-DryRun`). Creeaza symlink-uri in
`%USERPROFILE%\.claude\skills\` catre `COMUN\skills\<nume>` - fara copiere, deci aceleasi
fisiere sunt vazute si de Claude Code, si de opencode. Idempotent; nu sterge un director real
cu acelasi nume.
14. Backstop per proiect: `COMUN\utile\scrie_backstop_skills.ps1 -Root D:\ROA -Proiecte
<proiecte>` (intai `-DryRun`; fara `-Proiecte` = toate proiectele detectate - NU rula asa
fara acord). Scrie `AGENTS.md` si un bloc marcat intre `<!-- roa-skills:start -->` si
`<!-- roa-skills:end -->` in `CLAUDE.md`. Idempotent.
15. Dupa orice `git pull`/`roa_sync` in `COMUN\` sau dupa modificarea skill-urilor, re-ruleaza
pasii 13+14 (sunt idempotenti). NU copia manual fisiere de skill - se pierde legatura cu sursa.
## Capcane
- `bash.exe` crapa pe aceste masini si lasa stackdump-uri - foloseste EXCLUSIV PowerShell.
- Parametrii array (ex. `-DbfList`, `-RoundtripExempt`) NU se pot pasa prin `powershell -File`:
invoca scriptul in-process cu `&`, altfel array-ul se colapseaza.
- Gitea raspunde pe portul **222**, nu 22; fara blocul `Host` din `ssh\config` ->
"Connection refused" sau "Could not resolve hostname", chiar daca cheia e corecta.
- Intr-o clona COMUN decalata NU se comite: `comun.git` se comite doar din clona in care s-a
lucrat efectiv, dupa `svn update`.
- Conversia `git_sync` dureaza zeci de minute pe proiecte mari si e incrementala: la expirarea
timeout-ului tool-ului se reia pana la capat; NU rula doua conversii in paralel pe acelasi
arbore (FoxBin2Prg foloseste artefacte partajate in `%TEMP%`).
- Fisierele doar-git (docs, `.bat`, `.gitignore`) se comit INAINTE de sync-ul `sync SVN rN`,
altfel nimeresc in commit-ul de sincronizare.
## Criterii de acceptare si dovada
Fara dovada da/nu de mai jos, inrolarea NU se raporteaza ca terminata:
1. `ssh -T git@gitea.romfast.ro` reuseste.
2. `svn status D:\ROA\<PROIECT>`: niciun binar convertibil modificat si niciun text `.??2`
adaugat in SVN.
3. `git -C <PROIECT> ls-remote origin main` = HEAD-ul local; la fel pentru `<PROIECT>\COMUN`;
`git status` curat sau doar diferente de revizie SVN.
4. Acoperire: fiecare binar convertibil din arbore (inclusiv COMUN) are text `.??2` langa el, mai
putin exceptiile `!` enumerate si justificate.
5. `leaga_skills.ps1 -DryRun` raporteaza 0 de refacut; `scrie_backstop_skills.ps1 -DryRun`
idempotent (0 modificari) dupa prima aplicare.
6. Niciun `svn commit` facut in acest flux (commit-ul il face utilizatorul, prin skill
`roa-git-svn-commit`).
## Scripturi
- `D:\ROA\UTIL\foxbin2prg\git_sync.ps1`, `vfp_filemap.ps1`, `txt2vcx.ps1`, `test_git_sync.ps1`,
`test_roundtrip.ps1`.
- `<PROJ>\COMUN\scripts\roa_sync.ps1` (+ `roa_sync.bat` in radacina proiectului).
- `<PROJ>\COMUN\utile\leaga_skills.ps1`, `scrie_backstop_skills.ps1` (+ `backstop_skills.txt`).
## Referinta (doar la nevoie)
- `COMUN\docs\onboarding\` - `inrolare-calculator-nou.md` (masina noua) si
`inrolare-proiect-git-text.md` (proiect nou): pasii detaliati, verificari complete si note
operationale FoxBin2Prg.

View File

@@ -13,3 +13,4 @@ skill-ului.
- garzi pe valori NULL din Oracle in VFP -> skill `roa-vfp-null-guards` - garzi pe valori NULL din Oracle in VFP -> skill `roa-vfp-null-guards`
- `GO` pe un `Recno()` capturat sau primit ca parametru -> skill `roa-vfp-go-recno` - `GO` pe un `Recno()` capturat sau primit ca parametru -> skill `roa-vfp-go-recno`
- procedura PL/SQL cu `SELECT ... INTO` apelata din VFP (randuri pierdute tacut) -> skill `roa-oracle-sqlexec-no-data` - procedura PL/SQL cu `SELECT ... INTO` apelata din VFP (randuri pierdute tacut) -> skill `roa-oracle-sqlexec-no-data`
- inrolezi un calculator nou sau un proiect nou in fluxul git-text / expui skill-urile pe masina / aplici backstop-ul de rutare -> skill `roa-onboarding`